provision method

Used by partners to provision a subscription for their customers.

This creates a subscription without associating it with the end user account. EntitleSubscription must be called separately using OAuth in order for the end user account to be associated with the subscription. It should be called directly by the partner using service accounts.

request - The metadata request object.

Request parameters:

parent - Required. The parent resource name, which is the identifier of the partner. It will have the format of "partners/{partner_id}". Value must have pattern ^partners/\[^/\]+$.

subscriptionId - Required. Identifies the subscription resource on the Partner side. The value is restricted to 63 ASCII characters at the maximum. If a subscription was previously created with the same subscription_id, we will directly return that one.

$fields - Selector specifying which fields to include in a partial response.

Completes with a GoogleCloudPaymentsResellerSubscriptionV1Subscription.

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<GoogleCloudPaymentsResellerSubscriptionV1Subscription> provision(
  GoogleCloudPaymentsResellerSubscriptionV1Subscription request,
  core.String parent, {
  core.String? subscriptionId,
  core.String? $fields,
}) async {
  final body_ = convert.json.encode(request);
  final queryParams_ = <core.String, core.List<core.String>>{
    if (subscriptionId != null) 'subscriptionId': [subscriptionId],
    if ($fields != null) 'fields': [$fields],
  };

  final url_ =
      'v1/' + core.Uri.encodeFull('$parent') + '/subscriptions:provision';

  final response_ = await _requester.request(
    url_,
    'POST',
    body: body_,
    queryParams: queryParams_,
  );
  return GoogleCloudPaymentsResellerSubscriptionV1Subscription.fromJson(
      response_ as core.Map<core.String, core.dynamic>);
}