These are samples in C# for using the commerce APIs for Microsoft Partner Center. These CREST APIs are documented at https://msdn.microsoft.com/en-us/library/partnercenter/dn974944.aspx.
A public forum for discussing the APIs is available at https://social.msdn.microsoft.com/Forums/en-US/home?forum=partnercenterapi.
To update resources in a customer tenant or directory, an application must have a security principal. The principal can be created in every customer tenant, or can be created in the reseller tenant via a multi-tenant, native application. To ease the admistrative burden for the sample, the latter option is implemented. The steps are detailed in the prerequisite page.
The Create VM scenario will require user credentials at run-time. This user must be a member of the Admin Agents group in the reseller directory. To allow unattended operation, the sample application uses the Windows Credential Manager application to securely store the account and password of this user. It is recommended that a "service account" be created rather than storing an actual user credentials. The Credential Manager page includes steps for creating a stored credential.
The sample application has several configurable settings in the app.config file. Set the values as appropriate for your tenant.
|scenario||The scenario to execute. A value of zero will run all scenarios.|
|AppId||The id of the application registered in the Partner Center. This id is used to access the CREST APIs.|
|Key||The key of the application registered in the Partner Center.|
|MicrosoftId||The Microsoft Id of the reseller. Used to access CREST APIs.|
|DefaultDomain||The default domain of the reseller in Microsoft Azure. (This is typically an "onmicrosoft.com" domain.)|
|ExistingCustomerMicrosoftId||The Microsoft Id of a customer associated with the reseller. This is used in scenarios that require a customer id, such as GetSubscriptions and GetOrders.|
|AzureAppId||The id of the multi-tenant application registered in the reseller directory that provisions resources in the customer tenant.|
|CredentialName||The value of "Internet or network address" in Credential Manager that contains the service account credentials.|