Class: Google::Apis::PubsubV1::Subscription
- Inherits:
-
Object
- Object
- Google::Apis::PubsubV1::Subscription
- Includes:
- Core::Hashable, Core::JsonObjectSupport
- Defined in:
- lib/google/apis/pubsub_v1/classes.rb,
lib/google/apis/pubsub_v1/representations.rb,
lib/google/apis/pubsub_v1/representations.rb
Overview
A subscription resource. If none of push_config, bigquery_config, or
cloud_storage_config is set, then the subscriber will pull and ack messages
using API methods. At most one of these fields may be set.
Instance Attribute Summary collapse
-
#ack_deadline_seconds ⇒ Fixnum
The approximate amount of time (on a best-effort basis) Pub/Sub waits for the subscriber to acknowledge receipt before resending the message.
-
#bigquery_config ⇒ Google::Apis::PubsubV1::BigQueryConfig
Configuration for a BigQuery subscription.
-
#cloud_storage_config ⇒ Google::Apis::PubsubV1::CloudStorageConfig
Configuration for a Cloud Storage subscription.
-
#dead_letter_policy ⇒ Google::Apis::PubsubV1::DeadLetterPolicy
Dead lettering is done on a best effort basis.
-
#detached ⇒ Boolean
(also: #detached?)
Indicates whether the subscription is detached from its topic.
-
#enable_exactly_once_delivery ⇒ Boolean
(also: #enable_exactly_once_delivery?)
If true, Pub/Sub provides the following guarantees for the delivery of a message with a given value of
message_idon this subscription: * The message sent to a subscriber is guaranteed not to be resent before the message's acknowledgement deadline expires. -
#enable_message_ordering ⇒ Boolean
(also: #enable_message_ordering?)
If true, messages published with the same
ordering_keyinPubsubMessagewill be delivered to the subscribers in the order in which they are received by the Pub/Sub system. -
#expiration_policy ⇒ Google::Apis::PubsubV1::ExpirationPolicy
A policy that specifies the conditions for resource expiration (i.e., automatic resource deletion).
-
#filter ⇒ String
An expression written in the Pub/Sub filter language.
- #labels ⇒ Hash<String,String>
-
#message_retention_duration ⇒ String
How long to retain unacknowledged messages in the subscription's backlog, from the moment a message is published.
-
#name ⇒ String
Required.
-
#push_config ⇒ Google::Apis::PubsubV1::PushConfig
Configuration for a push delivery endpoint.
-
#retain_acked_messages ⇒ Boolean
(also: #retain_acked_messages?)
Indicates whether to retain acknowledged messages.
-
#retry_policy ⇒ Google::Apis::PubsubV1::RetryPolicy
A policy that specifies how Cloud Pub/Sub retries message delivery.
-
#state ⇒ String
Output only.
-
#topic ⇒ String
Required.
-
#topic_message_retention_duration ⇒ String
Output only.
Instance Method Summary collapse
-
#initialize(**args) ⇒ Subscription
constructor
A new instance of Subscription.
-
#update!(**args) ⇒ Object
Update properties of this object.
Constructor Details
#initialize(**args) ⇒ Subscription
Returns a new instance of Subscription.
1600 1601 1602 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1600 def initialize(**args) update!(**args) end |
Instance Attribute Details
#ack_deadline_seconds ⇒ Fixnum
The approximate amount of time (on a best-effort basis) Pub/Sub waits for the
subscriber to acknowledge receipt before resending the message. In the
interval after the message is delivered and before it is acknowledged, it is
considered to be outstanding. During that time period, the message will not
be redelivered (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 non-streaming pull or send the ack_id in a
StreamingModifyAckDeadlineRequest if using streaming pull. The minimum custom
deadline you can specify is 10 seconds. The maximum custom deadline you can
specify is 600 seconds (10 minutes). If this parameter is 0, a default value
of 10 seconds is used. 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.
Corresponds to the JSON property ackDeadlineSeconds
1460 1461 1462 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1460 def ack_deadline_seconds @ack_deadline_seconds end |
#bigquery_config ⇒ Google::Apis::PubsubV1::BigQueryConfig
Configuration for a BigQuery subscription.
Corresponds to the JSON property bigqueryConfig
1465 1466 1467 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1465 def bigquery_config @bigquery_config end |
#cloud_storage_config ⇒ Google::Apis::PubsubV1::CloudStorageConfig
Configuration for a Cloud Storage subscription.
Corresponds to the JSON property cloudStorageConfig
1470 1471 1472 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1470 def cloud_storage_config @cloud_storage_config end |
#dead_letter_policy ⇒ Google::Apis::PubsubV1::DeadLetterPolicy
Dead lettering is done on a best effort basis. The same message might be dead
lettered multiple times. If validation on any of the fields fails at
subscription creation/updation, the create/update subscription request will
fail.
Corresponds to the JSON property deadLetterPolicy
1478 1479 1480 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1478 def dead_letter_policy @dead_letter_policy end |
#detached ⇒ Boolean Also known as: detached?
Indicates whether the subscription is detached from its topic. Detached
subscriptions don't receive messages from their topic and don't retain any
backlog. Pull and StreamingPull requests will return FAILED_PRECONDITION.
If the subscription is a push subscription, pushes to the endpoint will not be
made.
Corresponds to the JSON property detached
1487 1488 1489 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1487 def detached @detached end |
#enable_exactly_once_delivery ⇒ Boolean Also known as: enable_exactly_once_delivery?
If true, Pub/Sub provides the following guarantees for the delivery of a
message with a given value of message_id on this subscription: * The message
sent to a subscriber is guaranteed not to be resent before the message's
acknowledgement deadline expires. * An acknowledged message will not be resent
to a subscriber. Note that subscribers may still receive multiple copies of a
message when enable_exactly_once_delivery is true if the message was
published multiple times by a publisher client. These copies are considered
distinct by Pub/Sub and have distinct message_id values.
Corresponds to the JSON property enableExactlyOnceDelivery
1500 1501 1502 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1500 def enable_exactly_once_delivery @enable_exactly_once_delivery end |
#enable_message_ordering ⇒ Boolean Also known as: enable_message_ordering?
If true, messages published with the same ordering_key in PubsubMessage
will be delivered to the subscribers in the order in which they are received
by the Pub/Sub system. Otherwise, they may be delivered in any order.
Corresponds to the JSON property enableMessageOrdering
1508 1509 1510 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1508 def @enable_message_ordering end |
#expiration_policy ⇒ Google::Apis::PubsubV1::ExpirationPolicy
A policy that specifies the conditions for resource expiration (i.e.,
automatic resource deletion).
Corresponds to the JSON property expirationPolicy
1515 1516 1517 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1515 def expiration_policy @expiration_policy end |
#filter ⇒ String
An expression written in the Pub/Sub filter language. If non-empty, then only PubsubMessages whose
attributes field matches the filter are delivered on this subscription. If
empty, then no messages are filtered out.
Corresponds to the JSON property filter
1523 1524 1525 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1523 def filter @filter end |
#labels ⇒ Hash<String,String>
See Creating and managing labels
.
Corresponds to the JSON property labels
1529 1530 1531 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1529 def labels @labels end |
#message_retention_duration ⇒ String
How long to retain unacknowledged messages in the subscription's backlog, from
the moment a message is published. If retain_acked_messages is true, then
this also configures the retention of acknowledged messages, and thus
configures how far back in time a Seek can be done. Defaults to 7 days.
Cannot be more than 7 days or less than 10 minutes.
Corresponds to the JSON property messageRetentionDuration
1538 1539 1540 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1538 def @message_retention_duration end |
#name ⇒ String
Required. The name of the subscription. It must have the format "projects/
project/subscriptions/subscription". subscription must start with a
letter, and contain only letters ([A-Za-z]), numbers ([0-9]), dashes (-),
underscores (_), periods (.), tildes (~), plus (+) or percent signs (
%). It must be between 3 and 255 characters in length, and it must not start
with "goog".
Corresponds to the JSON property name
1548 1549 1550 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1548 def name @name end |
#push_config ⇒ Google::Apis::PubsubV1::PushConfig
Configuration for a push delivery endpoint.
Corresponds to the JSON property pushConfig
1553 1554 1555 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1553 def push_config @push_config end |
#retain_acked_messages ⇒ Boolean Also known as: retain_acked_messages?
Indicates whether to retain acknowledged messages. If true, then messages are
not expunged from the subscription's backlog, even if they are acknowledged,
until they fall out of the message_retention_duration window. This must be
true if you would like to Seek to a timestamp in the past to replay previously-
acknowledged messages.
Corresponds to the JSON property retainAckedMessages
1563 1564 1565 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1563 def @retain_acked_messages end |
#retry_policy ⇒ Google::Apis::PubsubV1::RetryPolicy
A policy that specifies how Cloud Pub/Sub retries message delivery. Retry
delay will be exponential based on provided minimum and maximum backoffs.
https://en.wikipedia.org/wiki/Exponential_backoff. RetryPolicy will be
triggered on NACKs or acknowledgement deadline exceeded events for a given
message. Retry Policy is implemented on a best effort basis. At times, the
delay between consecutive deliveries may not match the configuration. That is,
delay can be more or less than configured backoff.
Corresponds to the JSON property retryPolicy
1575 1576 1577 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1575 def retry_policy @retry_policy end |
#state ⇒ String
Output only. An output-only field indicating whether or not the subscription
can receive messages.
Corresponds to the JSON property state
1581 1582 1583 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1581 def state @state end |
#topic ⇒ String
Required. The name of the topic from which this subscription is receiving
messages. Format is projects/project/topics/topic`. The value of this
field will bedeleted-topicif the topic has been deleted.
Corresponds to the JSON propertytopic`
1588 1589 1590 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1588 def topic @topic end |
#topic_message_retention_duration ⇒ String
Output only. Indicates the minimum duration for which a message is retained
after it is published to the subscription's topic. If this field is set,
messages published to the subscription's topic in the last
topic_message_retention_duration are always available to subscribers. See the
message_retention_duration field in Topic. This field is set only in
responses from the server; it is ignored if it is set in any requests.
Corresponds to the JSON property topicMessageRetentionDuration
1598 1599 1600 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1598 def @topic_message_retention_duration end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1605 def update!(**args) @ack_deadline_seconds = args[:ack_deadline_seconds] if args.key?(:ack_deadline_seconds) @bigquery_config = args[:bigquery_config] if args.key?(:bigquery_config) @cloud_storage_config = args[:cloud_storage_config] if args.key?(:cloud_storage_config) @dead_letter_policy = args[:dead_letter_policy] if args.key?(:dead_letter_policy) @detached = args[:detached] if args.key?(:detached) @enable_exactly_once_delivery = args[:enable_exactly_once_delivery] if args.key?(:enable_exactly_once_delivery) @enable_message_ordering = args[:enable_message_ordering] if args.key?(:enable_message_ordering) @expiration_policy = args[:expiration_policy] if args.key?(:expiration_policy) @filter = args[:filter] if args.key?(:filter) @labels = args[:labels] if args.key?(:labels) @message_retention_duration = args[:message_retention_duration] if args.key?(:message_retention_duration) @name = args[:name] if args.key?(:name) @push_config = args[:push_config] if args.key?(:push_config) @retain_acked_messages = args[:retain_acked_messages] if args.key?(:retain_acked_messages) @retry_policy = args[:retry_policy] if args.key?(:retry_policy) @state = args[:state] if args.key?(:state) @topic = args[:topic] if args.key?(:topic) @topic_message_retention_duration = args[:topic_message_retention_duration] if args.key?(:topic_message_retention_duration) end |