<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="reseller_v1.html">Enterprise Apps Reseller API</a> . <a href="reseller_v1.subscriptions.html">subscriptions</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#activate">activate(customerId, subscriptionId)</a></code></p>
<p class="firstline">Activates a subscription previously suspended by the reseller</p>
<p class="toc_element">
  <code><a href="#changePlan">changePlan(customerId, subscriptionId, body)</a></code></p>
<p class="firstline">Update a subscription plan. Use this method to update a plan for a 30-day trial or a flexible plan subscription to an annual commitment plan with monthly or yearly payments.</p>
<p class="toc_element">
  <code><a href="#changeRenewalSettings">changeRenewalSettings(customerId, subscriptionId, body)</a></code></p>
<p class="firstline">Update a user license's renewal settings. This is applicable for accounts with annual commitment plans only.</p>
<p class="toc_element">
  <code><a href="#changeSeats">changeSeats(customerId, subscriptionId, body)</a></code></p>
<p class="firstline">Update a subscription's user license settings.</p>
<p class="toc_element">
  <code><a href="#delete">delete(customerId, subscriptionId, deletionType)</a></code></p>
<p class="firstline">Cancel or transfer a subscription to direct.</p>
<p class="toc_element">
  <code><a href="#get">get(customerId, subscriptionId)</a></code></p>
<p class="firstline">Get a specific subscription.</p>
<p class="toc_element">
  <code><a href="#insert">insert(customerId, body, customerAuthToken=None)</a></code></p>
<p class="firstline">Create or transfer a subscription.</p>
<p class="toc_element">
  <code><a href="#list">list(customerAuthToken=None, pageToken=None, maxResults=None, customerNamePrefix=None, customerId=None)</a></code></p>
<p class="firstline">List of subscriptions managed by the reseller. The list can be all subscriptions, all of a customer's subscriptions, or all of a customer's transferable subscriptions.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#startPaidService">startPaidService(customerId, subscriptionId)</a></code></p>
<p class="firstline">Immediately move a 30-day free trial subscription to a paid service subscription.</p>
<p class="toc_element">
  <code><a href="#suspend">suspend(customerId, subscriptionId)</a></code></p>
<p class="firstline">Suspends an active subscription.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="activate">activate(customerId, subscriptionId)</code>
  <pre>Activates a subscription previously suspended by the reseller

Args:
  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (required)
  subscriptionId: string, This is a required property. The subscriptionId is the subscription identifier and is unique for each customer. Since a subscriptionId changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the subscriptionId can be found using the retrieve all reseller subscriptions method. (required)

Returns:
  An object of the form:

    { # JSON template for a subscription.
      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
        "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
      },
      "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
      "customerDomain": "A String", # Primary domain name of the customer
      "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
        "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
        "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
            # - true — The plan is in trial.
            # - false — The plan is not in trial.
      },
      "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
      "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
      "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
        "kind": "subscriptions#seats", # Identifies the resource as a subscription seat setting. Value: subscriptions#seats
        "numberOfSeats": 42, # This is a required property and is exclusive to subscriptions with ANNUAL_MONTHLY_PAY and ANNUAL_YEARLY_PAY plans. This property sets the maximum number of licenses assignable to users on a subscription. The reseller can add more licenses, but once set, the numberOfSeats cannot be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are assigned. Note: G Suite subscriptions automatically assign a license to every user.
        "maximumNumberOfSeats": 42, # This is a required property and is exclusive to subscriptions with FLEXIBLE or TRIAL plans. This property sets the maximum number of licensed users allowed on a subscription. This quantity can be increased up to the maximum limit defined in the reseller's contract. The minimum quantity is the current number of users in the customer account. Note: G Suite subscriptions automatically assign a license to every user.
        "licensedNumberOfSeats": 42, # Read-only field containing the current number of users that are assigned a license for the product defined in skuId. This field's value is equivalent to the numerical count of users returned by the Enterprise License Manager API method: listForProductAndSku
      },
      "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
      "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
      "skuName": "A String", # Read-only external display name for a product's SKU assigned to a customer in the subscription. SKU names are subject to change at Google's discretion. For products and SKUs available in this version of the API, see  Product and SKU IDs.
      "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
        "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
        "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
      },
      "status": "A String", # This is an optional property.
      "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
        "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
            #
            # Possible values are:
            # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments.  Caution: ANNUAL_MONTHLY_PAY is returned as ANNUAL in all API responses.
            # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
            # - FLEXIBLE — The flexible plan
            # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
            # - FREE — The free plan is exclusive to the Cloud Identity SKU and does not incur any billing.
        "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.  Note: When billingMethod value is OFFLINE, the subscription property object plan.commitmentInterval is omitted in all API responses.
          "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
          "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
        },
        "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
            # - true — The subscription's plan is an annual commitment plan.
            # - false — The plan is not an annual commitment plan.
      },
      "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
          #
          # Possible options include:
          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
          # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
          # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
          # - TRIAL_ENDED - The customer's trial expired without a plan selected.
          # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
        "A String",
      ],
      "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
      "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
    }</pre>
</div>

<div class="method">
    <code class="details" id="changePlan">changePlan(customerId, subscriptionId, body)</code>
  <pre>Update a subscription plan. Use this method to update a plan for a 30-day trial or a flexible plan subscription to an annual commitment plan with monthly or yearly payments.

Args:
  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (required)
  subscriptionId: string, This is a required property. The subscriptionId is the subscription identifier and is unique for each customer. Since a subscriptionId changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the subscriptionId can be found using the retrieve all reseller subscriptions method. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # JSON template for the ChangePlan rpc request.
    "planName": "A String", # The planName property is required. This is the name of the subscription's payment plan. For more information about the Google payment plans, see API concepts.
        # 
        # Possible values are:
        # - ANNUAL_MONTHLY_PAY - The annual commitment plan with monthly payments  Caution: ANNUAL_MONTHLY_PAY is returned as ANNUAL in all API responses.
        # - ANNUAL_YEARLY_PAY - The annual commitment plan with yearly payments
        # - FLEXIBLE - The flexible plan
        # - TRIAL - The 30-day free trial plan
    "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in changePlan request in order to receive discounted rate. This property is optional. If a deal code has already been added to a subscription, this property may be left empty and the existing discounted rate will still apply (if not empty, only provide the deal code that is already present on the subscription). If a deal code has never been added to a subscription and this property is left blank, regular pricing will apply.
    "kind": "subscriptions#changePlanRequest", # Identifies the resource as a subscription change plan request. Value: subscriptions#changePlanRequest
    "seats": { # JSON template for subscription seats. # This is a required property. The seats property is the number of user seat licenses.
      "kind": "subscriptions#seats", # Identifies the resource as a subscription seat setting. Value: subscriptions#seats
      "numberOfSeats": 42, # This is a required property and is exclusive to subscriptions with ANNUAL_MONTHLY_PAY and ANNUAL_YEARLY_PAY plans. This property sets the maximum number of licenses assignable to users on a subscription. The reseller can add more licenses, but once set, the numberOfSeats cannot be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are assigned. Note: G Suite subscriptions automatically assign a license to every user.
      "maximumNumberOfSeats": 42, # This is a required property and is exclusive to subscriptions with FLEXIBLE or TRIAL plans. This property sets the maximum number of licensed users allowed on a subscription. This quantity can be increased up to the maximum limit defined in the reseller's contract. The minimum quantity is the current number of users in the customer account. Note: G Suite subscriptions automatically assign a license to every user.
      "licensedNumberOfSeats": 42, # Read-only field containing the current number of users that are assigned a license for the product defined in skuId. This field's value is equivalent to the numerical count of users returned by the Enterprise License Manager API method: listForProductAndSku
    },
    "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
  }


Returns:
  An object of the form:

    { # JSON template for a subscription.
      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
        "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
      },
      "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
      "customerDomain": "A String", # Primary domain name of the customer
      "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
        "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
        "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
            # - true — The plan is in trial.
            # - false — The plan is not in trial.
      },
      "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
      "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
      "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
        "kind": "subscriptions#seats", # Identifies the resource as a subscription seat setting. Value: subscriptions#seats
        "numberOfSeats": 42, # This is a required property and is exclusive to subscriptions with ANNUAL_MONTHLY_PAY and ANNUAL_YEARLY_PAY plans. This property sets the maximum number of licenses assignable to users on a subscription. The reseller can add more licenses, but once set, the numberOfSeats cannot be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are assigned. Note: G Suite subscriptions automatically assign a license to every user.
        "maximumNumberOfSeats": 42, # This is a required property and is exclusive to subscriptions with FLEXIBLE or TRIAL plans. This property sets the maximum number of licensed users allowed on a subscription. This quantity can be increased up to the maximum limit defined in the reseller's contract. The minimum quantity is the current number of users in the customer account. Note: G Suite subscriptions automatically assign a license to every user.
        "licensedNumberOfSeats": 42, # Read-only field containing the current number of users that are assigned a license for the product defined in skuId. This field's value is equivalent to the numerical count of users returned by the Enterprise License Manager API method: listForProductAndSku
      },
      "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
      "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
      "skuName": "A String", # Read-only external display name for a product's SKU assigned to a customer in the subscription. SKU names are subject to change at Google's discretion. For products and SKUs available in this version of the API, see  Product and SKU IDs.
      "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
        "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
        "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
      },
      "status": "A String", # This is an optional property.
      "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
        "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
            #
            # Possible values are:
            # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments.  Caution: ANNUAL_MONTHLY_PAY is returned as ANNUAL in all API responses.
            # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
            # - FLEXIBLE — The flexible plan
            # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
            # - FREE — The free plan is exclusive to the Cloud Identity SKU and does not incur any billing.
        "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.  Note: When billingMethod value is OFFLINE, the subscription property object plan.commitmentInterval is omitted in all API responses.
          "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
          "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
        },
        "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
            # - true — The subscription's plan is an annual commitment plan.
            # - false — The plan is not an annual commitment plan.
      },
      "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
          #
          # Possible options include:
          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
          # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
          # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
          # - TRIAL_ENDED - The customer's trial expired without a plan selected.
          # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
        "A String",
      ],
      "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
      "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
    }</pre>
</div>

<div class="method">
    <code class="details" id="changeRenewalSettings">changeRenewalSettings(customerId, subscriptionId, body)</code>
  <pre>Update a user license's renewal settings. This is applicable for accounts with annual commitment plans only.

Args:
  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (required)
  subscriptionId: string, This is a required property. The subscriptionId is the subscription identifier and is unique for each customer. Since a subscriptionId changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the subscriptionId can be found using the retrieve all reseller subscriptions method. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # JSON template for a subscription renewal settings.
  "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
  "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
}


Returns:
  An object of the form:

    { # JSON template for a subscription.
      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
        "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
      },
      "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
      "customerDomain": "A String", # Primary domain name of the customer
      "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
        "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
        "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
            # - true — The plan is in trial.
            # - false — The plan is not in trial.
      },
      "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
      "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
      "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
        "kind": "subscriptions#seats", # Identifies the resource as a subscription seat setting. Value: subscriptions#seats
        "numberOfSeats": 42, # This is a required property and is exclusive to subscriptions with ANNUAL_MONTHLY_PAY and ANNUAL_YEARLY_PAY plans. This property sets the maximum number of licenses assignable to users on a subscription. The reseller can add more licenses, but once set, the numberOfSeats cannot be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are assigned. Note: G Suite subscriptions automatically assign a license to every user.
        "maximumNumberOfSeats": 42, # This is a required property and is exclusive to subscriptions with FLEXIBLE or TRIAL plans. This property sets the maximum number of licensed users allowed on a subscription. This quantity can be increased up to the maximum limit defined in the reseller's contract. The minimum quantity is the current number of users in the customer account. Note: G Suite subscriptions automatically assign a license to every user.
        "licensedNumberOfSeats": 42, # Read-only field containing the current number of users that are assigned a license for the product defined in skuId. This field's value is equivalent to the numerical count of users returned by the Enterprise License Manager API method: listForProductAndSku
      },
      "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
      "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
      "skuName": "A String", # Read-only external display name for a product's SKU assigned to a customer in the subscription. SKU names are subject to change at Google's discretion. For products and SKUs available in this version of the API, see  Product and SKU IDs.
      "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
        "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
        "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
      },
      "status": "A String", # This is an optional property.
      "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
        "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
            #
            # Possible values are:
            # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments.  Caution: ANNUAL_MONTHLY_PAY is returned as ANNUAL in all API responses.
            # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
            # - FLEXIBLE — The flexible plan
            # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
            # - FREE — The free plan is exclusive to the Cloud Identity SKU and does not incur any billing.
        "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.  Note: When billingMethod value is OFFLINE, the subscription property object plan.commitmentInterval is omitted in all API responses.
          "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
          "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
        },
        "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
            # - true — The subscription's plan is an annual commitment plan.
            # - false — The plan is not an annual commitment plan.
      },
      "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
          #
          # Possible options include:
          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
          # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
          # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
          # - TRIAL_ENDED - The customer's trial expired without a plan selected.
          # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
        "A String",
      ],
      "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
      "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
    }</pre>
</div>

<div class="method">
    <code class="details" id="changeSeats">changeSeats(customerId, subscriptionId, body)</code>
  <pre>Update a subscription's user license settings.

Args:
  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (required)
  subscriptionId: string, This is a required property. The subscriptionId is the subscription identifier and is unique for each customer. Since a subscriptionId changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the subscriptionId can be found using the retrieve all reseller subscriptions method. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # JSON template for subscription seats.
  "kind": "subscriptions#seats", # Identifies the resource as a subscription seat setting. Value: subscriptions#seats
  "numberOfSeats": 42, # This is a required property and is exclusive to subscriptions with ANNUAL_MONTHLY_PAY and ANNUAL_YEARLY_PAY plans. This property sets the maximum number of licenses assignable to users on a subscription. The reseller can add more licenses, but once set, the numberOfSeats cannot be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are assigned. Note: G Suite subscriptions automatically assign a license to every user.
  "maximumNumberOfSeats": 42, # This is a required property and is exclusive to subscriptions with FLEXIBLE or TRIAL plans. This property sets the maximum number of licensed users allowed on a subscription. This quantity can be increased up to the maximum limit defined in the reseller's contract. The minimum quantity is the current number of users in the customer account. Note: G Suite subscriptions automatically assign a license to every user.
  "licensedNumberOfSeats": 42, # Read-only field containing the current number of users that are assigned a license for the product defined in skuId. This field's value is equivalent to the numerical count of users returned by the Enterprise License Manager API method: listForProductAndSku
}


Returns:
  An object of the form:

    { # JSON template for a subscription.
      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
        "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
      },
      "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
      "customerDomain": "A String", # Primary domain name of the customer
      "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
        "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
        "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
            # - true — The plan is in trial.
            # - false — The plan is not in trial.
      },
      "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
      "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
      "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
        "kind": "subscriptions#seats", # Identifies the resource as a subscription seat setting. Value: subscriptions#seats
        "numberOfSeats": 42, # This is a required property and is exclusive to subscriptions with ANNUAL_MONTHLY_PAY and ANNUAL_YEARLY_PAY plans. This property sets the maximum number of licenses assignable to users on a subscription. The reseller can add more licenses, but once set, the numberOfSeats cannot be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are assigned. Note: G Suite subscriptions automatically assign a license to every user.
        "maximumNumberOfSeats": 42, # This is a required property and is exclusive to subscriptions with FLEXIBLE or TRIAL plans. This property sets the maximum number of licensed users allowed on a subscription. This quantity can be increased up to the maximum limit defined in the reseller's contract. The minimum quantity is the current number of users in the customer account. Note: G Suite subscriptions automatically assign a license to every user.
        "licensedNumberOfSeats": 42, # Read-only field containing the current number of users that are assigned a license for the product defined in skuId. This field's value is equivalent to the numerical count of users returned by the Enterprise License Manager API method: listForProductAndSku
      },
      "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
      "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
      "skuName": "A String", # Read-only external display name for a product's SKU assigned to a customer in the subscription. SKU names are subject to change at Google's discretion. For products and SKUs available in this version of the API, see  Product and SKU IDs.
      "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
        "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
        "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
      },
      "status": "A String", # This is an optional property.
      "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
        "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
            #
            # Possible values are:
            # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments.  Caution: ANNUAL_MONTHLY_PAY is returned as ANNUAL in all API responses.
            # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
            # - FLEXIBLE — The flexible plan
            # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
            # - FREE — The free plan is exclusive to the Cloud Identity SKU and does not incur any billing.
        "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.  Note: When billingMethod value is OFFLINE, the subscription property object plan.commitmentInterval is omitted in all API responses.
          "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
          "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
        },
        "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
            # - true — The subscription's plan is an annual commitment plan.
            # - false — The plan is not an annual commitment plan.
      },
      "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
          #
          # Possible options include:
          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
          # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
          # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
          # - TRIAL_ENDED - The customer's trial expired without a plan selected.
          # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
        "A String",
      ],
      "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
      "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
    }</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(customerId, subscriptionId, deletionType)</code>
  <pre>Cancel or transfer a subscription to direct.

Args:
  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (required)
  subscriptionId: string, This is a required property. The subscriptionId is the subscription identifier and is unique for each customer. Since a subscriptionId changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the subscriptionId can be found using the retrieve all reseller subscriptions method. (required)
  deletionType: string, The deletionType query string enables the cancellation, downgrade, or suspension of a subscription. (required)
    Allowed values
      cancel - Cancels the subscription immediately. This does not apply to a G Suite subscription.
      transfer_to_direct - Transfers a subscription directly to Google.  The customer is immediately transferred to a direct billing relationship with Google and is given a short amount of time with no service interruption. The customer can then choose to set up billing directly with Google by using a credit card, or they can transfer to another reseller.
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(customerId, subscriptionId)</code>
  <pre>Get a specific subscription.

Args:
  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (required)
  subscriptionId: string, This is a required property. The subscriptionId is the subscription identifier and is unique for each customer. Since a subscriptionId changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the subscriptionId can be found using the retrieve all reseller subscriptions method. (required)

Returns:
  An object of the form:

    { # JSON template for a subscription.
      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
        "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
      },
      "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
      "customerDomain": "A String", # Primary domain name of the customer
      "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
        "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
        "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
            # - true — The plan is in trial.
            # - false — The plan is not in trial.
      },
      "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
      "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
      "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
        "kind": "subscriptions#seats", # Identifies the resource as a subscription seat setting. Value: subscriptions#seats
        "numberOfSeats": 42, # This is a required property and is exclusive to subscriptions with ANNUAL_MONTHLY_PAY and ANNUAL_YEARLY_PAY plans. This property sets the maximum number of licenses assignable to users on a subscription. The reseller can add more licenses, but once set, the numberOfSeats cannot be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are assigned. Note: G Suite subscriptions automatically assign a license to every user.
        "maximumNumberOfSeats": 42, # This is a required property and is exclusive to subscriptions with FLEXIBLE or TRIAL plans. This property sets the maximum number of licensed users allowed on a subscription. This quantity can be increased up to the maximum limit defined in the reseller's contract. The minimum quantity is the current number of users in the customer account. Note: G Suite subscriptions automatically assign a license to every user.
        "licensedNumberOfSeats": 42, # Read-only field containing the current number of users that are assigned a license for the product defined in skuId. This field's value is equivalent to the numerical count of users returned by the Enterprise License Manager API method: listForProductAndSku
      },
      "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
      "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
      "skuName": "A String", # Read-only external display name for a product's SKU assigned to a customer in the subscription. SKU names are subject to change at Google's discretion. For products and SKUs available in this version of the API, see  Product and SKU IDs.
      "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
        "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
        "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
      },
      "status": "A String", # This is an optional property.
      "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
        "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
            #
            # Possible values are:
            # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments.  Caution: ANNUAL_MONTHLY_PAY is returned as ANNUAL in all API responses.
            # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
            # - FLEXIBLE — The flexible plan
            # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
            # - FREE — The free plan is exclusive to the Cloud Identity SKU and does not incur any billing.
        "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.  Note: When billingMethod value is OFFLINE, the subscription property object plan.commitmentInterval is omitted in all API responses.
          "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
          "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
        },
        "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
            # - true — The subscription's plan is an annual commitment plan.
            # - false — The plan is not an annual commitment plan.
      },
      "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
          #
          # Possible options include:
          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
          # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
          # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
          # - TRIAL_ENDED - The customer's trial expired without a plan selected.
          # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
        "A String",
      ],
      "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
      "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
    }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(customerId, body, customerAuthToken=None)</code>
  <pre>Create or transfer a subscription.

Args:
  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # JSON template for a subscription.
    "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
      "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
      "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
    },
    "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
    "customerDomain": "A String", # Primary domain name of the customer
    "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
      "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
      "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
          # - true — The plan is in trial.
          # - false — The plan is not in trial.
    },
    "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
    "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
    "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
      "kind": "subscriptions#seats", # Identifies the resource as a subscription seat setting. Value: subscriptions#seats
      "numberOfSeats": 42, # This is a required property and is exclusive to subscriptions with ANNUAL_MONTHLY_PAY and ANNUAL_YEARLY_PAY plans. This property sets the maximum number of licenses assignable to users on a subscription. The reseller can add more licenses, but once set, the numberOfSeats cannot be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are assigned. Note: G Suite subscriptions automatically assign a license to every user.
      "maximumNumberOfSeats": 42, # This is a required property and is exclusive to subscriptions with FLEXIBLE or TRIAL plans. This property sets the maximum number of licensed users allowed on a subscription. This quantity can be increased up to the maximum limit defined in the reseller's contract. The minimum quantity is the current number of users in the customer account. Note: G Suite subscriptions automatically assign a license to every user.
      "licensedNumberOfSeats": 42, # Read-only field containing the current number of users that are assigned a license for the product defined in skuId. This field's value is equivalent to the numerical count of users returned by the Enterprise License Manager API method: listForProductAndSku
    },
    "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
    "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
    "skuName": "A String", # Read-only external display name for a product's SKU assigned to a customer in the subscription. SKU names are subject to change at Google's discretion. For products and SKUs available in this version of the API, see  Product and SKU IDs.
    "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
      "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
      "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
    },
    "status": "A String", # This is an optional property.
    "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
      "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
          # 
          # Possible values are:
          # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments.  Caution: ANNUAL_MONTHLY_PAY is returned as ANNUAL in all API responses.
          # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
          # - FLEXIBLE — The flexible plan
          # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
          # - FREE — The free plan is exclusive to the Cloud Identity SKU and does not incur any billing.
      "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.  Note: When billingMethod value is OFFLINE, the subscription property object plan.commitmentInterval is omitted in all API responses.
        "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
        "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
      },
      "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
          # - true — The subscription's plan is an annual commitment plan.
          # - false — The plan is not an annual commitment plan.
    },
    "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
    "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
        # 
        # Possible options include:
        # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
        # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
        # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
        # - TRIAL_ENDED - The customer's trial expired without a plan selected.
        # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
      "A String",
    ],
    "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
    "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
    "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
  }

  customerAuthToken: string, The customerAuthToken query string is required when creating a resold account that transfers a direct customer's subscription or transfers another reseller customer's subscription to your reseller management. This is a hexadecimal authentication token needed to complete the subscription transfer. For more information, see the administrator help center.

Returns:
  An object of the form:

    { # JSON template for a subscription.
      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
        "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
      },
      "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
      "customerDomain": "A String", # Primary domain name of the customer
      "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
        "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
        "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
            # - true — The plan is in trial.
            # - false — The plan is not in trial.
      },
      "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
      "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
      "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
        "kind": "subscriptions#seats", # Identifies the resource as a subscription seat setting. Value: subscriptions#seats
        "numberOfSeats": 42, # This is a required property and is exclusive to subscriptions with ANNUAL_MONTHLY_PAY and ANNUAL_YEARLY_PAY plans. This property sets the maximum number of licenses assignable to users on a subscription. The reseller can add more licenses, but once set, the numberOfSeats cannot be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are assigned. Note: G Suite subscriptions automatically assign a license to every user.
        "maximumNumberOfSeats": 42, # This is a required property and is exclusive to subscriptions with FLEXIBLE or TRIAL plans. This property sets the maximum number of licensed users allowed on a subscription. This quantity can be increased up to the maximum limit defined in the reseller's contract. The minimum quantity is the current number of users in the customer account. Note: G Suite subscriptions automatically assign a license to every user.
        "licensedNumberOfSeats": 42, # Read-only field containing the current number of users that are assigned a license for the product defined in skuId. This field's value is equivalent to the numerical count of users returned by the Enterprise License Manager API method: listForProductAndSku
      },
      "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
      "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
      "skuName": "A String", # Read-only external display name for a product's SKU assigned to a customer in the subscription. SKU names are subject to change at Google's discretion. For products and SKUs available in this version of the API, see  Product and SKU IDs.
      "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
        "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
        "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
      },
      "status": "A String", # This is an optional property.
      "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
        "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
            #
            # Possible values are:
            # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments.  Caution: ANNUAL_MONTHLY_PAY is returned as ANNUAL in all API responses.
            # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
            # - FLEXIBLE — The flexible plan
            # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
            # - FREE — The free plan is exclusive to the Cloud Identity SKU and does not incur any billing.
        "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.  Note: When billingMethod value is OFFLINE, the subscription property object plan.commitmentInterval is omitted in all API responses.
          "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
          "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
        },
        "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
            # - true — The subscription's plan is an annual commitment plan.
            # - false — The plan is not an annual commitment plan.
      },
      "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
          #
          # Possible options include:
          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
          # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
          # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
          # - TRIAL_ENDED - The customer's trial expired without a plan selected.
          # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
        "A String",
      ],
      "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
      "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(customerAuthToken=None, pageToken=None, maxResults=None, customerNamePrefix=None, customerId=None)</code>
  <pre>List of subscriptions managed by the reseller. The list can be all subscriptions, all of a customer's subscriptions, or all of a customer's transferable subscriptions.

Args:
  customerAuthToken: string, The customerAuthToken query string is required when creating a resold account that transfers a direct customer's subscription or transfers another reseller customer's subscription to your reseller management. This is a hexadecimal authentication token needed to complete the subscription transfer. For more information, see the administrator help center.
  pageToken: string, Token to specify next page in the list
  maxResults: integer, When retrieving a large list, the maxResults is the maximum number of results per page. The nextPageToken value takes you to the next page. The default is 20.
  customerNamePrefix: string, When retrieving all of your subscriptions and filtering for specific customers, you can enter a prefix for a customer name. Using an example customer group that includes exam.com, example20.com and example.com:  
- exa -- Returns all customer names that start with 'exa' which could include exam.com, example20.com, and example.com. A name prefix is similar to using a regular expression's asterisk, exa*. 
- example -- Returns example20.com and example.com.
  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates.

Returns:
  An object of the form:

    { # JSON template for a subscription list.
    "nextPageToken": "A String", # The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
    "kind": "reseller#subscriptions", # Identifies the resource as a collection of subscriptions. Value: reseller#subscriptions
    "subscriptions": [ # The subscriptions in this page of results.
      { # JSON template for a subscription.
          "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
            "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
            "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
          },
          "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
          "customerDomain": "A String", # Primary domain name of the customer
          "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
            "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
            "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
                # - true — The plan is in trial.
                # - false — The plan is not in trial.
          },
          "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
          "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
          "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
            "kind": "subscriptions#seats", # Identifies the resource as a subscription seat setting. Value: subscriptions#seats
            "numberOfSeats": 42, # This is a required property and is exclusive to subscriptions with ANNUAL_MONTHLY_PAY and ANNUAL_YEARLY_PAY plans. This property sets the maximum number of licenses assignable to users on a subscription. The reseller can add more licenses, but once set, the numberOfSeats cannot be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are assigned. Note: G Suite subscriptions automatically assign a license to every user.
            "maximumNumberOfSeats": 42, # This is a required property and is exclusive to subscriptions with FLEXIBLE or TRIAL plans. This property sets the maximum number of licensed users allowed on a subscription. This quantity can be increased up to the maximum limit defined in the reseller's contract. The minimum quantity is the current number of users in the customer account. Note: G Suite subscriptions automatically assign a license to every user.
            "licensedNumberOfSeats": 42, # Read-only field containing the current number of users that are assigned a license for the product defined in skuId. This field's value is equivalent to the numerical count of users returned by the Enterprise License Manager API method: listForProductAndSku
          },
          "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
          "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
          "skuName": "A String", # Read-only external display name for a product's SKU assigned to a customer in the subscription. SKU names are subject to change at Google's discretion. For products and SKUs available in this version of the API, see  Product and SKU IDs.
          "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
            "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
            "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
          },
          "status": "A String", # This is an optional property.
          "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
            "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
                #
                # Possible values are:
                # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments.  Caution: ANNUAL_MONTHLY_PAY is returned as ANNUAL in all API responses.
                # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
                # - FLEXIBLE — The flexible plan
                # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
                # - FREE — The free plan is exclusive to the Cloud Identity SKU and does not incur any billing.
            "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.  Note: When billingMethod value is OFFLINE, the subscription property object plan.commitmentInterval is omitted in all API responses.
              "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
              "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
            },
            "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
                # - true — The subscription's plan is an annual commitment plan.
                # - false — The plan is not an annual commitment plan.
          },
          "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
          "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
              #
              # Possible options include:
              # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
              # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
              # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
              # - TRIAL_ENDED - The customer's trial expired without a plan selected.
              # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
            "A String",
          ],
          "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
          "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
          "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
        },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="startPaidService">startPaidService(customerId, subscriptionId)</code>
  <pre>Immediately move a 30-day free trial subscription to a paid service subscription.

Args:
  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (required)
  subscriptionId: string, This is a required property. The subscriptionId is the subscription identifier and is unique for each customer. Since a subscriptionId changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the subscriptionId can be found using the retrieve all reseller subscriptions method. (required)

Returns:
  An object of the form:

    { # JSON template for a subscription.
      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
        "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
      },
      "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
      "customerDomain": "A String", # Primary domain name of the customer
      "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
        "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
        "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
            # - true — The plan is in trial.
            # - false — The plan is not in trial.
      },
      "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
      "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
      "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
        "kind": "subscriptions#seats", # Identifies the resource as a subscription seat setting. Value: subscriptions#seats
        "numberOfSeats": 42, # This is a required property and is exclusive to subscriptions with ANNUAL_MONTHLY_PAY and ANNUAL_YEARLY_PAY plans. This property sets the maximum number of licenses assignable to users on a subscription. The reseller can add more licenses, but once set, the numberOfSeats cannot be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are assigned. Note: G Suite subscriptions automatically assign a license to every user.
        "maximumNumberOfSeats": 42, # This is a required property and is exclusive to subscriptions with FLEXIBLE or TRIAL plans. This property sets the maximum number of licensed users allowed on a subscription. This quantity can be increased up to the maximum limit defined in the reseller's contract. The minimum quantity is the current number of users in the customer account. Note: G Suite subscriptions automatically assign a license to every user.
        "licensedNumberOfSeats": 42, # Read-only field containing the current number of users that are assigned a license for the product defined in skuId. This field's value is equivalent to the numerical count of users returned by the Enterprise License Manager API method: listForProductAndSku
      },
      "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
      "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
      "skuName": "A String", # Read-only external display name for a product's SKU assigned to a customer in the subscription. SKU names are subject to change at Google's discretion. For products and SKUs available in this version of the API, see  Product and SKU IDs.
      "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
        "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
        "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
      },
      "status": "A String", # This is an optional property.
      "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
        "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
            #
            # Possible values are:
            # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments.  Caution: ANNUAL_MONTHLY_PAY is returned as ANNUAL in all API responses.
            # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
            # - FLEXIBLE — The flexible plan
            # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
            # - FREE — The free plan is exclusive to the Cloud Identity SKU and does not incur any billing.
        "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.  Note: When billingMethod value is OFFLINE, the subscription property object plan.commitmentInterval is omitted in all API responses.
          "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
          "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
        },
        "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
            # - true — The subscription's plan is an annual commitment plan.
            # - false — The plan is not an annual commitment plan.
      },
      "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
          #
          # Possible options include:
          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
          # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
          # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
          # - TRIAL_ENDED - The customer's trial expired without a plan selected.
          # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
        "A String",
      ],
      "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
      "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
    }</pre>
</div>

<div class="method">
    <code class="details" id="suspend">suspend(customerId, subscriptionId)</code>
  <pre>Suspends an active subscription.

Args:
  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (required)
  subscriptionId: string, This is a required property. The subscriptionId is the subscription identifier and is unique for each customer. Since a subscriptionId changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the subscriptionId can be found using the retrieve all reseller subscriptions method. (required)

Returns:
  An object of the form:

    { # JSON template for a subscription.
      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
        "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
      },
      "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
      "customerDomain": "A String", # Primary domain name of the customer
      "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
        "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
        "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
            # - true — The plan is in trial.
            # - false — The plan is not in trial.
      },
      "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
      "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
      "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
        "kind": "subscriptions#seats", # Identifies the resource as a subscription seat setting. Value: subscriptions#seats
        "numberOfSeats": 42, # This is a required property and is exclusive to subscriptions with ANNUAL_MONTHLY_PAY and ANNUAL_YEARLY_PAY plans. This property sets the maximum number of licenses assignable to users on a subscription. The reseller can add more licenses, but once set, the numberOfSeats cannot be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are assigned. Note: G Suite subscriptions automatically assign a license to every user.
        "maximumNumberOfSeats": 42, # This is a required property and is exclusive to subscriptions with FLEXIBLE or TRIAL plans. This property sets the maximum number of licensed users allowed on a subscription. This quantity can be increased up to the maximum limit defined in the reseller's contract. The minimum quantity is the current number of users in the customer account. Note: G Suite subscriptions automatically assign a license to every user.
        "licensedNumberOfSeats": 42, # Read-only field containing the current number of users that are assigned a license for the product defined in skuId. This field's value is equivalent to the numerical count of users returned by the Enterprise License Manager API method: listForProductAndSku
      },
      "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
      "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
      "skuName": "A String", # Read-only external display name for a product's SKU assigned to a customer in the subscription. SKU names are subject to change at Google's discretion. For products and SKUs available in this version of the API, see  Product and SKU IDs.
      "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
        "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
        "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
      },
      "status": "A String", # This is an optional property.
      "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
        "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
            #
            # Possible values are:
            # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments.  Caution: ANNUAL_MONTHLY_PAY is returned as ANNUAL in all API responses.
            # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
            # - FLEXIBLE — The flexible plan
            # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
            # - FREE — The free plan is exclusive to the Cloud Identity SKU and does not incur any billing.
        "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.  Note: When billingMethod value is OFFLINE, the subscription property object plan.commitmentInterval is omitted in all API responses.
          "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
          "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
        },
        "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
            # - true — The subscription's plan is an annual commitment plan.
            # - false — The plan is not an annual commitment plan.
      },
      "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
          #
          # Possible options include:
          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
          # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
          # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
          # - TRIAL_ENDED - The customer's trial expired without a plan selected.
          # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
        "A String",
      ],
      "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
      "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
    }</pre>
</div>

</body></html>