| // This is a generated file (see the discoveryapis_generator project). |
| |
| library googleapis_beta.pubsub.v1beta2; |
| |
| import 'dart:core' as core; |
| import 'dart:async' as async; |
| import 'dart:convert' as convert; |
| |
| import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; |
| import 'package:http/http.dart' as http; |
| |
| export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' show |
| ApiRequestError, DetailedApiRequestError; |
| |
| const core.String USER_AGENT = 'dart-api-client pubsub/v1beta2'; |
| |
| /** |
| * Provides reliable, many-to-many, asynchronous messaging between applications. |
| */ |
| class PubsubApi { |
| /** View and manage your data across Google Cloud Platform services */ |
| static const CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"; |
| |
| /** View and manage Pub/Sub topics and subscriptions */ |
| static const PubsubScope = "https://www.googleapis.com/auth/pubsub"; |
| |
| |
| final commons.ApiRequester _requester; |
| |
| ProjectsResourceApi get projects => new ProjectsResourceApi(_requester); |
| |
| PubsubApi(http.Client client, {core.String rootUrl: "https://pubsub.googleapis.com/", core.String servicePath: ""}) : |
| _requester = new commons.ApiRequester(client, rootUrl, servicePath, USER_AGENT); |
| } |
| |
| |
| class ProjectsResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsSubscriptionsResourceApi get subscriptions => new ProjectsSubscriptionsResourceApi(_requester); |
| ProjectsTopicsResourceApi get topics => new ProjectsTopicsResourceApi(_requester); |
| |
| ProjectsResourceApi(commons.ApiRequester client) : |
| _requester = client; |
| } |
| |
| |
| class ProjectsSubscriptionsResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsSubscriptionsResourceApi(commons.ApiRequester client) : |
| _requester = client; |
| |
| /** |
| * Acknowledges the messages associated with the `ack_ids` in the |
| * `AcknowledgeRequest`. The Pub/Sub system can remove the relevant messages |
| * from the subscription. |
| * |
| * Acknowledging a message whose ack deadline has expired may succeed, |
| * but such a message may be redelivered later. Acknowledging a message more |
| * than once will not result in an error. |
| * |
| * [request] - The metadata request object. |
| * |
| * Request parameters: |
| * |
| * [subscription] - The subscription whose message is being acknowledged. |
| * Value must have pattern "^projects/[^/]+/subscriptions/[^/]+$". |
| * |
| * Completes with a [Empty]. |
| * |
| * 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. |
| */ |
| async.Future<Empty> acknowledge(AcknowledgeRequest request, core.String subscription) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (request != null) { |
| _body = convert.JSON.encode((request).toJson()); |
| } |
| if (subscription == null) { |
| throw new core.ArgumentError("Parameter subscription is required."); |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$subscription') + ':acknowledge'; |
| |
| var _response = _requester.request(_url, |
| "POST", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new Empty.fromJson(data)); |
| } |
| |
| /** |
| * Creates a subscription to a given topic. |
| * 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. Note that |
| * for REST API requests, you must specify a name. |
| * |
| * [request] - The metadata request object. |
| * |
| * Request parameters: |
| * |
| * [name] - 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/[^/]+$". |
| * |
| * 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. |
| */ |
| async.Future<Subscription> create(Subscription request, core.String name) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (request != null) { |
| _body = convert.JSON.encode((request).toJson()); |
| } |
| if (name == null) { |
| throw new core.ArgumentError("Parameter name is required."); |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| var _response = _requester.request(_url, |
| "PUT", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new Subscription.fromJson(data)); |
| } |
| |
| /** |
| * Deletes an existing subscription. All pending messages in the subscription |
| * are immediately dropped. Calls to `Pull` after deletion will return |
| * `NOT_FOUND`. After a subscription is deleted, a new one may be created with |
| * the same name, but the new one has no association with the old |
| * subscription, or its topic unless the same topic is specified. |
| * |
| * Request parameters: |
| * |
| * [subscription] - The subscription to delete. |
| * Value must have pattern "^projects/[^/]+/subscriptions/[^/]+$". |
| * |
| * Completes with a [Empty]. |
| * |
| * 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. |
| */ |
| async.Future<Empty> delete(core.String subscription) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (subscription == null) { |
| throw new core.ArgumentError("Parameter subscription is required."); |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$subscription'); |
| |
| var _response = _requester.request(_url, |
| "DELETE", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new Empty.fromJson(data)); |
| } |
| |
| /** |
| * Gets the configuration details of a subscription. |
| * |
| * Request parameters: |
| * |
| * [subscription] - The name of the subscription to get. |
| * Value must have pattern "^projects/[^/]+/subscriptions/[^/]+$". |
| * |
| * 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. |
| */ |
| async.Future<Subscription> get(core.String subscription) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (subscription == null) { |
| throw new core.ArgumentError("Parameter subscription is required."); |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$subscription'); |
| |
| var _response = _requester.request(_url, |
| "GET", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new Subscription.fromJson(data)); |
| } |
| |
| /** |
| * Gets the access control policy for a resource. |
| * Returns an empty policy if the resource exists and does not have a policy |
| * set. |
| * |
| * Request parameters: |
| * |
| * [resource] - REQUIRED: The resource for which the policy is being |
| * requested. |
| * See the operation documentation for the appropriate value for this field. |
| * Value must have pattern "^projects/[^/]+/subscriptions/[^/]+$". |
| * |
| * Completes with a [Policy]. |
| * |
| * 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. |
| */ |
| async.Future<Policy> getIamPolicy(core.String resource) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (resource == null) { |
| throw new core.ArgumentError("Parameter resource is required."); |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$resource') + ':getIamPolicy'; |
| |
| var _response = _requester.request(_url, |
| "GET", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new Policy.fromJson(data)); |
| } |
| |
| /** |
| * Lists matching subscriptions. |
| * |
| * Request parameters: |
| * |
| * [project] - The name of the cloud project that subscriptions belong to. |
| * Value must have pattern "^projects/[^/]+$". |
| * |
| * [pageToken] - The value returned by the last `ListSubscriptionsResponse`; |
| * indicates that |
| * this is a continuation of a prior `ListSubscriptions` call, and that the |
| * system should return the next page of data. |
| * |
| * [pageSize] - Maximum number of subscriptions to return. |
| * |
| * Completes with a [ListSubscriptionsResponse]. |
| * |
| * 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. |
| */ |
| async.Future<ListSubscriptionsResponse> list(core.String project, {core.String pageToken, core.int pageSize}) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (project == null) { |
| throw new core.ArgumentError("Parameter project is required."); |
| } |
| if (pageToken != null) { |
| _queryParams["pageToken"] = [pageToken]; |
| } |
| if (pageSize != null) { |
| _queryParams["pageSize"] = ["${pageSize}"]; |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$project') + '/subscriptions'; |
| |
| var _response = _requester.request(_url, |
| "GET", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new ListSubscriptionsResponse.fromJson(data)); |
| } |
| |
| /** |
| * Modifies the ack deadline for a specific message. This method is useful |
| * to indicate that more time is needed to process a message by the |
| * subscriber, or to make the message available for redelivery if the |
| * processing was interrupted. Note that this does not modify the |
| * subscription-level `ackDeadlineSeconds` used for subsequent messages. |
| * |
| * [request] - The metadata request object. |
| * |
| * Request parameters: |
| * |
| * [subscription] - The name of the subscription. |
| * Value must have pattern "^projects/[^/]+/subscriptions/[^/]+$". |
| * |
| * Completes with a [Empty]. |
| * |
| * 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. |
| */ |
| async.Future<Empty> modifyAckDeadline(ModifyAckDeadlineRequest request, core.String subscription) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (request != null) { |
| _body = convert.JSON.encode((request).toJson()); |
| } |
| if (subscription == null) { |
| throw new core.ArgumentError("Parameter subscription is required."); |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$subscription') + ':modifyAckDeadline'; |
| |
| var _response = _requester.request(_url, |
| "POST", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new Empty.fromJson(data)); |
| } |
| |
| /** |
| * Modifies the `PushConfig` for a specified subscription. |
| * |
| * This may be used to change a push subscription to a pull one (signified by |
| * an empty `PushConfig`) or vice versa, or change the endpoint URL and other |
| * attributes of a push subscription. Messages will accumulate for delivery |
| * continuously through the call regardless of changes to the `PushConfig`. |
| * |
| * [request] - The metadata request object. |
| * |
| * Request parameters: |
| * |
| * [subscription] - The name of the subscription. |
| * Value must have pattern "^projects/[^/]+/subscriptions/[^/]+$". |
| * |
| * Completes with a [Empty]. |
| * |
| * 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. |
| */ |
| async.Future<Empty> modifyPushConfig(ModifyPushConfigRequest request, core.String subscription) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (request != null) { |
| _body = convert.JSON.encode((request).toJson()); |
| } |
| if (subscription == null) { |
| throw new core.ArgumentError("Parameter subscription is required."); |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$subscription') + ':modifyPushConfig'; |
| |
| var _response = _requester.request(_url, |
| "POST", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new Empty.fromJson(data)); |
| } |
| |
| /** |
| * Pulls messages from the server. Returns an empty list if there are no |
| * messages available in the backlog. The server may return `UNAVAILABLE` if |
| * there are too many concurrent pull requests pending for the given |
| * subscription. |
| * |
| * [request] - The metadata request object. |
| * |
| * Request parameters: |
| * |
| * [subscription] - The subscription from which messages should be pulled. |
| * Value must have pattern "^projects/[^/]+/subscriptions/[^/]+$". |
| * |
| * Completes with a [PullResponse]. |
| * |
| * 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. |
| */ |
| async.Future<PullResponse> pull(PullRequest request, core.String subscription) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (request != null) { |
| _body = convert.JSON.encode((request).toJson()); |
| } |
| if (subscription == null) { |
| throw new core.ArgumentError("Parameter subscription is required."); |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$subscription') + ':pull'; |
| |
| var _response = _requester.request(_url, |
| "POST", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new PullResponse.fromJson(data)); |
| } |
| |
| /** |
| * Sets the access control policy on the specified resource. Replaces any |
| * existing policy. |
| * |
| * [request] - The metadata request object. |
| * |
| * Request parameters: |
| * |
| * [resource] - REQUIRED: The resource for which the policy is being |
| * specified. |
| * See the operation documentation for the appropriate value for this field. |
| * Value must have pattern "^projects/[^/]+/subscriptions/[^/]+$". |
| * |
| * Completes with a [Policy]. |
| * |
| * 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. |
| */ |
| async.Future<Policy> setIamPolicy(SetIamPolicyRequest request, core.String resource) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (request != null) { |
| _body = convert.JSON.encode((request).toJson()); |
| } |
| if (resource == null) { |
| throw new core.ArgumentError("Parameter resource is required."); |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$resource') + ':setIamPolicy'; |
| |
| var _response = _requester.request(_url, |
| "POST", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new Policy.fromJson(data)); |
| } |
| |
| /** |
| * Returns permissions that a caller has on the specified resource. |
| * If the resource does not exist, this will return an empty set of |
| * permissions, not a NOT_FOUND error. |
| * |
| * Note: This operation is designed to be used for building permission-aware |
| * UIs and command-line tools, not for authorization checking. This operation |
| * may "fail open" without warning. |
| * |
| * [request] - The metadata request object. |
| * |
| * Request parameters: |
| * |
| * [resource] - REQUIRED: The resource for which the policy detail is being |
| * requested. |
| * See the operation documentation for the appropriate value for this field. |
| * Value must have pattern "^projects/[^/]+/subscriptions/[^/]+$". |
| * |
| * Completes with a [TestIamPermissionsResponse]. |
| * |
| * 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. |
| */ |
| async.Future<TestIamPermissionsResponse> testIamPermissions(TestIamPermissionsRequest request, core.String resource) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (request != null) { |
| _body = convert.JSON.encode((request).toJson()); |
| } |
| if (resource == null) { |
| throw new core.ArgumentError("Parameter resource is required."); |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$resource') + ':testIamPermissions'; |
| |
| var _response = _requester.request(_url, |
| "POST", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new TestIamPermissionsResponse.fromJson(data)); |
| } |
| |
| } |
| |
| |
| class ProjectsTopicsResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsTopicsSubscriptionsResourceApi get subscriptions => new ProjectsTopicsSubscriptionsResourceApi(_requester); |
| |
| ProjectsTopicsResourceApi(commons.ApiRequester client) : |
| _requester = client; |
| |
| /** |
| * Creates the given topic with the given name. |
| * |
| * [request] - The metadata request object. |
| * |
| * Request parameters: |
| * |
| * [name] - The name of the topic. It must have the format |
| * `"projects/{project}/topics/{topic}"`. `{topic}` 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/[^/]+/topics/[^/]+$". |
| * |
| * Completes with a [Topic]. |
| * |
| * 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. |
| */ |
| async.Future<Topic> create(Topic request, core.String name) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (request != null) { |
| _body = convert.JSON.encode((request).toJson()); |
| } |
| if (name == null) { |
| throw new core.ArgumentError("Parameter name is required."); |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| var _response = _requester.request(_url, |
| "PUT", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new Topic.fromJson(data)); |
| } |
| |
| /** |
| * Deletes the topic with the given name. Returns `NOT_FOUND` if the topic |
| * does not exist. After a topic is deleted, a new topic may be created with |
| * the same name; this is an entirely new topic with none of the old |
| * configuration or subscriptions. Existing subscriptions to this topic are |
| * not deleted, but their `topic` field is set to `_deleted-topic_`. |
| * |
| * Request parameters: |
| * |
| * [topic] - Name of the topic to delete. |
| * Value must have pattern "^projects/[^/]+/topics/[^/]+$". |
| * |
| * Completes with a [Empty]. |
| * |
| * 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. |
| */ |
| async.Future<Empty> delete(core.String topic) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (topic == null) { |
| throw new core.ArgumentError("Parameter topic is required."); |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$topic'); |
| |
| var _response = _requester.request(_url, |
| "DELETE", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new Empty.fromJson(data)); |
| } |
| |
| /** |
| * Gets the configuration of a topic. |
| * |
| * Request parameters: |
| * |
| * [topic] - The name of the topic to get. |
| * Value must have pattern "^projects/[^/]+/topics/[^/]+$". |
| * |
| * Completes with a [Topic]. |
| * |
| * 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. |
| */ |
| async.Future<Topic> get(core.String topic) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (topic == null) { |
| throw new core.ArgumentError("Parameter topic is required."); |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$topic'); |
| |
| var _response = _requester.request(_url, |
| "GET", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new Topic.fromJson(data)); |
| } |
| |
| /** |
| * Gets the access control policy for a resource. |
| * Returns an empty policy if the resource exists and does not have a policy |
| * set. |
| * |
| * Request parameters: |
| * |
| * [resource] - REQUIRED: The resource for which the policy is being |
| * requested. |
| * See the operation documentation for the appropriate value for this field. |
| * Value must have pattern "^projects/[^/]+/topics/[^/]+$". |
| * |
| * Completes with a [Policy]. |
| * |
| * 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. |
| */ |
| async.Future<Policy> getIamPolicy(core.String resource) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (resource == null) { |
| throw new core.ArgumentError("Parameter resource is required."); |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$resource') + ':getIamPolicy'; |
| |
| var _response = _requester.request(_url, |
| "GET", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new Policy.fromJson(data)); |
| } |
| |
| /** |
| * Lists matching topics. |
| * |
| * Request parameters: |
| * |
| * [project] - The name of the cloud project that topics belong to. |
| * Value must have pattern "^projects/[^/]+$". |
| * |
| * [pageToken] - The value returned by the last `ListTopicsResponse`; |
| * indicates that this is |
| * a continuation of a prior `ListTopics` call, and that the system should |
| * return the next page of data. |
| * |
| * [pageSize] - Maximum number of topics to return. |
| * |
| * Completes with a [ListTopicsResponse]. |
| * |
| * 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. |
| */ |
| async.Future<ListTopicsResponse> list(core.String project, {core.String pageToken, core.int pageSize}) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (project == null) { |
| throw new core.ArgumentError("Parameter project is required."); |
| } |
| if (pageToken != null) { |
| _queryParams["pageToken"] = [pageToken]; |
| } |
| if (pageSize != null) { |
| _queryParams["pageSize"] = ["${pageSize}"]; |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$project') + '/topics'; |
| |
| var _response = _requester.request(_url, |
| "GET", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new ListTopicsResponse.fromJson(data)); |
| } |
| |
| /** |
| * Adds one or more messages to the topic. Returns `NOT_FOUND` if the topic |
| * does not exist. The message payload must not be empty; it must contain |
| * either a non-empty data field, or at least one attribute. |
| * |
| * [request] - The metadata request object. |
| * |
| * Request parameters: |
| * |
| * [topic] - The messages in the request will be published on this topic. |
| * Value must have pattern "^projects/[^/]+/topics/[^/]+$". |
| * |
| * Completes with a [PublishResponse]. |
| * |
| * 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. |
| */ |
| async.Future<PublishResponse> publish(PublishRequest request, core.String topic) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (request != null) { |
| _body = convert.JSON.encode((request).toJson()); |
| } |
| if (topic == null) { |
| throw new core.ArgumentError("Parameter topic is required."); |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$topic') + ':publish'; |
| |
| var _response = _requester.request(_url, |
| "POST", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new PublishResponse.fromJson(data)); |
| } |
| |
| /** |
| * Sets the access control policy on the specified resource. Replaces any |
| * existing policy. |
| * |
| * [request] - The metadata request object. |
| * |
| * Request parameters: |
| * |
| * [resource] - REQUIRED: The resource for which the policy is being |
| * specified. |
| * See the operation documentation for the appropriate value for this field. |
| * Value must have pattern "^projects/[^/]+/topics/[^/]+$". |
| * |
| * Completes with a [Policy]. |
| * |
| * 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. |
| */ |
| async.Future<Policy> setIamPolicy(SetIamPolicyRequest request, core.String resource) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (request != null) { |
| _body = convert.JSON.encode((request).toJson()); |
| } |
| if (resource == null) { |
| throw new core.ArgumentError("Parameter resource is required."); |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$resource') + ':setIamPolicy'; |
| |
| var _response = _requester.request(_url, |
| "POST", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new Policy.fromJson(data)); |
| } |
| |
| /** |
| * Returns permissions that a caller has on the specified resource. |
| * If the resource does not exist, this will return an empty set of |
| * permissions, not a NOT_FOUND error. |
| * |
| * Note: This operation is designed to be used for building permission-aware |
| * UIs and command-line tools, not for authorization checking. This operation |
| * may "fail open" without warning. |
| * |
| * [request] - The metadata request object. |
| * |
| * Request parameters: |
| * |
| * [resource] - REQUIRED: The resource for which the policy detail is being |
| * requested. |
| * See the operation documentation for the appropriate value for this field. |
| * Value must have pattern "^projects/[^/]+/topics/[^/]+$". |
| * |
| * Completes with a [TestIamPermissionsResponse]. |
| * |
| * 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. |
| */ |
| async.Future<TestIamPermissionsResponse> testIamPermissions(TestIamPermissionsRequest request, core.String resource) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (request != null) { |
| _body = convert.JSON.encode((request).toJson()); |
| } |
| if (resource == null) { |
| throw new core.ArgumentError("Parameter resource is required."); |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$resource') + ':testIamPermissions'; |
| |
| var _response = _requester.request(_url, |
| "POST", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new TestIamPermissionsResponse.fromJson(data)); |
| } |
| |
| } |
| |
| |
| class ProjectsTopicsSubscriptionsResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsTopicsSubscriptionsResourceApi(commons.ApiRequester client) : |
| _requester = client; |
| |
| /** |
| * Lists the name of the subscriptions for this topic. |
| * |
| * Request parameters: |
| * |
| * [topic] - The name of the topic that subscriptions are attached to. |
| * Value must have pattern "^projects/[^/]+/topics/[^/]+$". |
| * |
| * [pageToken] - The value returned by the last |
| * `ListTopicSubscriptionsResponse`; indicates |
| * that this is a continuation of a prior `ListTopicSubscriptions` call, and |
| * that the system should return the next page of data. |
| * |
| * [pageSize] - Maximum number of subscription names to return. |
| * |
| * Completes with a [ListTopicSubscriptionsResponse]. |
| * |
| * 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. |
| */ |
| async.Future<ListTopicSubscriptionsResponse> list(core.String topic, {core.String pageToken, core.int pageSize}) { |
| var _url = null; |
| var _queryParams = new core.Map(); |
| var _uploadMedia = null; |
| var _uploadOptions = null; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| var _body = null; |
| |
| if (topic == null) { |
| throw new core.ArgumentError("Parameter topic is required."); |
| } |
| if (pageToken != null) { |
| _queryParams["pageToken"] = [pageToken]; |
| } |
| if (pageSize != null) { |
| _queryParams["pageSize"] = ["${pageSize}"]; |
| } |
| |
| _url = 'v1beta2/' + commons.Escaper.ecapeVariableReserved('$topic') + '/subscriptions'; |
| |
| var _response = _requester.request(_url, |
| "GET", |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions); |
| return _response.then((data) => new ListTopicSubscriptionsResponse.fromJson(data)); |
| } |
| |
| } |
| |
| |
| |
| /** Request for the Acknowledge method. */ |
| class AcknowledgeRequest { |
| /** |
| * The acknowledgment ID for the messages being acknowledged that was returned |
| * by the Pub/Sub system in the `Pull` response. Must not be empty. |
| */ |
| core.List<core.String> ackIds; |
| |
| AcknowledgeRequest(); |
| |
| AcknowledgeRequest.fromJson(core.Map _json) { |
| if (_json.containsKey("ackIds")) { |
| ackIds = _json["ackIds"]; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (ackIds != null) { |
| _json["ackIds"] = ackIds; |
| } |
| return _json; |
| } |
| } |
| |
| /** Associates `members` with a `role`. */ |
| class Binding { |
| /** |
| * Specifies the identities requesting access for a Cloud Platform resource. |
| * `members` can have the following values: |
| * |
| * * `allUsers`: A special identifier that represents anyone who is |
| * on the internet; with or without a Google account. |
| * |
| * * `allAuthenticatedUsers`: A special identifier that represents anyone |
| * who is authenticated with a Google account or a service account. |
| * |
| * * `user:{emailid}`: An email address that represents a specific Google |
| * account. For example, `alice@gmail.com` or `joe@example.com`. |
| * |
| * |
| * * `serviceAccount:{emailid}`: An email address that represents a service |
| * account. For example, `my-other-app@appspot.gserviceaccount.com`. |
| * |
| * * `group:{emailid}`: An email address that represents a Google group. |
| * For example, `admins@example.com`. |
| * |
| * |
| * * `domain:{domain}`: A Google Apps domain name that represents all the |
| * users of that domain. For example, `google.com` or `example.com`. |
| */ |
| core.List<core.String> members; |
| /** |
| * Role that is assigned to `members`. |
| * For example, `roles/viewer`, `roles/editor`, or `roles/owner`. |
| * Required |
| */ |
| core.String role; |
| |
| Binding(); |
| |
| Binding.fromJson(core.Map _json) { |
| if (_json.containsKey("members")) { |
| members = _json["members"]; |
| } |
| if (_json.containsKey("role")) { |
| role = _json["role"]; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (members != null) { |
| _json["members"] = members; |
| } |
| if (role != null) { |
| _json["role"] = role; |
| } |
| return _json; |
| } |
| } |
| |
| /** |
| * A generic empty message that you can re-use to avoid defining duplicated |
| * empty messages in your APIs. A typical example is to use it as the request |
| * or the response type of an API method. For instance: |
| * |
| * service Foo { |
| * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); |
| * } |
| * |
| * The JSON representation for `Empty` is empty JSON object `{}`. |
| */ |
| class Empty { |
| |
| Empty(); |
| |
| Empty.fromJson(core.Map _json) { |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| return _json; |
| } |
| } |
| |
| /** Response for the `ListSubscriptions` method. */ |
| class ListSubscriptionsResponse { |
| /** |
| * If not empty, indicates that there may be more subscriptions that match |
| * the request; this value should be passed in a new |
| * `ListSubscriptionsRequest` to get more subscriptions. |
| */ |
| core.String nextPageToken; |
| /** The subscriptions that match the request. */ |
| core.List<Subscription> subscriptions; |
| |
| ListSubscriptionsResponse(); |
| |
| ListSubscriptionsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey("nextPageToken")) { |
| nextPageToken = _json["nextPageToken"]; |
| } |
| if (_json.containsKey("subscriptions")) { |
| subscriptions = _json["subscriptions"].map((value) => new Subscription.fromJson(value)).toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (nextPageToken != null) { |
| _json["nextPageToken"] = nextPageToken; |
| } |
| if (subscriptions != null) { |
| _json["subscriptions"] = subscriptions.map((value) => (value).toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /** Response for the `ListTopicSubscriptions` method. */ |
| class ListTopicSubscriptionsResponse { |
| /** |
| * If not empty, indicates that there may be more subscriptions that match |
| * the request; this value should be passed in a new |
| * `ListTopicSubscriptionsRequest` to get more subscriptions. |
| */ |
| core.String nextPageToken; |
| /** The names of the subscriptions that match the request. */ |
| core.List<core.String> subscriptions; |
| |
| ListTopicSubscriptionsResponse(); |
| |
| ListTopicSubscriptionsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey("nextPageToken")) { |
| nextPageToken = _json["nextPageToken"]; |
| } |
| if (_json.containsKey("subscriptions")) { |
| subscriptions = _json["subscriptions"]; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (nextPageToken != null) { |
| _json["nextPageToken"] = nextPageToken; |
| } |
| if (subscriptions != null) { |
| _json["subscriptions"] = subscriptions; |
| } |
| return _json; |
| } |
| } |
| |
| /** Response for the `ListTopics` method. */ |
| class ListTopicsResponse { |
| /** |
| * If not empty, indicates that there may be more topics that match the |
| * request; this value should be passed in a new `ListTopicsRequest`. |
| */ |
| core.String nextPageToken; |
| /** The resulting topics. */ |
| core.List<Topic> topics; |
| |
| ListTopicsResponse(); |
| |
| ListTopicsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey("nextPageToken")) { |
| nextPageToken = _json["nextPageToken"]; |
| } |
| if (_json.containsKey("topics")) { |
| topics = _json["topics"].map((value) => new Topic.fromJson(value)).toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (nextPageToken != null) { |
| _json["nextPageToken"] = nextPageToken; |
| } |
| if (topics != null) { |
| _json["topics"] = topics.map((value) => (value).toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /** Request for the ModifyAckDeadline method. */ |
| class ModifyAckDeadlineRequest { |
| /** |
| * The new ack deadline with respect to the time this request was sent to |
| * the Pub/Sub system. Must be >= 0. For example, if the value is 10, the new |
| * ack deadline will expire 10 seconds after the `ModifyAckDeadline` call |
| * was made. Specifying zero may immediately make the message available for |
| * another pull request. |
| */ |
| core.int ackDeadlineSeconds; |
| /** |
| * The acknowledgment ID. Either this or ack_ids must be populated, but not |
| * both. |
| */ |
| core.String ackId; |
| /** List of acknowledgment IDs. */ |
| core.List<core.String> ackIds; |
| |
| ModifyAckDeadlineRequest(); |
| |
| ModifyAckDeadlineRequest.fromJson(core.Map _json) { |
| if (_json.containsKey("ackDeadlineSeconds")) { |
| ackDeadlineSeconds = _json["ackDeadlineSeconds"]; |
| } |
| if (_json.containsKey("ackId")) { |
| ackId = _json["ackId"]; |
| } |
| if (_json.containsKey("ackIds")) { |
| ackIds = _json["ackIds"]; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (ackDeadlineSeconds != null) { |
| _json["ackDeadlineSeconds"] = ackDeadlineSeconds; |
| } |
| if (ackId != null) { |
| _json["ackId"] = ackId; |
| } |
| if (ackIds != null) { |
| _json["ackIds"] = ackIds; |
| } |
| return _json; |
| } |
| } |
| |
| /** Request for the ModifyPushConfig method. */ |
| class ModifyPushConfigRequest { |
| /** |
| * The push configuration for future deliveries. |
| * |
| * An empty `pushConfig` indicates that the Pub/Sub system should |
| * stop pushing messages from the given subscription and allow |
| * messages to be pulled and acknowledged - effectively pausing |
| * the subscription if `Pull` is not called. |
| */ |
| PushConfig pushConfig; |
| |
| ModifyPushConfigRequest(); |
| |
| ModifyPushConfigRequest.fromJson(core.Map _json) { |
| if (_json.containsKey("pushConfig")) { |
| pushConfig = new PushConfig.fromJson(_json["pushConfig"]); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (pushConfig != null) { |
| _json["pushConfig"] = (pushConfig).toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /** |
| * Defines an Identity and Access Management (IAM) policy. It is used to |
| * specify access control policies for Cloud Platform resources. |
| * |
| * |
| * A `Policy` consists of a list of `bindings`. A `Binding` binds a list of |
| * `members` to a `role`, where the members can be user accounts, Google groups, |
| * Google domains, and service accounts. A `role` is a named list of permissions |
| * defined by IAM. |
| * |
| * **Example** |
| * |
| * { |
| * "bindings": [ |
| * { |
| * "role": "roles/owner", |
| * "members": [ |
| * "user:mike@example.com", |
| * "group:admins@example.com", |
| * "domain:google.com", |
| * "serviceAccount:my-other-app@appspot.gserviceaccount.com", |
| * ] |
| * }, |
| * { |
| * "role": "roles/viewer", |
| * "members": ["user:sean@example.com"] |
| * } |
| * ] |
| * } |
| * |
| * For a description of IAM and its features, see the |
| * [IAM developer's guide](https://cloud.google.com/iam). |
| */ |
| class Policy { |
| /** |
| * Associates a list of `members` to a `role`. |
| * `bindings` with no members will result in an error. |
| */ |
| core.List<Binding> bindings; |
| /** |
| * `etag` is used for optimistic concurrency control as a way to help |
| * prevent simultaneous updates of a policy from overwriting each other. |
| * It is strongly suggested that systems make use of the `etag` in the |
| * read-modify-write cycle to perform policy updates in order to avoid race |
| * conditions: An `etag` is returned in the response to `getIamPolicy`, and |
| * systems are expected to put that etag in the request to `setIamPolicy` to |
| * ensure that their change will be applied to the same version of the policy. |
| * |
| * If no `etag` is provided in the call to `setIamPolicy`, then the existing |
| * policy is overwritten blindly. |
| */ |
| core.String etag; |
| core.List<core.int> get etagAsBytes { |
| return convert.BASE64.decode(etag); |
| } |
| |
| void set etagAsBytes(core.List<core.int> _bytes) { |
| etag = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-"); |
| } |
| /** Version of the `Policy`. The default version is 0. */ |
| core.int version; |
| |
| Policy(); |
| |
| Policy.fromJson(core.Map _json) { |
| if (_json.containsKey("bindings")) { |
| bindings = _json["bindings"].map((value) => new Binding.fromJson(value)).toList(); |
| } |
| if (_json.containsKey("etag")) { |
| etag = _json["etag"]; |
| } |
| if (_json.containsKey("version")) { |
| version = _json["version"]; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (bindings != null) { |
| _json["bindings"] = bindings.map((value) => (value).toJson()).toList(); |
| } |
| if (etag != null) { |
| _json["etag"] = etag; |
| } |
| if (version != null) { |
| _json["version"] = version; |
| } |
| return _json; |
| } |
| } |
| |
| /** Request for the Publish method. */ |
| class PublishRequest { |
| /** The messages to publish. */ |
| core.List<PubsubMessage> messages; |
| |
| PublishRequest(); |
| |
| PublishRequest.fromJson(core.Map _json) { |
| if (_json.containsKey("messages")) { |
| messages = _json["messages"].map((value) => new PubsubMessage.fromJson(value)).toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (messages != null) { |
| _json["messages"] = messages.map((value) => (value).toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /** Response for the `Publish` method. */ |
| class PublishResponse { |
| /** |
| * The server-assigned ID of each published message, in the same order as |
| * the messages in the request. IDs are guaranteed to be unique within |
| * the topic. |
| */ |
| core.List<core.String> messageIds; |
| |
| PublishResponse(); |
| |
| PublishResponse.fromJson(core.Map _json) { |
| if (_json.containsKey("messageIds")) { |
| messageIds = _json["messageIds"]; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (messageIds != null) { |
| _json["messageIds"] = messageIds; |
| } |
| return _json; |
| } |
| } |
| |
| /** |
| * A message data and its attributes. The message payload must not be empty; |
| * it must contain either a non-empty data field, or at least one attribute. |
| */ |
| class PubsubMessage { |
| /** Optional attributes for this message. */ |
| core.Map<core.String, core.String> attributes; |
| /** |
| * The message payload. For JSON requests, the value of this field must be |
| * [base64-encoded](https://tools.ietf.org/html/rfc4648). |
| */ |
| core.String data; |
| core.List<core.int> get dataAsBytes { |
| return convert.BASE64.decode(data); |
| } |
| |
| void set dataAsBytes(core.List<core.int> _bytes) { |
| data = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-"); |
| } |
| /** |
| * ID of this message, assigned by the server when the message is published. |
| * Guaranteed to be unique within the topic. This value may be read by a |
| * subscriber that receives a `PubsubMessage` via a `Pull` call or a push |
| * delivery. It must not be populated by the publisher in a `Publish` call. |
| */ |
| core.String messageId; |
| /** |
| * The time at which the message was published, populated by the server when |
| * it receives the `Publish` call. It must not be populated by the |
| * publisher in a `Publish` call. |
| */ |
| core.String publishTime; |
| |
| PubsubMessage(); |
| |
| PubsubMessage.fromJson(core.Map _json) { |
| if (_json.containsKey("attributes")) { |
| attributes = _json["attributes"]; |
| } |
| if (_json.containsKey("data")) { |
| data = _json["data"]; |
| } |
| if (_json.containsKey("messageId")) { |
| messageId = _json["messageId"]; |
| } |
| if (_json.containsKey("publishTime")) { |
| publishTime = _json["publishTime"]; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (attributes != null) { |
| _json["attributes"] = attributes; |
| } |
| if (data != null) { |
| _json["data"] = data; |
| } |
| if (messageId != null) { |
| _json["messageId"] = messageId; |
| } |
| if (publishTime != null) { |
| _json["publishTime"] = publishTime; |
| } |
| return _json; |
| } |
| } |
| |
| /** Request for the `Pull` method. */ |
| class PullRequest { |
| /** |
| * The maximum number of messages returned for this request. The Pub/Sub |
| * system may return fewer than the number specified. |
| */ |
| core.int maxMessages; |
| /** |
| * If this is specified as true the system will respond immediately even if |
| * it is not able to return a message in the `Pull` response. Otherwise the |
| * system is allowed to wait until at least one message is available rather |
| * than returning no messages. The client may cancel the request if it does |
| * not wish to wait any longer for the response. |
| */ |
| core.bool returnImmediately; |
| |
| PullRequest(); |
| |
| PullRequest.fromJson(core.Map _json) { |
| if (_json.containsKey("maxMessages")) { |
| maxMessages = _json["maxMessages"]; |
| } |
| if (_json.containsKey("returnImmediately")) { |
| returnImmediately = _json["returnImmediately"]; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (maxMessages != null) { |
| _json["maxMessages"] = maxMessages; |
| } |
| if (returnImmediately != null) { |
| _json["returnImmediately"] = returnImmediately; |
| } |
| return _json; |
| } |
| } |
| |
| /** Response for the `Pull` method. */ |
| class PullResponse { |
| /** |
| * Received Pub/Sub messages. The Pub/Sub system will return zero messages if |
| * there are no more available in the backlog. The Pub/Sub system may return |
| * fewer than the `maxMessages` requested even if there are more messages |
| * available in the backlog. |
| */ |
| core.List<ReceivedMessage> receivedMessages; |
| |
| PullResponse(); |
| |
| PullResponse.fromJson(core.Map _json) { |
| if (_json.containsKey("receivedMessages")) { |
| receivedMessages = _json["receivedMessages"].map((value) => new ReceivedMessage.fromJson(value)).toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (receivedMessages != null) { |
| _json["receivedMessages"] = receivedMessages.map((value) => (value).toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /** Configuration for a push delivery endpoint. */ |
| class PushConfig { |
| /** |
| * Endpoint configuration attributes. |
| * |
| * Every endpoint has a set of API supported attributes that can be used to |
| * control different aspects of the message delivery. |
| * |
| * The currently supported attribute is `x-goog-version`, which you can |
| * use to change the format of the push message. This attribute |
| * indicates the version of the data expected by the endpoint. This |
| * controls the shape of the envelope (i.e. its fields and metadata). |
| * The endpoint version is based on the version of the Pub/Sub |
| * API. |
| * |
| * If not present during the `CreateSubscription` call, it will default to |
| * the version of the API used to make such call. If not present during a |
| * `ModifyPushConfig` call, its value will not be changed. `GetSubscription` |
| * calls will always return a valid version, even if the subscription was |
| * created without this attribute. |
| * |
| * The possible values for this attribute are: |
| * |
| * * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API. |
| * * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API. |
| */ |
| core.Map<core.String, core.String> attributes; |
| /** |
| * A URL locating the endpoint to which messages should be pushed. |
| * For example, a Webhook endpoint might use "https://example.com/push". |
| */ |
| core.String pushEndpoint; |
| |
| PushConfig(); |
| |
| PushConfig.fromJson(core.Map _json) { |
| if (_json.containsKey("attributes")) { |
| attributes = _json["attributes"]; |
| } |
| if (_json.containsKey("pushEndpoint")) { |
| pushEndpoint = _json["pushEndpoint"]; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (attributes != null) { |
| _json["attributes"] = attributes; |
| } |
| if (pushEndpoint != null) { |
| _json["pushEndpoint"] = pushEndpoint; |
| } |
| return _json; |
| } |
| } |
| |
| /** A message and its corresponding acknowledgment ID. */ |
| class ReceivedMessage { |
| /** This ID can be used to acknowledge the received message. */ |
| core.String ackId; |
| /** The message. */ |
| PubsubMessage message; |
| |
| ReceivedMessage(); |
| |
| ReceivedMessage.fromJson(core.Map _json) { |
| if (_json.containsKey("ackId")) { |
| ackId = _json["ackId"]; |
| } |
| if (_json.containsKey("message")) { |
| message = new PubsubMessage.fromJson(_json["message"]); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (ackId != null) { |
| _json["ackId"] = ackId; |
| } |
| if (message != null) { |
| _json["message"] = (message).toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /** Request message for `SetIamPolicy` method. */ |
| class SetIamPolicyRequest { |
| /** |
| * REQUIRED: The complete policy to be applied to the `resource`. The size of |
| * the policy is limited to a few 10s of KB. An empty policy is a |
| * valid policy but certain Cloud Platform services (such as Projects) |
| * might reject them. |
| */ |
| Policy policy; |
| |
| SetIamPolicyRequest(); |
| |
| SetIamPolicyRequest.fromJson(core.Map _json) { |
| if (_json.containsKey("policy")) { |
| policy = new Policy.fromJson(_json["policy"]); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (policy != null) { |
| _json["policy"] = (policy).toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /** A subscription resource. */ |
| class Subscription { |
| /** |
| * This value is the maximum time after a subscriber receives a message |
| * before the subscriber should acknowledge the message. After message |
| * delivery but before the ack deadline expires and before the message is |
| * acknowledged, it is an outstanding message and will not be delivered |
| * again during that time (on a best-effort basis). |
| * |
| * For pull subscriptions, this value is used as the initial value for the ack |
| * deadline. To override this value for a given message, call |
| * `ModifyAckDeadline` with the corresponding `ack_id` if using pull. |
| * The maximum custom deadline you can specify is 600 seconds (10 minutes). |
| * |
| * For push delivery, this value is also used to set the request timeout for |
| * the call to the push endpoint. |
| * |
| * If the subscriber never acknowledges the message, the Pub/Sub |
| * system will eventually redeliver the message. |
| * |
| * If this parameter is 0, a default value of 10 seconds is used. |
| */ |
| core.int ackDeadlineSeconds; |
| /** |
| * 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"`. |
| */ |
| core.String name; |
| /** |
| * If push delivery is used with this subscription, this field is |
| * used to configure it. An empty `pushConfig` signifies that the subscriber |
| * will pull and ack messages using API methods. |
| */ |
| PushConfig pushConfig; |
| /** |
| * The name of the topic from which this subscription is receiving messages. |
| * The value of this field will be `_deleted-topic_` if the topic has been |
| * deleted. |
| */ |
| core.String topic; |
| |
| Subscription(); |
| |
| Subscription.fromJson(core.Map _json) { |
| if (_json.containsKey("ackDeadlineSeconds")) { |
| ackDeadlineSeconds = _json["ackDeadlineSeconds"]; |
| } |
| if (_json.containsKey("name")) { |
| name = _json["name"]; |
| } |
| if (_json.containsKey("pushConfig")) { |
| pushConfig = new PushConfig.fromJson(_json["pushConfig"]); |
| } |
| if (_json.containsKey("topic")) { |
| topic = _json["topic"]; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (ackDeadlineSeconds != null) { |
| _json["ackDeadlineSeconds"] = ackDeadlineSeconds; |
| } |
| if (name != null) { |
| _json["name"] = name; |
| } |
| if (pushConfig != null) { |
| _json["pushConfig"] = (pushConfig).toJson(); |
| } |
| if (topic != null) { |
| _json["topic"] = topic; |
| } |
| return _json; |
| } |
| } |
| |
| /** Request message for `TestIamPermissions` method. */ |
| class TestIamPermissionsRequest { |
| /** |
| * The set of permissions to check for the `resource`. Permissions with |
| * wildcards (such as '*' or 'storage.*') are not allowed. For more |
| * information see |
| * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). |
| */ |
| core.List<core.String> permissions; |
| |
| TestIamPermissionsRequest(); |
| |
| TestIamPermissionsRequest.fromJson(core.Map _json) { |
| if (_json.containsKey("permissions")) { |
| permissions = _json["permissions"]; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (permissions != null) { |
| _json["permissions"] = permissions; |
| } |
| return _json; |
| } |
| } |
| |
| /** Response message for `TestIamPermissions` method. */ |
| class TestIamPermissionsResponse { |
| /** |
| * A subset of `TestPermissionsRequest.permissions` that the caller is |
| * allowed. |
| */ |
| core.List<core.String> permissions; |
| |
| TestIamPermissionsResponse(); |
| |
| TestIamPermissionsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey("permissions")) { |
| permissions = _json["permissions"]; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (permissions != null) { |
| _json["permissions"] = permissions; |
| } |
| return _json; |
| } |
| } |
| |
| /** A topic resource. */ |
| class Topic { |
| /** |
| * The name of the topic. It must have the format |
| * `"projects/{project}/topics/{topic}"`. `{topic}` 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"`. |
| */ |
| core.String name; |
| |
| Topic(); |
| |
| Topic.fromJson(core.Map _json) { |
| if (_json.containsKey("name")) { |
| name = _json["name"]; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
| if (name != null) { |
| _json["name"] = name; |
| } |
| return _json; |
| } |
| } |