create method
Creates a subscription to a given topic.
See the
resource name rules.
If the subscription already exists, returns ALREADY_EXISTS
. If the
corresponding topic doesn't exist, returns NOT_FOUND
. If the name is not
provided in the request, the server will assign a random name for this
subscription on the same project as the topic, conforming to the
resource name format.
The generated name is populated in the returned Subscription object. Note
that for REST API requests, you must specify a name in the request.
request
- The metadata request object.
Request parameters:
name
- Required. The name of the subscription. It must have the format
"projects/{project}/subscriptions/{subscription}"
. {subscription}
must
start with a letter, and contain only letters ([A-Za-z]
), numbers
([0-9]
), dashes (-
), underscores (_
), periods (.
), tildes (~
),
plus (+
) or percent signs (%
). It must be between 3 and 255 characters
in length, and it must not start with "goog"
.
Value must have pattern ^projects/\[^/\]+/subscriptions/\[^/\]+$
.
$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> create(
Subscription request,
core.String name, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PUT',
body: body_,
queryParams: queryParams_,
);
return Subscription.fromJson(
response_ as core.Map<core.String, core.dynamic>);
}