Share via


Provision a New Subscription (Tenant Subscription)

 

Applies To: Windows Azure Pack

Provisions a new subscription with the specified information.

Request

Replace <ServiceMgmt> with your Service Management API endpoint address.

Method

Request URI

HTTP version

POST

https://<ServiceMgmt>:30005/subscriptions

HTTP/1.1

URI Parameters

None.

Request Headers

The following table describes required and optional request headers.

Request header

Description

x-ms-principal-id:

Required. The principal identifier.

Authorization: Bearer

Required. Authorization bearer token.

x-ms-client-request-id:

Optional. The client request identifier.

x-ms-client-session-id:

Optional. The client session identifier.

x-ms-principal-liveid:

Optional. The principal Live identifier.

Request Body

The following table describes the elements of the request body.

Element Name

Description

AccountAdminLiveEmailId

The Microsoft account identifier of the account administrator. Not required for subscription provisioning. Use null.

AccountAdminLivePuid

The Passport account identifier of the account administrator. This must be an existing user account. You can use Retrieve a User to determine if the account exists.

AccountId

The account identifier. Use Guid.Empty.

FriendlyName

The friendly name for the subscription.

OfferCategory

The offer category. Use null.

OfferInfo

The offer information. Use null.

OfferType

The offer type. Use 0.

ReasonCode

The reason code. Use null.

ServiceAdminLiveEmailId

The Microsoft account identifier of the service administrator. This value is not used by Windows Azure Pack and is required for consistency purposes only. Use null.

ServiceAdminLivePuid

The Passport account identifier of the service administrator. Not required for subscription provisioning. Use null.

SubscriptionId

The subscription Identifier. Use Guid.NewGuid().ToString() to create a GUID.

Status

The subscription status. Use null.

PlanId

The plan identifier of the plan being subscribed to.

CoAdminNames

A list of co-administrators. Use null if no Co-administrators exist. The co-administrators do not need to be known to the system. When the co-administrator account is subsequently created, the subscription is automatically applied to the co-administrator.

Response

The response includes an HTTP status code, a set of response headers, and a response body.

Status Code

A successful operation returns status code 200 (OK). MaxSubscriptionsPerPlanReached is returned if the maximum number of subscriptions allowable for the plan is reached.

For information about status codes, see Status and Error Codes (Windows Azure Pack Service Management).

Response Headers

The response for this operation includes standard HTTP headers. All standard headers conform to the HTTP/1.1 protocol specification.

Response Body

The following table describes the key elements of the response body:

Element name

Description

Subscription

The provisioned subscriptions. For more information, see Subscription (Common object).

Example

The following code example shows a Provision Subscription request.

POST https://<Computer>:30005/subscriptions HTTP/1.1
Authorization: Bearer <Token>
x-ms-client-request-id: 02130fee-13b7-4b93-b618-3a8830dbe611-2014-04-15 20:00:55Z
x-ms-client-session-id: eec98428-7dd5-4033-8a2c-77946f61a2f6
x-ms-principal-id: NewUser%40contoso.com
Accept-Language: en-US
Content-Type: application/json; charset=utf-8
Host: <computer>:30005
Content-Length: 458
Expect: 100-continue
{
  "AccountAdminLiveEmailId": null,
  "AccountAdminLivePuid": "[email protected]",
  "AccountId": "00000000-0000-0000-0000-000000000000",
  "FriendlyName": "MyServicePlanX",
  "OfferCategory": null,
  "OfferInfo": null,
  "OfferType": 0,
  "ReasonCode": null,
  "ServiceAdminLiveEmailId": null,
  "ServiceAdminLivePuid": "[email protected]",
  "SubscriptionId": "da506abb-1658-4abf-971c-e0e5a9c47b83",
  "Status": null,
  "PlanId": "MyServicePlanX18aa6bac",
  "CoAdminNames": null
}

The following code example shows a Provision Subscription response body.

{
  "SubscriptionID": "da506abb-1658-4abf-971c-e0e5a9c47b83",
  "SubscriptionName": "MyServicePlanX",
  "AccountAdminLiveEmailId": "[email protected]",
  "ServiceAdminLiveEmailId": null,
  "CoAdminNames": [

  ],
  "AddOnReferences": [

  ],
  "AddOns": [

  ],
  "State": 1,
  "QuotaSyncState": 0,
  "ActivationSyncState": 1,
  "PlanId": "MyServicePlanX18aa6bac",
  "Services": [
    {
      "Type": "mysqlservers",
      "State": "registered",
      "QuotaSyncState": 0,
      "ActivationSyncState": 1,
      "BaseQuotaSettings": [
        {
          "Key": "Editions",
          "Value": "[{\"displayName\":\"Default\",\"groupName\":\"Default\",\"resourceCount\":\"10\",\"resourceSize\":\"1024\",\"offerEditionId\":\"040814101717\",\"groupType\":null}]"
        }
      ]
    }
  ],
  "LastErrorMessage": null,
  "Features": null,
  "OfferFriendlyName": "MyServicePlanX",
  "OfferCategory": null,
  "Created": "2014-04-15T20:00:59.187"
}

Remarks

The management portal for tenants makes the following REST calls when provisioning a subscription.

  1. Retrieve the Available Plans. This is used for displaying the plans a user can subscribe to. The Plan (Administrator object) objects returned each have an Id property. Once a plan has been chosen, the id value is used to identify the chosen plan in the call to Provision a New Subscription.

  2. Retrieve a User. Since a subscription cannot be created for a user that doesn’t exist, this call confirms that a user does indeed exist.

  3. Provision a New Subscription. Provisions the subscription using the supplied information.

See Also

Tenant Subscription Interfaces