|
|
|
@ -18,6 +18,7 @@ package google.pubsub.v1; |
|
|
|
|
|
|
|
|
|
import "google/api/annotations.proto"; |
|
|
|
|
import "google/protobuf/empty.proto"; |
|
|
|
|
import "google/protobuf/timestamp.proto"; |
|
|
|
|
|
|
|
|
|
option java_multiple_files = true; |
|
|
|
|
option java_outer_classname = "PubsubProto"; |
|
|
|
@ -25,11 +26,11 @@ option java_package = "com.google.pubsub.v1"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// The service that an application uses to manipulate subscriptions and to |
|
|
|
|
// consume messages from a subscription via the Pull method. |
|
|
|
|
// consume messages from a subscription via the `Pull` method. |
|
|
|
|
service Subscriber { |
|
|
|
|
// Creates a subscription to a given topic for a given subscriber. |
|
|
|
|
// If the subscription already exists, returns ALREADY_EXISTS. |
|
|
|
|
// If the corresponding topic doesn't exist, returns NOT_FOUND. |
|
|
|
|
// 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. |
|
|
|
@ -48,24 +49,24 @@ service Subscriber { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 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 |
|
|
|
|
// 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. |
|
|
|
|
rpc DeleteSubscription(DeleteSubscriptionRequest) returns (google.protobuf.Empty) { |
|
|
|
|
option (google.api.http) = { delete: "/v1/{subscription=projects/*/subscriptions/*}" }; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 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. |
|
|
|
|
// 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. |
|
|
|
|
rpc ModifyAckDeadline(ModifyAckDeadlineRequest) returns (google.protobuf.Empty) { |
|
|
|
|
option (google.api.http) = { post: "/v1/{subscription=projects/*/subscriptions/*}:modifyAckDeadline" body: "*" }; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Acknowledges the messages associated with the ack tokens in the |
|
|
|
|
// AcknowledgeRequest. The Pub/Sub system can remove the relevant messages |
|
|
|
|
// 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, |
|
|
|
@ -76,20 +77,19 @@ service Subscriber { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Pulls messages from the server. Returns an empty list if there are no |
|
|
|
|
// messages available in the backlog. The server may return UNAVAILABLE if |
|
|
|
|
// messages available in the backlog. The server may return `UNAVAILABLE` if |
|
|
|
|
// there are too many concurrent pull requests pending for the given |
|
|
|
|
// subscription. |
|
|
|
|
rpc Pull(PullRequest) returns (PullResponse) { |
|
|
|
|
option (google.api.http) = { post: "/v1/{subscription=projects/*/subscriptions/*}:pull" body: "*" }; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Modifies the PushConfig for a specified subscription. |
|
|
|
|
// 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. |
|
|
|
|
// 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`. |
|
|
|
|
rpc ModifyPushConfig(ModifyPushConfigRequest) returns (google.protobuf.Empty) { |
|
|
|
|
option (google.api.http) = { post: "/v1/{subscription=projects/*/subscriptions/*}:modifyPushConfig" body: "*" }; |
|
|
|
|
} |
|
|
|
@ -103,9 +103,9 @@ service Publisher { |
|
|
|
|
option (google.api.http) = { put: "/v1/{name=projects/*/topics/*}" body: "*" }; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 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. |
|
|
|
|
// 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. |
|
|
|
|
rpc Publish(PublishRequest) returns (PublishResponse) { |
|
|
|
|
option (google.api.http) = { post: "/v1/{topic=projects/*/topics/*}:publish" body: "*" }; |
|
|
|
|
} |
|
|
|
@ -125,9 +125,9 @@ service Publisher { |
|
|
|
|
option (google.api.http) = { get: "/v1/{topic=projects/*/topics/*}/subscriptions" }; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 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 |
|
|
|
|
// 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_`. |
|
|
|
|
rpc DeleteTopic(DeleteTopicRequest) returns (google.protobuf.Empty) { |
|
|
|
@ -156,11 +156,16 @@ message PubsubMessage { |
|
|
|
|
// Optional attributes for this message. |
|
|
|
|
map<string, string> attributes = 2; |
|
|
|
|
|
|
|
|
|
// ID of this message assigned by the server at publication time. 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 a publisher in a Publish call. |
|
|
|
|
// 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. |
|
|
|
|
string message_id = 3; |
|
|
|
|
|
|
|
|
|
// 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. |
|
|
|
|
google.protobuf.Timestamp publish_time = 4; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Request for the GetTopic method. |
|
|
|
@ -178,7 +183,7 @@ message PublishRequest { |
|
|
|
|
repeated PubsubMessage messages = 2; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Response for the Publish method. |
|
|
|
|
// Response for the `Publish` method. |
|
|
|
|
message 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 |
|
|
|
@ -186,7 +191,7 @@ message PublishResponse { |
|
|
|
|
repeated string message_ids = 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Request for the ListTopics method. |
|
|
|
|
// Request for the `ListTopics` method. |
|
|
|
|
message ListTopicsRequest { |
|
|
|
|
// The name of the cloud project that topics belong to. |
|
|
|
|
string project = 1; |
|
|
|
@ -194,23 +199,23 @@ message ListTopicsRequest { |
|
|
|
|
// Maximum number of topics to return. |
|
|
|
|
int32 page_size = 2; |
|
|
|
|
|
|
|
|
|
// The value returned by the last ListTopicsResponse; indicates that this is |
|
|
|
|
// a continuation of a prior ListTopics call, and that the system should |
|
|
|
|
// 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. |
|
|
|
|
string page_token = 3; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Response for the ListTopics method. |
|
|
|
|
// Response for the `ListTopics` method. |
|
|
|
|
message ListTopicsResponse { |
|
|
|
|
// The resulting topics. |
|
|
|
|
repeated Topic topics = 1; |
|
|
|
|
|
|
|
|
|
// If not empty, indicates that there may be more topics that match the |
|
|
|
|
// request; this value should be passed in a new ListTopicsRequest. |
|
|
|
|
// request; this value should be passed in a new `ListTopicsRequest`. |
|
|
|
|
string next_page_token = 2; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Request for the ListTopicSubscriptions method. |
|
|
|
|
// Request for the `ListTopicSubscriptions` method. |
|
|
|
|
message ListTopicSubscriptionsRequest { |
|
|
|
|
// The name of the topic that subscriptions are attached to. |
|
|
|
|
string topic = 1; |
|
|
|
@ -218,24 +223,24 @@ message ListTopicSubscriptionsRequest { |
|
|
|
|
// Maximum number of subscription names to return. |
|
|
|
|
int32 page_size = 2; |
|
|
|
|
|
|
|
|
|
// The value returned by the last ListTopicSubscriptionsResponse; indicates |
|
|
|
|
// that this is a continuation of a prior ListTopicSubscriptions call, and |
|
|
|
|
// 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. |
|
|
|
|
string page_token = 3; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Response for the ListTopicSubscriptions method. |
|
|
|
|
// Response for the `ListTopicSubscriptions` method. |
|
|
|
|
message ListTopicSubscriptionsResponse { |
|
|
|
|
// The names of the subscriptions that match the request. |
|
|
|
|
repeated string subscriptions = 1; |
|
|
|
|
|
|
|
|
|
// 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. |
|
|
|
|
// `ListTopicSubscriptionsRequest` to get more subscriptions. |
|
|
|
|
string next_page_token = 2; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Request for the DeleteTopic method. |
|
|
|
|
// Request for the `DeleteTopic` method. |
|
|
|
|
message DeleteTopicRequest { |
|
|
|
|
// Name of the topic to delete. |
|
|
|
|
string topic = 1; |
|
|
|
@ -257,7 +262,7 @@ message Subscription { |
|
|
|
|
string topic = 2; |
|
|
|
|
|
|
|
|
|
// If push delivery is used with this subscription, this field is |
|
|
|
|
// used to configure it. An empty pushConfig signifies that the subscriber |
|
|
|
|
// used to configure it. An empty `pushConfig` signifies that the subscriber |
|
|
|
|
// will pull and ack messages using API methods. |
|
|
|
|
PushConfig push_config = 4; |
|
|
|
|
|
|
|
|
@ -267,9 +272,10 @@ message Subscription { |
|
|
|
|
// acknowledged, it is an outstanding message and will not be delivered |
|
|
|
|
// again during that time (on a best-effort basis). |
|
|
|
|
// |
|
|
|
|
// For pull delivery this value is used as the initial value for the ack |
|
|
|
|
// 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. |
|
|
|
|
// `ModifyAckDeadline` with the corresponding `ack_id` if using |
|
|
|
|
// pull. |
|
|
|
|
// |
|
|
|
|
// For push delivery, this value is also used to set the request timeout for |
|
|
|
|
// the call to the push endpoint. |
|
|
|
@ -299,9 +305,9 @@ message PushConfig { |
|
|
|
|
// The endpoint version is based on the version of the Pub/Sub |
|
|
|
|
// API. |
|
|
|
|
// |
|
|
|
|
// If not present during the CreateSubscription call, it will default to |
|
|
|
|
// 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 |
|
|
|
|
// `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. |
|
|
|
|
// |
|
|
|
@ -327,7 +333,7 @@ message GetSubscriptionRequest { |
|
|
|
|
string subscription = 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Request for the ListSubscriptions method. |
|
|
|
|
// Request for the `ListSubscriptions` method. |
|
|
|
|
message ListSubscriptionsRequest { |
|
|
|
|
// The name of the cloud project that subscriptions belong to. |
|
|
|
|
string project = 1; |
|
|
|
@ -335,20 +341,20 @@ message ListSubscriptionsRequest { |
|
|
|
|
// Maximum number of subscriptions to return. |
|
|
|
|
int32 page_size = 2; |
|
|
|
|
|
|
|
|
|
// The value returned by the last ListSubscriptionsResponse; indicates that |
|
|
|
|
// this is a continuation of a prior ListSubscriptions call, and that the |
|
|
|
|
// 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. |
|
|
|
|
string page_token = 3; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Response for the ListSubscriptions method. |
|
|
|
|
// Response for the `ListSubscriptions` method. |
|
|
|
|
message ListSubscriptionsResponse { |
|
|
|
|
// The subscriptions that match the request. |
|
|
|
|
repeated Subscription subscriptions = 1; |
|
|
|
|
|
|
|
|
|
// 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. |
|
|
|
|
// the request; this value should be passed in a new |
|
|
|
|
// `ListSubscriptionsRequest` to get more subscriptions. |
|
|
|
|
string next_page_token = 2; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -365,20 +371,20 @@ message ModifyPushConfigRequest { |
|
|
|
|
|
|
|
|
|
// The push configuration for future deliveries. |
|
|
|
|
// |
|
|
|
|
// An empty pushConfig indicates that the Pub/Sub system should |
|
|
|
|
// 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. |
|
|
|
|
// the subscription if `Pull` is not called. |
|
|
|
|
PushConfig push_config = 2; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Request for the Pull method. |
|
|
|
|
// Request for the `Pull` method. |
|
|
|
|
message PullRequest { |
|
|
|
|
// The subscription from which messages should be pulled. |
|
|
|
|
string subscription = 1; |
|
|
|
|
|
|
|
|
|
// 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 |
|
|
|
|
// 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. |
|
|
|
@ -389,11 +395,11 @@ message PullRequest { |
|
|
|
|
int32 max_messages = 3; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Response for the Pull method. |
|
|
|
|
// Response for the `Pull` method. |
|
|
|
|
message 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 |
|
|
|
|
// fewer than the `maxMessages` requested even if there are more messages |
|
|
|
|
// available in the backlog. |
|
|
|
|
repeated ReceivedMessage received_messages = 1; |
|
|
|
|
} |
|
|
|
@ -406,11 +412,11 @@ message ModifyAckDeadlineRequest { |
|
|
|
|
// List of acknowledgment IDs. |
|
|
|
|
repeated string ack_ids = 4; |
|
|
|
|
|
|
|
|
|
// 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. |
|
|
|
|
// 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. |
|
|
|
|
int32 ack_deadline_seconds = 3; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -420,6 +426,6 @@ message AcknowledgeRequest { |
|
|
|
|
string subscription = 1; |
|
|
|
|
|
|
|
|
|
// The acknowledgment ID for the messages being acknowledged that was returned |
|
|
|
|
// by the Pub/Sub system in the Pull response. Must not be empty. |
|
|
|
|
// by the Pub/Sub system in the `Pull` response. Must not be empty. |
|
|
|
|
repeated string ack_ids = 2; |
|
|
|
|
} |
|
|
|
|