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](/admin-sdk/reseller/v1/reference/customers/insert.html) method.
For more information about creating a subscription for different payment
plans, see [manage
subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#create_subscription).
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](/admin-sdk/reseller/v1/how-tos/batch.html) to transfer
all of these subscriptions. For more information, see how to [transfer
subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#transfer_a_subscription).
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. The usage of this field is governed
by certain policies which are being developed & tested currently. Hence,
these might not work as intended. Once this is fully tested & available to
consume, we will share more information about its usage, limitations and
policy documentation.
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. The usage of this
field is governed by certain policies which are being developed & tested
currently. Hence, these might not work as intended. Once this is fully
tested & available to consume, we will share more information about its
usage, limitations and policy documentation.
$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>);
}