# Enterprise Apps Reseller API . subscriptions

## Instance Methods

Changes the plan of a subscription

Changes the renewal settings of a subscription

Changes the seats configuration of a subscription

Cancels/Downgrades a subscription.

Gets a subscription of the customer.

Creates/Transfers a subscription for the customer.

Lists subscriptions of a reseller, optionally filtered by a customer name prefix.

Retrieves the next page of results.

Starts paid service of a trial subscription

### Method Details

`changePlan(customerId, subscriptionId, body)`

    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.
        "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.
        },
        "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.
          },
          "skuId": "A String", # Name of the sku for which this subscription is purchased.
          "kind": "reseller#subscription", # Identifies the resource as a Subscription.
          "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.
          },
          "transferInfo": { # Transfer related information for the subscription.
            "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
            "minimumTransferableSeats": 42,
          },
          "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.
          },
          "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
          "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.
          "subscriptionId": "A String", # The id of the subscription.
          "customerId": "A String", # The id of the customer to whom the subscription belongs.
        }

`changeRenewalSettings(customerId, subscriptionId, body)`

    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.
          },
          "skuId": "A String", # Name of the sku for which this subscription is purchased.
          "kind": "reseller#subscription", # Identifies the resource as a Subscription.
          "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.
          },
          "transferInfo": { # Transfer related information for the subscription.
            "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
            "minimumTransferableSeats": 42,
          },
          "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.
          },
          "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
          "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.
          "subscriptionId": "A String", # The id of the subscription.
          "customerId": "A String", # The id of the customer to whom the subscription belongs.
        }

`changeSeats(customerId, subscriptionId, body)`

    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.
    }

    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.
          },
          "skuId": "A String", # Name of the sku for which this subscription is purchased.
          "kind": "reseller#subscription", # Identifies the resource as a Subscription.
          "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.
          },
          "transferInfo": { # Transfer related information for the subscription.
            "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
            "minimumTransferableSeats": 42,
          },
          "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.
          },
          "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
          "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.
          "subscriptionId": "A String", # The id of the subscription.
          "customerId": "A String", # The id of the customer to whom the subscription belongs.
        }

`delete(customerId, subscriptionId, deletionType)`

    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

`get(customerId, subscriptionId)`

    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.
          },
          "skuId": "A String", # Name of the sku for which this subscription is purchased.
          "kind": "reseller#subscription", # Identifies the resource as a Subscription.
          "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.
          },
          "transferInfo": { # Transfer related information for the subscription.
            "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
            "minimumTransferableSeats": 42,
          },
          "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.
          },
          "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
          "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.
          "subscriptionId": "A String", # The id of the subscription.
          "customerId": "A String", # The id of the customer to whom the subscription belongs.
        }

`insert(customerId, body, customerAuthToken=None)`

    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.
        },
        "skuId": "A String", # Name of the sku for which this subscription is purchased.
        "kind": "reseller#subscription", # Identifies the resource as a Subscription.
        "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.
        },
        "transferInfo": { # Transfer related information for the subscription.
          "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
          "minimumTransferableSeats": 42,
        },
        "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.
        },
        "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
        "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.
        "subscriptionId": "A String", # The id of the 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.
          },
          "skuId": "A String", # Name of the sku for which this subscription is purchased.
          "kind": "reseller#subscription", # Identifies the resource as a Subscription.
          "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.
          },
          "transferInfo": { # Transfer related information for the subscription.
            "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
            "minimumTransferableSeats": 42,
          },
          "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.
          },
          "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
          "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.
          "subscriptionId": "A String", # The id of the subscription.
          "customerId": "A String", # The id of the customer to whom the subscription belongs.
        }

`list(customerAuthToken=None, pageToken=None, maxResults=None, customerNamePrefix=None, customerId=None)`

    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.
              },
              "skuId": "A String", # Name of the sku for which this subscription is purchased.
              "kind": "reseller#subscription", # Identifies the resource as a Subscription.
              "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.
              },
              "transferInfo": { # Transfer related information for the subscription.
                "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
                "minimumTransferableSeats": 42,
              },
              "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.
              },
              "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
              "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.
              "subscriptionId": "A String", # The id of the subscription.
              "customerId": "A String", # The id of the customer to whom the subscription belongs.
            },
        ],
      }

`list_next(previous_request, previous_response)`

    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.

`startPaidService(customerId, subscriptionId)`

    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.
          },
          "skuId": "A String", # Name of the sku for which this subscription is purchased.
          "kind": "reseller#subscription", # Identifies the resource as a Subscription.
          "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.
          },
          "transferInfo": { # Transfer related information for the subscription.
            "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
            "minimumTransferableSeats": 42,
          },
          "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.
          },
          "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
          "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.
          "subscriptionId": "A String", # The id of the subscription.
          "customerId": "A String", # The id of the customer to whom the subscription belongs.
        }