<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">Changes the plan of a subscription</p>
<p class="toc_element">
  <code><a href="#changeRenewalSettings">changeRenewalSettings(customerId, subscriptionId, body)</a></code></p>
<p class="firstline">Changes the renewal settings of a subscription</p>
<p class="toc_element">
  <code><a href="#changeSeats">changeSeats(customerId, subscriptionId, body)</a></code></p>
<p class="firstline">Changes the seats configuration of a subscription</p>
<p class="toc_element">
  <code><a href="#delete">delete(customerId, subscriptionId, deletionType)</a></code></p>
<p class="firstline">Cancels/Downgrades a subscription.</p>
<p class="toc_element">
  <code><a href="#get">get(customerId, subscriptionId)</a></code></p>
<p class="firstline">Gets a subscription of the customer.</p>
<p class="toc_element">
  <code><a href="#insert">insert(customerId, body, customerAuthToken=None)</a></code></p>
<p class="firstline">Creates/Transfers a subscription for the customer.</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">Lists subscriptions of a reseller, optionally filtered by a customer name prefix.</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">Starts paid service of a trial 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, Id of the Customer (required)
  subscriptionId: string, Id of the subscription, which is unique for a customer (required)

Returns:
  An object of the form:

    { # JSON template for a subscription.
      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings of the subscription.
        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
        "renewalType": "A String", # Subscription renewal type.
      },
      "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
      "customerDomain": "A String", # Primary domain name of the customer
      "trialSettings": { # Trial Settings of the subscription.
        "trialEndTime": "A String", # End time of the trial in milliseconds since Unix epoch.
        "isInTrial": True or False, # Whether the subscription is in trial.
      },
      "skuId": "A String", # Name of the sku for which this subscription is purchased.
      "resourceUiUrl": "A String", # Ui url for subscription resource.
      "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
        "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
        "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
        "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
        "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
      },
      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
      "transferInfo": { # Transfer related information for the subscription.
        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
        "minimumTransferableSeats": 42,
      },
      "status": "A String", # Status of the subscription.
      "plan": { # Plan details of the subscription
        "planName": "A String", # The plan name of this subscription's plan.
        "commitmentInterval": { # Interval of the commitment if it is a commitment plan.
          "endTime": "A String", # End time of the commitment interval in milliseconds since Unix epoch.
          "startTime": "A String", # Start time of the commitment interval in milliseconds since Unix epoch.
        },
        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
      },
      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
      "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 Google Apps 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 id of the subscription.
      "billingMethod": "A String", # Billing method of this subscription.
      "customerId": "A String", # The id of the customer to whom the subscription belongs.
    }</pre>
</div>

<div class="method">
    <code class="details" id="changePlan">changePlan(customerId, subscriptionId, body)</code>
  <pre>Changes the plan of a subscription

Args:
  customerId: string, Id of the Customer (required)
  subscriptionId: string, Id of the subscription, which is unique for a customer (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # JSON template for the ChangePlan rpc request.
    "planName": "A String", # Name of the plan to change to.
    "dealCode": "A String", # External name of the deal code applicable for the subscription. This field is optional. If missing, the deal price plan won't be used.
    "kind": "subscriptions#changePlanRequest", # Identifies the resource as a subscription change plan request.
    "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
      "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
      "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
      "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
      "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
    },
    "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
  }


Returns:
  An object of the form:

    { # JSON template for a subscription.
      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings of the subscription.
        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
        "renewalType": "A String", # Subscription renewal type.
      },
      "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
      "customerDomain": "A String", # Primary domain name of the customer
      "trialSettings": { # Trial Settings of the subscription.
        "trialEndTime": "A String", # End time of the trial in milliseconds since Unix epoch.
        "isInTrial": True or False, # Whether the subscription is in trial.
      },
      "skuId": "A String", # Name of the sku for which this subscription is purchased.
      "resourceUiUrl": "A String", # Ui url for subscription resource.
      "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
        "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
        "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
        "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
        "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
      },
      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
      "transferInfo": { # Transfer related information for the subscription.
        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
        "minimumTransferableSeats": 42,
      },
      "status": "A String", # Status of the subscription.
      "plan": { # Plan details of the subscription
        "planName": "A String", # The plan name of this subscription's plan.
        "commitmentInterval": { # Interval of the commitment if it is a commitment plan.
          "endTime": "A String", # End time of the commitment interval in milliseconds since Unix epoch.
          "startTime": "A String", # Start time of the commitment interval in milliseconds since Unix epoch.
        },
        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
      },
      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
      "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 Google Apps 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 id of the subscription.
      "billingMethod": "A String", # Billing method of this subscription.
      "customerId": "A String", # The id of the customer to whom the subscription belongs.
    }</pre>
</div>

<div class="method">
    <code class="details" id="changeRenewalSettings">changeRenewalSettings(customerId, subscriptionId, body)</code>
  <pre>Changes the renewal settings of a subscription

Args:
  customerId: string, Id of the Customer (required)
  subscriptionId: string, Id of the subscription, which is unique for a customer (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.
  "renewalType": "A String", # Subscription renewal type.
}


Returns:
  An object of the form:

    { # JSON template for a subscription.
      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings of the subscription.
        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
        "renewalType": "A String", # Subscription renewal type.
      },
      "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
      "customerDomain": "A String", # Primary domain name of the customer
      "trialSettings": { # Trial Settings of the subscription.
        "trialEndTime": "A String", # End time of the trial in milliseconds since Unix epoch.
        "isInTrial": True or False, # Whether the subscription is in trial.
      },
      "skuId": "A String", # Name of the sku for which this subscription is purchased.
      "resourceUiUrl": "A String", # Ui url for subscription resource.
      "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
        "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
        "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
        "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
        "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
      },
      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
      "transferInfo": { # Transfer related information for the subscription.
        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
        "minimumTransferableSeats": 42,
      },
      "status": "A String", # Status of the subscription.
      "plan": { # Plan details of the subscription
        "planName": "A String", # The plan name of this subscription's plan.
        "commitmentInterval": { # Interval of the commitment if it is a commitment plan.
          "endTime": "A String", # End time of the commitment interval in milliseconds since Unix epoch.
          "startTime": "A String", # Start time of the commitment interval in milliseconds since Unix epoch.
        },
        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
      },
      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
      "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 Google Apps 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 id of the subscription.
      "billingMethod": "A String", # Billing method of this subscription.
      "customerId": "A String", # The id of the customer to whom the subscription belongs.
    }</pre>
</div>

<div class="method">
    <code class="details" id="changeSeats">changeSeats(customerId, subscriptionId, body)</code>
  <pre>Changes the seats configuration of a subscription

Args:
  customerId: string, Id of the Customer (required)
  subscriptionId: string, Id of the subscription, which is unique for a customer (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 change plan request.
  "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
  "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
  "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
}


Returns:
  An object of the form:

    { # JSON template for a subscription.
      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings of the subscription.
        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
        "renewalType": "A String", # Subscription renewal type.
      },
      "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
      "customerDomain": "A String", # Primary domain name of the customer
      "trialSettings": { # Trial Settings of the subscription.
        "trialEndTime": "A String", # End time of the trial in milliseconds since Unix epoch.
        "isInTrial": True or False, # Whether the subscription is in trial.
      },
      "skuId": "A String", # Name of the sku for which this subscription is purchased.
      "resourceUiUrl": "A String", # Ui url for subscription resource.
      "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
        "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
        "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
        "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
        "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
      },
      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
      "transferInfo": { # Transfer related information for the subscription.
        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
        "minimumTransferableSeats": 42,
      },
      "status": "A String", # Status of the subscription.
      "plan": { # Plan details of the subscription
        "planName": "A String", # The plan name of this subscription's plan.
        "commitmentInterval": { # Interval of the commitment if it is a commitment plan.
          "endTime": "A String", # End time of the commitment interval in milliseconds since Unix epoch.
          "startTime": "A String", # Start time of the commitment interval in milliseconds since Unix epoch.
        },
        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
      },
      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
      "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 Google Apps 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 id of the subscription.
      "billingMethod": "A String", # Billing method of this subscription.
      "customerId": "A String", # The id of the customer to whom the subscription belongs.
    }</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(customerId, subscriptionId, deletionType)</code>
  <pre>Cancels/Downgrades a subscription.

Args:
  customerId: string, Id of the Customer (required)
  subscriptionId: string, Id of the subscription, which is unique for a customer (required)
  deletionType: string, Whether the subscription is to be fully cancelled or downgraded (required)
    Allowed values
      cancel - Cancels the subscription immediately
      downgrade - Downgrades a Google Apps for Business subscription to Google Apps
      suspend - Suspends the subscriptions for 4 days before cancelling it
      transfer_to_direct - Transfers a subscription directly to Google
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(customerId, subscriptionId)</code>
  <pre>Gets a subscription of the customer.

Args:
  customerId: string, Id of the Customer (required)
  subscriptionId: string, Id of the subscription, which is unique for a customer (required)

Returns:
  An object of the form:

    { # JSON template for a subscription.
      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings of the subscription.
        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
        "renewalType": "A String", # Subscription renewal type.
      },
      "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
      "customerDomain": "A String", # Primary domain name of the customer
      "trialSettings": { # Trial Settings of the subscription.
        "trialEndTime": "A String", # End time of the trial in milliseconds since Unix epoch.
        "isInTrial": True or False, # Whether the subscription is in trial.
      },
      "skuId": "A String", # Name of the sku for which this subscription is purchased.
      "resourceUiUrl": "A String", # Ui url for subscription resource.
      "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
        "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
        "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
        "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
        "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
      },
      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
      "transferInfo": { # Transfer related information for the subscription.
        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
        "minimumTransferableSeats": 42,
      },
      "status": "A String", # Status of the subscription.
      "plan": { # Plan details of the subscription
        "planName": "A String", # The plan name of this subscription's plan.
        "commitmentInterval": { # Interval of the commitment if it is a commitment plan.
          "endTime": "A String", # End time of the commitment interval in milliseconds since Unix epoch.
          "startTime": "A String", # Start time of the commitment interval in milliseconds since Unix epoch.
        },
        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
      },
      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
      "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 Google Apps 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 id of the subscription.
      "billingMethod": "A String", # Billing method of this subscription.
      "customerId": "A String", # The id of the customer to whom the subscription belongs.
    }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(customerId, body, customerAuthToken=None)</code>
  <pre>Creates/Transfers a subscription for the customer.

Args:
  customerId: string, Id of the Customer (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 of the subscription.
      "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
      "renewalType": "A String", # Subscription renewal type.
    },
    "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
    "customerDomain": "A String", # Primary domain name of the customer
    "trialSettings": { # Trial Settings of the subscription.
      "trialEndTime": "A String", # End time of the trial in milliseconds since Unix epoch.
      "isInTrial": True or False, # Whether the subscription is in trial.
    },
    "skuId": "A String", # Name of the sku for which this subscription is purchased.
    "resourceUiUrl": "A String", # Ui url for subscription resource.
    "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
      "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
      "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
      "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
      "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
    },
    "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
    "kind": "reseller#subscription", # Identifies the resource as a Subscription.
    "transferInfo": { # Transfer related information for the subscription.
      "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
      "minimumTransferableSeats": 42,
    },
    "status": "A String", # Status of the subscription.
    "plan": { # Plan details of the subscription
      "planName": "A String", # The plan name of this subscription's plan.
      "commitmentInterval": { # Interval of the commitment if it is a commitment plan.
        "endTime": "A String", # End time of the commitment interval in milliseconds since Unix epoch.
        "startTime": "A String", # Start time of the commitment interval in milliseconds since Unix epoch.
      },
      "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
    },
    "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
    "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 Google Apps 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 id of the subscription.
    "billingMethod": "A String", # Billing method of this subscription.
    "customerId": "A String", # The id of the customer to whom the subscription belongs.
  }

  customerAuthToken: string, An auth token needed for transferring a subscription. Can be generated at https://www.google.com/a/cpanel/customer-domain/TransferToken. Optional.

Returns:
  An object of the form:

    { # JSON template for a subscription.
      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings of the subscription.
        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
        "renewalType": "A String", # Subscription renewal type.
      },
      "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
      "customerDomain": "A String", # Primary domain name of the customer
      "trialSettings": { # Trial Settings of the subscription.
        "trialEndTime": "A String", # End time of the trial in milliseconds since Unix epoch.
        "isInTrial": True or False, # Whether the subscription is in trial.
      },
      "skuId": "A String", # Name of the sku for which this subscription is purchased.
      "resourceUiUrl": "A String", # Ui url for subscription resource.
      "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
        "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
        "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
        "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
        "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
      },
      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
      "transferInfo": { # Transfer related information for the subscription.
        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
        "minimumTransferableSeats": 42,
      },
      "status": "A String", # Status of the subscription.
      "plan": { # Plan details of the subscription
        "planName": "A String", # The plan name of this subscription's plan.
        "commitmentInterval": { # Interval of the commitment if it is a commitment plan.
          "endTime": "A String", # End time of the commitment interval in milliseconds since Unix epoch.
          "startTime": "A String", # Start time of the commitment interval in milliseconds since Unix epoch.
        },
        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
      },
      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
      "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 Google Apps 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 id of the subscription.
      "billingMethod": "A String", # Billing method of this subscription.
      "customerId": "A String", # The id of the customer to whom the subscription belongs.
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(customerAuthToken=None, pageToken=None, maxResults=None, customerNamePrefix=None, customerId=None)</code>
  <pre>Lists subscriptions of a reseller, optionally filtered by a customer name prefix.

Args:
  customerAuthToken: string, An auth token needed if the customer is not a resold customer of this reseller. Can be generated at https://www.google.com/a/cpanel/customer-domain/TransferToken.Optional.
  pageToken: string, Token to specify next page in the list
  maxResults: integer, Maximum number of results to return
  customerNamePrefix: string, Prefix of the customer's domain name by which the subscriptions should be filtered. Optional
  customerId: string, Id of the Customer

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.
    "subscriptions": [ # The subscriptions in this page of results.
      { # JSON template for a subscription.
          "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings of the subscription.
            "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
            "renewalType": "A String", # Subscription renewal type.
          },
          "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
          "customerDomain": "A String", # Primary domain name of the customer
          "trialSettings": { # Trial Settings of the subscription.
            "trialEndTime": "A String", # End time of the trial in milliseconds since Unix epoch.
            "isInTrial": True or False, # Whether the subscription is in trial.
          },
          "skuId": "A String", # Name of the sku for which this subscription is purchased.
          "resourceUiUrl": "A String", # Ui url for subscription resource.
          "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
            "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
            "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
            "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
            "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
          },
          "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
          "kind": "reseller#subscription", # Identifies the resource as a Subscription.
          "transferInfo": { # Transfer related information for the subscription.
            "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
            "minimumTransferableSeats": 42,
          },
          "status": "A String", # Status of the subscription.
          "plan": { # Plan details of the subscription
            "planName": "A String", # The plan name of this subscription's plan.
            "commitmentInterval": { # Interval of the commitment if it is a commitment plan.
              "endTime": "A String", # End time of the commitment interval in milliseconds since Unix epoch.
              "startTime": "A String", # Start time of the commitment interval in milliseconds since Unix epoch.
            },
            "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
          },
          "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
          "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 Google Apps 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 id of the subscription.
          "billingMethod": "A String", # Billing method of this subscription.
          "customerId": "A String", # The id of the customer to whom the subscription belongs.
        },
    ],
  }</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>Starts paid service of a trial subscription

Args:
  customerId: string, Id of the Customer (required)
  subscriptionId: string, Id of the subscription, which is unique for a customer (required)

Returns:
  An object of the form:

    { # JSON template for a subscription.
      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings of the subscription.
        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
        "renewalType": "A String", # Subscription renewal type.
      },
      "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
      "customerDomain": "A String", # Primary domain name of the customer
      "trialSettings": { # Trial Settings of the subscription.
        "trialEndTime": "A String", # End time of the trial in milliseconds since Unix epoch.
        "isInTrial": True or False, # Whether the subscription is in trial.
      },
      "skuId": "A String", # Name of the sku for which this subscription is purchased.
      "resourceUiUrl": "A String", # Ui url for subscription resource.
      "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
        "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
        "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
        "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
        "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
      },
      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
      "transferInfo": { # Transfer related information for the subscription.
        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
        "minimumTransferableSeats": 42,
      },
      "status": "A String", # Status of the subscription.
      "plan": { # Plan details of the subscription
        "planName": "A String", # The plan name of this subscription's plan.
        "commitmentInterval": { # Interval of the commitment if it is a commitment plan.
          "endTime": "A String", # End time of the commitment interval in milliseconds since Unix epoch.
          "startTime": "A String", # Start time of the commitment interval in milliseconds since Unix epoch.
        },
        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
      },
      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
      "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 Google Apps 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 id of the subscription.
      "billingMethod": "A String", # Billing method of this subscription.
      "customerId": "A String", # The id of the customer to whom the subscription belongs.
    }</pre>
</div>

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

Args:
  customerId: string, Id of the Customer (required)
  subscriptionId: string, Id of the subscription, which is unique for a customer (required)

Returns:
  An object of the form:

    { # JSON template for a subscription.
      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings of the subscription.
        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
        "renewalType": "A String", # Subscription renewal type.
      },
      "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
      "customerDomain": "A String", # Primary domain name of the customer
      "trialSettings": { # Trial Settings of the subscription.
        "trialEndTime": "A String", # End time of the trial in milliseconds since Unix epoch.
        "isInTrial": True or False, # Whether the subscription is in trial.
      },
      "skuId": "A String", # Name of the sku for which this subscription is purchased.
      "resourceUiUrl": "A String", # Ui url for subscription resource.
      "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
        "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
        "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
        "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
        "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
      },
      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
      "transferInfo": { # Transfer related information for the subscription.
        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
        "minimumTransferableSeats": 42,
      },
      "status": "A String", # Status of the subscription.
      "plan": { # Plan details of the subscription
        "planName": "A String", # The plan name of this subscription's plan.
        "commitmentInterval": { # Interval of the commitment if it is a commitment plan.
          "endTime": "A String", # End time of the commitment interval in milliseconds since Unix epoch.
          "startTime": "A String", # Start time of the commitment interval in milliseconds since Unix epoch.
        },
        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
      },
      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
      "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 Google Apps 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 id of the subscription.
      "billingMethod": "A String", # Billing method of this subscription.
      "customerId": "A String", # The id of the customer to whom the subscription belongs.
    }</pre>
</div>

</body></html>