1098 lines
44 KiB
TypeScript
1098 lines
44 KiB
TypeScript
/**
|
|
* Copyright 2015 Google Inc. All Rights Reserved.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
/* jshint maxlen: false */
|
|
|
|
import createAPIRequest from '../../lib/apirequest';
|
|
|
|
/**
|
|
* Google Cloud Pub/Sub API
|
|
*
|
|
* Provides reliable, many-to-many, asynchronous messaging between applications.
|
|
|
|
*
|
|
* @example
|
|
* const google = require('googleapis');
|
|
* const pubsub = google.pubsub('v1beta2');
|
|
*
|
|
* @namespace pubsub
|
|
* @type {Function}
|
|
* @version v1beta2
|
|
* @variation v1beta2
|
|
* @param {object=} options Options for Pubsub
|
|
*/
|
|
function Pubsub(options) { // eslint-disable-line
|
|
const self = this;
|
|
self._options = options || {};
|
|
|
|
self.projects = {
|
|
subscriptions: {
|
|
|
|
/**
|
|
* pubsub.projects.subscriptions.acknowledge
|
|
*
|
|
* @desc 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.
|
|
*
|
|
* @alias pubsub.projects.subscriptions.acknowledge
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {string} params.subscription The subscription whose message is being acknowledged.
|
|
* @param {pubsub(v1beta2).AcknowledgeRequest} params.resource Request body data
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
acknowledge: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{subscription}:acknowledge').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'POST'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['subscription'],
|
|
pathParams: ['subscription'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
},
|
|
|
|
/**
|
|
* pubsub.projects.subscriptions.create
|
|
*
|
|
* @desc 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.
|
|
*
|
|
* @alias pubsub.projects.subscriptions.create
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {string} params.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"`.
|
|
* @param {pubsub(v1beta2).Subscription} params.resource Request body data
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
create: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{name}').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'PUT'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['name'],
|
|
pathParams: ['name'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
},
|
|
|
|
/**
|
|
* pubsub.projects.subscriptions.delete
|
|
*
|
|
* @desc 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.
|
|
*
|
|
* @alias pubsub.projects.subscriptions.delete
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {string} params.subscription The subscription to delete.
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
delete: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{subscription}').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'DELETE'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['subscription'],
|
|
pathParams: ['subscription'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
},
|
|
|
|
/**
|
|
* pubsub.projects.subscriptions.get
|
|
*
|
|
* @desc Gets the configuration details of a subscription.
|
|
*
|
|
* @alias pubsub.projects.subscriptions.get
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {string} params.subscription The name of the subscription to get.
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
get: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{subscription}').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'GET'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['subscription'],
|
|
pathParams: ['subscription'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
},
|
|
|
|
/**
|
|
* pubsub.projects.subscriptions.getIamPolicy
|
|
*
|
|
* @desc Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.
|
|
*
|
|
* @alias pubsub.projects.subscriptions.getIamPolicy
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {string} params.resource_ REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
getIamPolicy: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{resource}:getIamPolicy').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'GET'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['resource'],
|
|
pathParams: ['resource'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
},
|
|
|
|
/**
|
|
* pubsub.projects.subscriptions.list
|
|
*
|
|
* @desc Lists matching subscriptions.
|
|
*
|
|
* @alias pubsub.projects.subscriptions.list
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {integer=} params.pageSize Maximum number of subscriptions to return.
|
|
* @param {string=} params.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.
|
|
* @param {string} params.project The name of the cloud project that subscriptions belong to.
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
list: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{project}/subscriptions').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'GET'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['project'],
|
|
pathParams: ['project'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
},
|
|
|
|
/**
|
|
* pubsub.projects.subscriptions.modifyAckDeadline
|
|
*
|
|
* @desc 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.
|
|
*
|
|
* @alias pubsub.projects.subscriptions.modifyAckDeadline
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {string} params.subscription The name of the subscription.
|
|
* @param {pubsub(v1beta2).ModifyAckDeadlineRequest} params.resource Request body data
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
modifyAckDeadline: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{subscription}:modifyAckDeadline').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'POST'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['subscription'],
|
|
pathParams: ['subscription'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
},
|
|
|
|
/**
|
|
* pubsub.projects.subscriptions.modifyPushConfig
|
|
*
|
|
* @desc 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`.
|
|
*
|
|
* @alias pubsub.projects.subscriptions.modifyPushConfig
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {string} params.subscription The name of the subscription.
|
|
* @param {pubsub(v1beta2).ModifyPushConfigRequest} params.resource Request body data
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
modifyPushConfig: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{subscription}:modifyPushConfig').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'POST'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['subscription'],
|
|
pathParams: ['subscription'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
},
|
|
|
|
/**
|
|
* pubsub.projects.subscriptions.pull
|
|
*
|
|
* @desc 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.
|
|
*
|
|
* @alias pubsub.projects.subscriptions.pull
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {string} params.subscription The subscription from which messages should be pulled.
|
|
* @param {pubsub(v1beta2).PullRequest} params.resource Request body data
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
pull: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{subscription}:pull').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'POST'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['subscription'],
|
|
pathParams: ['subscription'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
},
|
|
|
|
/**
|
|
* pubsub.projects.subscriptions.setIamPolicy
|
|
*
|
|
* @desc Sets the access control policy on the specified resource. Replaces any existing policy.
|
|
*
|
|
* @alias pubsub.projects.subscriptions.setIamPolicy
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {string} params.resource_ REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.
|
|
* @param {pubsub(v1beta2).SetIamPolicyRequest} params.resource Request body data
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
setIamPolicy: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{resource}:setIamPolicy').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'POST'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['resource'],
|
|
pathParams: ['resource'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
},
|
|
|
|
/**
|
|
* pubsub.projects.subscriptions.testIamPermissions
|
|
*
|
|
* @desc 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.
|
|
*
|
|
* @alias pubsub.projects.subscriptions.testIamPermissions
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {string} params.resource_ REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.
|
|
* @param {pubsub(v1beta2).TestIamPermissionsRequest} params.resource Request body data
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
testIamPermissions: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{resource}:testIamPermissions').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'POST'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['resource'],
|
|
pathParams: ['resource'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
}
|
|
},
|
|
topics: {
|
|
|
|
/**
|
|
* pubsub.projects.topics.create
|
|
*
|
|
* @desc Creates the given topic with the given name.
|
|
*
|
|
* @alias pubsub.projects.topics.create
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {string} params.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"`.
|
|
* @param {pubsub(v1beta2).Topic} params.resource Request body data
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
create: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{name}').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'PUT'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['name'],
|
|
pathParams: ['name'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
},
|
|
|
|
/**
|
|
* pubsub.projects.topics.delete
|
|
*
|
|
* @desc 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_`.
|
|
*
|
|
* @alias pubsub.projects.topics.delete
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {string} params.topic Name of the topic to delete.
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
delete: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{topic}').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'DELETE'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['topic'],
|
|
pathParams: ['topic'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
},
|
|
|
|
/**
|
|
* pubsub.projects.topics.get
|
|
*
|
|
* @desc Gets the configuration of a topic.
|
|
*
|
|
* @alias pubsub.projects.topics.get
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {string} params.topic The name of the topic to get.
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
get: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{topic}').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'GET'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['topic'],
|
|
pathParams: ['topic'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
},
|
|
|
|
/**
|
|
* pubsub.projects.topics.getIamPolicy
|
|
*
|
|
* @desc Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.
|
|
*
|
|
* @alias pubsub.projects.topics.getIamPolicy
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {string} params.resource_ REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
getIamPolicy: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{resource}:getIamPolicy').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'GET'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['resource'],
|
|
pathParams: ['resource'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
},
|
|
|
|
/**
|
|
* pubsub.projects.topics.list
|
|
*
|
|
* @desc Lists matching topics.
|
|
*
|
|
* @alias pubsub.projects.topics.list
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {integer=} params.pageSize Maximum number of topics to return.
|
|
* @param {string=} params.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.
|
|
* @param {string} params.project The name of the cloud project that topics belong to.
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
list: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{project}/topics').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'GET'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['project'],
|
|
pathParams: ['project'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
},
|
|
|
|
/**
|
|
* pubsub.projects.topics.publish
|
|
*
|
|
* @desc 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.
|
|
*
|
|
* @alias pubsub.projects.topics.publish
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {string} params.topic The messages in the request will be published on this topic.
|
|
* @param {pubsub(v1beta2).PublishRequest} params.resource Request body data
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
publish: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{topic}:publish').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'POST'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['topic'],
|
|
pathParams: ['topic'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
},
|
|
|
|
/**
|
|
* pubsub.projects.topics.setIamPolicy
|
|
*
|
|
* @desc Sets the access control policy on the specified resource. Replaces any existing policy.
|
|
*
|
|
* @alias pubsub.projects.topics.setIamPolicy
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {string} params.resource_ REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.
|
|
* @param {pubsub(v1beta2).SetIamPolicyRequest} params.resource Request body data
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
setIamPolicy: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{resource}:setIamPolicy').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'POST'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['resource'],
|
|
pathParams: ['resource'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
},
|
|
|
|
/**
|
|
* pubsub.projects.topics.testIamPermissions
|
|
*
|
|
* @desc 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.
|
|
*
|
|
* @alias pubsub.projects.topics.testIamPermissions
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {string} params.resource_ REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.
|
|
* @param {pubsub(v1beta2).TestIamPermissionsRequest} params.resource Request body data
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
testIamPermissions: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{resource}:testIamPermissions').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'POST'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['resource'],
|
|
pathParams: ['resource'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
},
|
|
subscriptions: {
|
|
|
|
/**
|
|
* pubsub.projects.topics.subscriptions.list
|
|
*
|
|
* @desc Lists the name of the subscriptions for this topic.
|
|
*
|
|
* @alias pubsub.projects.topics.subscriptions.list
|
|
* @memberOf! pubsub(v1beta2)
|
|
*
|
|
* @param {object} params Parameters for request
|
|
* @param {integer=} params.pageSize Maximum number of subscription names to return.
|
|
* @param {string=} params.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.
|
|
* @param {string} params.topic The name of the topic that subscriptions are attached to.
|
|
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
|
|
* @param {callback} callback The callback that handles the response.
|
|
* @return {object} Request object
|
|
*/
|
|
list: function (params, options, callback) {
|
|
if (typeof options === 'function') {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
options || (options = {});
|
|
|
|
const rootUrl = options.rootUrl || 'https://pubsub.googleapis.com/';
|
|
|
|
const parameters = {
|
|
options: Object.assign({
|
|
url: (rootUrl + '/v1beta2/{topic}/subscriptions').replace(/([^:]\/)\/+/g, '$1'),
|
|
method: 'GET'
|
|
}, options),
|
|
params: params,
|
|
requiredParams: ['topic'],
|
|
pathParams: ['topic'],
|
|
context: self
|
|
};
|
|
|
|
return createAPIRequest(parameters, callback);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
}
|
|
|
|
/**
|
|
* @typedef AcknowledgeRequest
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {string[]} ackIds The acknowledgment ID for the messages being acknowledged that was returned
|
|
by the Pub/Sub system in the `Pull` response. Must not be empty.
|
|
*/
|
|
|
|
/**
|
|
* @typedef Binding
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {string[]} members 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`.
|
|
|
|
|
|
* @property {string} role Role that is assigned to `members`.
|
|
For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
|
|
Required
|
|
*/
|
|
|
|
/**
|
|
* @typedef Empty
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
*/
|
|
|
|
/**
|
|
* @typedef ListSubscriptionsResponse
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {string} nextPageToken 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.
|
|
* @property {pubsub(v1beta2).Subscription[]} subscriptions The subscriptions that match the request.
|
|
*/
|
|
|
|
/**
|
|
* @typedef ListTopicSubscriptionsResponse
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {string} nextPageToken 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.
|
|
* @property {string[]} subscriptions The names of the subscriptions that match the request.
|
|
*/
|
|
|
|
/**
|
|
* @typedef ListTopicsResponse
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {string} nextPageToken If not empty, indicates that there may be more topics that match the
|
|
request; this value should be passed in a new `ListTopicsRequest`.
|
|
* @property {pubsub(v1beta2).Topic[]} topics The resulting topics.
|
|
*/
|
|
|
|
/**
|
|
* @typedef ModifyAckDeadlineRequest
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {integer} ackDeadlineSeconds 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.
|
|
* @property {string} ackId The acknowledgment ID. Either this or ack_ids must be populated, but not
|
|
both.
|
|
* @property {string[]} ackIds List of acknowledgment IDs.
|
|
*/
|
|
|
|
/**
|
|
* @typedef ModifyPushConfigRequest
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {pubsub(v1beta2).PushConfig} pushConfig 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.
|
|
*/
|
|
|
|
/**
|
|
* @typedef Policy
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {pubsub(v1beta2).Binding[]} bindings Associates a list of `members` to a `role`.
|
|
`bindings` with no members will result in an error.
|
|
* @property {string} etag `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.
|
|
* @property {integer} version Version of the `Policy`. The default version is 0.
|
|
*/
|
|
|
|
/**
|
|
* @typedef PublishRequest
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {pubsub(v1beta2).PubsubMessage[]} messages The messages to publish.
|
|
*/
|
|
|
|
/**
|
|
* @typedef PublishResponse
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {string[]} messageIds 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.
|
|
*/
|
|
|
|
/**
|
|
* @typedef PubsubMessage
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {object} attributes Optional attributes for this message.
|
|
* @property {string} data The message payload. For JSON requests, the value of this field must be
|
|
[base64-encoded](https://tools.ietf.org/html/rfc4648).
|
|
* @property {string} messageId 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.
|
|
* @property {string} publishTime 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.
|
|
*/
|
|
|
|
/**
|
|
* @typedef PullRequest
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {integer} maxMessages The maximum number of messages returned for this request. The Pub/Sub
|
|
system may return fewer than the number specified.
|
|
* @property {boolean} returnImmediately 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.
|
|
*/
|
|
|
|
/**
|
|
* @typedef PullResponse
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {pubsub(v1beta2).ReceivedMessage[]} receivedMessages 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.
|
|
*/
|
|
|
|
/**
|
|
* @typedef PushConfig
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {object} attributes 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.
|
|
* @property {string} pushEndpoint A URL locating the endpoint to which messages should be pushed.
|
|
For example, a Webhook endpoint might use "https://example.com/push".
|
|
*/
|
|
|
|
/**
|
|
* @typedef ReceivedMessage
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {string} ackId This ID can be used to acknowledge the received message.
|
|
* @property {pubsub(v1beta2).PubsubMessage} message The message.
|
|
*/
|
|
|
|
/**
|
|
* @typedef SetIamPolicyRequest
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {pubsub(v1beta2).Policy} policy 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.
|
|
*/
|
|
|
|
/**
|
|
* @typedef Subscription
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {integer} ackDeadlineSeconds 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.
|
|
* @property {string} 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"`.
|
|
* @property {pubsub(v1beta2).PushConfig} pushConfig 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.
|
|
* @property {string} topic 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.
|
|
*/
|
|
|
|
/**
|
|
* @typedef TestIamPermissionsRequest
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {string[]} permissions 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).
|
|
*/
|
|
|
|
/**
|
|
* @typedef TestIamPermissionsResponse
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {string[]} permissions A subset of `TestPermissionsRequest.permissions` that the caller is
|
|
allowed.
|
|
*/
|
|
|
|
/**
|
|
* @typedef Topic
|
|
* @memberOf! pubsub(v1beta2)
|
|
* @type object
|
|
* @property {string} 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"`.
|
|
*/
|
|
export = Pubsub;
|