blob: 8c6e66b988fccaf78e0c04f7f8a01094c7bb305b [file] [log] [blame]
{
"kind": "discovery#restDescription",
"etag": "\"bRFOOrZKfO9LweMbPqu0kcu6De8/L_xsbykrfe85aNk6xvHb1lEPd8w\"",
"discoveryVersion": "v1",
"id": "reseller:v1",
"name": "reseller",
"version": "v1",
"revision": "20160202",
"title": "Enterprise Apps Reseller API",
"description": "Lets you create and manage your customers and their subscriptions.",
"ownerDomain": "google.com",
"ownerName": "Google",
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"documentationLink": "https://developers.google.com/google-apps/reseller/",
"labels": [
"limited_availability"
],
"protocol": "rest",
"baseUrl": "https://www.googleapis.com/apps/reseller/v1/",
"basePath": "/apps/reseller/v1/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "apps/reseller/v1/",
"batchPath": "batch",
"parameters": {
"alt": {
"type": "string",
"description": "Data format for the response.",
"default": "json",
"enum": [
"json"
],
"enumDescriptions": [
"Responses with Content-Type of application/json"
],
"location": "query"
},
"fields": {
"type": "string",
"description": "Selector specifying which fields to include in a partial response.",
"location": "query"
},
"key": {
"type": "string",
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query"
},
"oauth_token": {
"type": "string",
"description": "OAuth 2.0 token for the current user.",
"location": "query"
},
"prettyPrint": {
"type": "boolean",
"description": "Returns response with indentations and line breaks.",
"default": "true",
"location": "query"
},
"quotaUser": {
"type": "string",
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.",
"location": "query"
},
"userIp": {
"type": "string",
"description": "IP address of the site where the request originates. Use this if you want to enforce per-user limits.",
"location": "query"
}
},
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/apps.order": {
"description": "Manage users on your domain"
},
"https://www.googleapis.com/auth/apps.order.readonly": {
"description": "Manage users on your domain"
}
}
}
},
"schemas": {
"Address": {
"id": "Address",
"type": "object",
"description": "JSON template for address of a customer.",
"properties": {
"addressLine1": {
"type": "string",
"description": "Address line 1 of the address."
},
"addressLine2": {
"type": "string",
"description": "Address line 2 of the address."
},
"addressLine3": {
"type": "string",
"description": "Address line 3 of the address."
},
"contactName": {
"type": "string",
"description": "Name of the contact person."
},
"countryCode": {
"type": "string",
"description": "ISO 3166 country code."
},
"kind": {
"type": "string",
"description": "Identifies the resource as a customer address.",
"default": "customers#address"
},
"locality": {
"type": "string",
"description": "Name of the locality. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element."
},
"organizationName": {
"type": "string",
"description": "Name of the organization."
},
"postalCode": {
"type": "string",
"description": "The postal code. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element."
},
"region": {
"type": "string",
"description": "Name of the region. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element."
}
}
},
"ChangePlanRequest": {
"id": "ChangePlanRequest",
"type": "object",
"description": "JSON template for the ChangePlan rpc request.",
"properties": {
"kind": {
"type": "string",
"description": "Identifies the resource as a subscription change plan request.",
"default": "subscriptions#changePlanRequest"
},
"planName": {
"type": "string",
"description": "Name of the plan to change to."
},
"purchaseOrderId": {
"type": "string",
"description": "Purchase order id for your order tracking purposes."
},
"seats": {
"$ref": "Seats",
"description": "Number/Limit of seats in the new plan."
}
}
},
"Customer": {
"id": "Customer",
"type": "object",
"description": "JSON template for a customer.",
"properties": {
"alternateEmail": {
"type": "string",
"description": "The alternate email of the customer."
},
"customerDomain": {
"type": "string",
"description": "The domain name of the customer."
},
"customerDomainVerified": {
"type": "boolean",
"description": "Whether the customer's primary domain has been verified."
},
"customerId": {
"type": "string",
"description": "The id of the customer."
},
"kind": {
"type": "string",
"description": "Identifies the resource as a customer.",
"default": "reseller#customer"
},
"phoneNumber": {
"type": "string",
"description": "The phone number of the customer."
},
"postalAddress": {
"$ref": "Address",
"description": "The postal address of the customer."
},
"resourceUiUrl": {
"type": "string",
"description": "Ui url for customer resource."
}
}
},
"RenewalSettings": {
"id": "RenewalSettings",
"type": "object",
"description": "JSON template for a subscription renewal settings.",
"properties": {
"kind": {
"type": "string",
"description": "Identifies the resource as a subscription renewal setting.",
"default": "subscriptions#renewalSettings"
},
"renewalType": {
"type": "string",
"description": "Subscription renewal type."
}
}
},
"Seats": {
"id": "Seats",
"type": "object",
"description": "JSON template for subscription seats.",
"properties": {
"kind": {
"type": "string",
"description": "Identifies the resource as a subscription change plan request.",
"default": "subscriptions#seats"
},
"licensedNumberOfSeats": {
"type": "integer",
"description": "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.",
"format": "int32"
},
"maximumNumberOfSeats": {
"type": "integer",
"description": "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.",
"format": "int32"
},
"numberOfSeats": {
"type": "integer",
"description": "Number of seats to purchase. This is applicable only for a commitment plan.",
"format": "int32"
}
}
},
"Subscription": {
"id": "Subscription",
"type": "object",
"description": "JSON template for a subscription.",
"properties": {
"billingMethod": {
"type": "string",
"description": "Billing method of this subscription."
},
"creationTime": {
"type": "string",
"description": "Creation time of this subscription in milliseconds since Unix epoch.",
"format": "int64"
},
"customerId": {
"type": "string",
"description": "The id of the customer to whom the subscription belongs."
},
"kind": {
"type": "string",
"description": "Identifies the resource as a Subscription.",
"default": "reseller#subscription"
},
"plan": {
"type": "object",
"description": "Plan details of the subscription",
"properties": {
"commitmentInterval": {
"type": "object",
"description": "Interval of the commitment if it is a commitment plan.",
"properties": {
"endTime": {
"type": "string",
"description": "End time of the commitment interval in milliseconds since Unix epoch.",
"format": "int64"
},
"startTime": {
"type": "string",
"description": "Start time of the commitment interval in milliseconds since Unix epoch.",
"format": "int64"
}
}
},
"isCommitmentPlan": {
"type": "boolean",
"description": "Whether the plan is a commitment plan or not."
},
"planName": {
"type": "string",
"description": "The plan name of this subscription's plan."
}
}
},
"purchaseOrderId": {
"type": "string",
"description": "Purchase order id for your order tracking purposes."
},
"renewalSettings": {
"$ref": "RenewalSettings",
"description": "Renewal settings of the subscription."
},
"resourceUiUrl": {
"type": "string",
"description": "Ui url for subscription resource."
},
"seats": {
"$ref": "Seats",
"description": "Number/Limit of seats in the new plan."
},
"skuId": {
"type": "string",
"description": "Name of the sku for which this subscription is purchased."
},
"status": {
"type": "string",
"description": "Status of the subscription."
},
"subscriptionId": {
"type": "string",
"description": "The id of the subscription."
},
"suspensionReasons": {
"type": "array",
"description": "field listing all current reasons the subscription is suspended. It is possible for a subscription to have multiple suspension reasons. A subscription's status is SUSPENDED until all pending suspensions are removed. Possible options include: \n- PENDING_TOS_ACCEPTANCE — The customer has not logged in and accepted the Google Apps Resold Terms of Services. \n- RENEWAL_WITH_TYPE_CANCEL — The customer's commitment ended and their service was cancelled at the end of their term. \n- RESELLER_INITIATED — A manual suspension invoked by a Reseller. \n- TRIAL_ENDED — The customer's trial expired without a plan selected. \n- OTHER — The customer is suspended for an internal Google reason (e.g. abuse or otherwise).",
"items": {
"type": "string"
}
},
"transferInfo": {
"type": "object",
"description": "Transfer related information for the subscription.",
"properties": {
"minimumTransferableSeats": {
"type": "integer",
"format": "int32"
},
"transferabilityExpirationTime": {
"type": "string",
"description": "Time when transfer token or intent to transfer will expire.",
"format": "int64"
}
}
},
"trialSettings": {
"type": "object",
"description": "Trial Settings of the subscription.",
"properties": {
"isInTrial": {
"type": "boolean",
"description": "Whether the subscription is in trial."
},
"trialEndTime": {
"type": "string",
"description": "End time of the trial in milliseconds since Unix epoch.",
"format": "int64"
}
}
}
}
},
"Subscriptions": {
"id": "Subscriptions",
"type": "object",
"description": "JSON template for a subscription list.",
"properties": {
"kind": {
"type": "string",
"description": "Identifies the resource as a collection of subscriptions.",
"default": "reseller#subscriptions"
},
"nextPageToken": {
"type": "string",
"description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results."
},
"subscriptions": {
"type": "array",
"description": "The subscriptions in this page of results.",
"items": {
"$ref": "Subscription"
}
}
}
}
},
"resources": {
"customers": {
"methods": {
"get": {
"id": "reseller.customers.get",
"path": "customers/{customerId}",
"httpMethod": "GET",
"description": "Gets a customer resource if one exists and is owned by the reseller.",
"parameters": {
"customerId": {
"type": "string",
"description": "Id of the Customer",
"required": true,
"location": "path"
}
},
"parameterOrder": [
"customerId"
],
"response": {
"$ref": "Customer"
},
"scopes": [
"https://www.googleapis.com/auth/apps.order",
"https://www.googleapis.com/auth/apps.order.readonly"
]
},
"insert": {
"id": "reseller.customers.insert",
"path": "customers",
"httpMethod": "POST",
"description": "Creates a customer resource if one does not already exist.",
"parameters": {
"customerAuthToken": {
"type": "string",
"description": "An auth token needed for inserting a customer for which domain already exists. Can be generated at https://admin.google.com/TransferToken. Optional.",
"location": "query"
}
},
"request": {
"$ref": "Customer"
},
"response": {
"$ref": "Customer"
},
"scopes": [
"https://www.googleapis.com/auth/apps.order"
]
},
"patch": {
"id": "reseller.customers.patch",
"path": "customers/{customerId}",
"httpMethod": "PATCH",
"description": "Update a customer resource if one it exists and is owned by the reseller. This method supports patch semantics.",
"parameters": {
"customerId": {
"type": "string",
"description": "Id of the Customer",
"required": true,
"location": "path"
}
},
"parameterOrder": [
"customerId"
],
"request": {
"$ref": "Customer"
},
"response": {
"$ref": "Customer"
},
"scopes": [
"https://www.googleapis.com/auth/apps.order"
]
},
"update": {
"id": "reseller.customers.update",
"path": "customers/{customerId}",
"httpMethod": "PUT",
"description": "Update a customer resource if one it exists and is owned by the reseller.",
"parameters": {
"customerId": {
"type": "string",
"description": "Id of the Customer",
"required": true,
"location": "path"
}
},
"parameterOrder": [
"customerId"
],
"request": {
"$ref": "Customer"
},
"response": {
"$ref": "Customer"
},
"scopes": [
"https://www.googleapis.com/auth/apps.order"
]
}
}
},
"subscriptions": {
"methods": {
"activate": {
"id": "reseller.subscriptions.activate",
"path": "customers/{customerId}/subscriptions/{subscriptionId}/activate",
"httpMethod": "POST",
"description": "Activates a subscription previously suspended by the reseller",
"parameters": {
"customerId": {
"type": "string",
"description": "Id of the Customer",
"required": true,
"location": "path"
},
"subscriptionId": {
"type": "string",
"description": "Id of the subscription, which is unique for a customer",
"required": true,
"location": "path"
}
},
"parameterOrder": [
"customerId",
"subscriptionId"
],
"response": {
"$ref": "Subscription"
},
"scopes": [
"https://www.googleapis.com/auth/apps.order"
]
},
"changePlan": {
"id": "reseller.subscriptions.changePlan",
"path": "customers/{customerId}/subscriptions/{subscriptionId}/changePlan",
"httpMethod": "POST",
"description": "Changes the plan of a subscription",
"parameters": {
"customerId": {
"type": "string",
"description": "Id of the Customer",
"required": true,
"location": "path"
},
"subscriptionId": {
"type": "string",
"description": "Id of the subscription, which is unique for a customer",
"required": true,
"location": "path"
}
},
"parameterOrder": [
"customerId",
"subscriptionId"
],
"request": {
"$ref": "ChangePlanRequest"
},
"response": {
"$ref": "Subscription"
},
"scopes": [
"https://www.googleapis.com/auth/apps.order"
]
},
"changeRenewalSettings": {
"id": "reseller.subscriptions.changeRenewalSettings",
"path": "customers/{customerId}/subscriptions/{subscriptionId}/changeRenewalSettings",
"httpMethod": "POST",
"description": "Changes the renewal settings of a subscription",
"parameters": {
"customerId": {
"type": "string",
"description": "Id of the Customer",
"required": true,
"location": "path"
},
"subscriptionId": {
"type": "string",
"description": "Id of the subscription, which is unique for a customer",
"required": true,
"location": "path"
}
},
"parameterOrder": [
"customerId",
"subscriptionId"
],
"request": {
"$ref": "RenewalSettings"
},
"response": {
"$ref": "Subscription"
},
"scopes": [
"https://www.googleapis.com/auth/apps.order"
]
},
"changeSeats": {
"id": "reseller.subscriptions.changeSeats",
"path": "customers/{customerId}/subscriptions/{subscriptionId}/changeSeats",
"httpMethod": "POST",
"description": "Changes the seats configuration of a subscription",
"parameters": {
"customerId": {
"type": "string",
"description": "Id of the Customer",
"required": true,
"location": "path"
},
"subscriptionId": {
"type": "string",
"description": "Id of the subscription, which is unique for a customer",
"required": true,
"location": "path"
}
},
"parameterOrder": [
"customerId",
"subscriptionId"
],
"request": {
"$ref": "Seats"
},
"response": {
"$ref": "Subscription"
},
"scopes": [
"https://www.googleapis.com/auth/apps.order"
]
},
"delete": {
"id": "reseller.subscriptions.delete",
"path": "customers/{customerId}/subscriptions/{subscriptionId}",
"httpMethod": "DELETE",
"description": "Cancels/Downgrades a subscription.",
"parameters": {
"customerId": {
"type": "string",
"description": "Id of the Customer",
"required": true,
"location": "path"
},
"deletionType": {
"type": "string",
"description": "Whether the subscription is to be fully cancelled or downgraded",
"required": true,
"enum": [
"cancel",
"downgrade",
"suspend",
"transfer_to_direct"
],
"enumDescriptions": [
"Cancels the subscription immediately",
"Downgrades a Google Apps for Business subscription to Google Apps",
"Suspends the subscriptions for 4 days before cancelling it",
"Transfers a subscription directly to Google"
],
"location": "query"
},
"subscriptionId": {
"type": "string",
"description": "Id of the subscription, which is unique for a customer",
"required": true,
"location": "path"
}
},
"parameterOrder": [
"customerId",
"subscriptionId",
"deletionType"
],
"scopes": [
"https://www.googleapis.com/auth/apps.order"
]
},
"get": {
"id": "reseller.subscriptions.get",
"path": "customers/{customerId}/subscriptions/{subscriptionId}",
"httpMethod": "GET",
"description": "Gets a subscription of the customer.",
"parameters": {
"customerId": {
"type": "string",
"description": "Id of the Customer",
"required": true,
"location": "path"
},
"subscriptionId": {
"type": "string",
"description": "Id of the subscription, which is unique for a customer",
"required": true,
"location": "path"
}
},
"parameterOrder": [
"customerId",
"subscriptionId"
],
"response": {
"$ref": "Subscription"
},
"scopes": [
"https://www.googleapis.com/auth/apps.order",
"https://www.googleapis.com/auth/apps.order.readonly"
]
},
"insert": {
"id": "reseller.subscriptions.insert",
"path": "customers/{customerId}/subscriptions",
"httpMethod": "POST",
"description": "Creates/Transfers a subscription for the customer.",
"parameters": {
"customerAuthToken": {
"type": "string",
"description": "An auth token needed for transferring a subscription. Can be generated at https://www.google.com/a/cpanel/customer-domain/TransferToken. Optional.",
"location": "query"
},
"customerId": {
"type": "string",
"description": "Id of the Customer",
"required": true,
"location": "path"
}
},
"parameterOrder": [
"customerId"
],
"request": {
"$ref": "Subscription"
},
"response": {
"$ref": "Subscription"
},
"scopes": [
"https://www.googleapis.com/auth/apps.order"
]
},
"list": {
"id": "reseller.subscriptions.list",
"path": "subscriptions",
"httpMethod": "GET",
"description": "Lists subscriptions of a reseller, optionally filtered by a customer name prefix.",
"parameters": {
"customerAuthToken": {
"type": "string",
"description": "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.",
"location": "query"
},
"customerId": {
"type": "string",
"description": "Id of the Customer",
"location": "query"
},
"customerNamePrefix": {
"type": "string",
"description": "Prefix of the customer's domain name by which the subscriptions should be filtered. Optional",
"location": "query"
},
"maxResults": {
"type": "integer",
"description": "Maximum number of results to return",
"format": "uint32",
"minimum": "1",
"maximum": "100",
"location": "query"
},
"pageToken": {
"type": "string",
"description": "Token to specify next page in the list",
"location": "query"
}
},
"response": {
"$ref": "Subscriptions"
},
"scopes": [
"https://www.googleapis.com/auth/apps.order",
"https://www.googleapis.com/auth/apps.order.readonly"
]
},
"startPaidService": {
"id": "reseller.subscriptions.startPaidService",
"path": "customers/{customerId}/subscriptions/{subscriptionId}/startPaidService",
"httpMethod": "POST",
"description": "Starts paid service of a trial subscription",
"parameters": {
"customerId": {
"type": "string",
"description": "Id of the Customer",
"required": true,
"location": "path"
},
"subscriptionId": {
"type": "string",
"description": "Id of the subscription, which is unique for a customer",
"required": true,
"location": "path"
}
},
"parameterOrder": [
"customerId",
"subscriptionId"
],
"response": {
"$ref": "Subscription"
},
"scopes": [
"https://www.googleapis.com/auth/apps.order"
]
},
"suspend": {
"id": "reseller.subscriptions.suspend",
"path": "customers/{customerId}/subscriptions/{subscriptionId}/suspend",
"httpMethod": "POST",
"description": "Suspends an active subscription",
"parameters": {
"customerId": {
"type": "string",
"description": "Id of the Customer",
"required": true,
"location": "path"
},
"subscriptionId": {
"type": "string",
"description": "Id of the subscription, which is unique for a customer",
"required": true,
"location": "path"
}
},
"parameterOrder": [
"customerId",
"subscriptionId"
],
"response": {
"$ref": "Subscription"
},
"scopes": [
"https://www.googleapis.com/auth/apps.order"
]
}
}
}
}
}