insert method
Creates or transfer a subscription.
Create a subscription for a customer's account that you ordered using the
Order a new customer account
method. For more information about creating a subscription for different
payment plans, see
manage subscriptions.
If you did not order the customer's account using the customer insert
method, use the customer's customerAuthToken
when creating a
subscription for that customer. If transferring a G Suite subscription
with an associated Google Drive or Google Vault subscription, use the
batch operation
to transfer all of these subscriptions. For more information, see how to
transfer subscriptions.
request
- The metadata request object.
Request parameters:
customerId
- This can be either the customer's primary domain name or
the customer's unique identifier. If the domain name for a customer
changes, the old domain name cannot be used to access the customer, but
the customer's unique identifier (as returned by the API) can always be
used. We recommend storing the unique identifier in your systems where
applicable.
action
- The intented insert action. Advised to set this when the
customer already has a subscription for a different SKU in the same
product.
Possible string values are:
- "actionUnspecified" : Auto determines whether to create new subscription, upgrade or downagrade existing subscription or transfer the existing subscription
- "buy" : Create new subscription
- "switch" : Switch existing subscription to another sku (upgrade/downgrade)
customerAuthToken
- The customerAuthToken
query string is required
when creating a resold account that transfers a direct customer's
subscription or transfers another reseller customer's subscription to your
reseller management. This is a hexadecimal authentication token needed to
complete the subscription transfer. For more information, see the
administrator help center.
sourceSkuId
- The sku_id of the existing subscription to be upgraded or
downgraded. This is required when action is SWITCH.
$fields
- Selector specifying which fields to include in a partial
response.
Completes with a Subscription.
Completes with a commons.ApiRequestError if the API endpoint returned an error.
If the used http.Client
completes with an error when making a REST call,
this method will complete with the same error.
Implementation
async.Future<Subscription> insert(
Subscription request,
core.String customerId, {
core.String? action,
core.String? customerAuthToken,
core.String? sourceSkuId,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
if (action != null) 'action': [action],
if (customerAuthToken != null) 'customerAuthToken': [customerAuthToken],
if (sourceSkuId != null) 'sourceSkuId': [sourceSkuId],
if ($fields != null) 'fields': [$fields],
};
final url_ =
'apps/reseller/v1/customers/' +
commons.escapeVariable('$customerId') +
'/subscriptions';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return Subscription.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}