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
Optional.
-
#analytics_hub_subscription_info ⇒ Google::Apis::PubsubV1::AnalyticsHubSubscriptionInfo
Information about an associated Analytics Hub subscription (https://cloud. google.com/bigquery/docs/analytics-hub-manage-subscriptions).
-
#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?)
Optional.
-
#enable_exactly_once_delivery ⇒ Boolean
(also: #enable_exactly_once_delivery?)
Optional.
-
#enable_message_ordering ⇒ Boolean
(also: #enable_message_ordering?)
Optional.
-
#expiration_policy ⇒ Google::Apis::PubsubV1::ExpirationPolicy
A policy that specifies the conditions for resource expiration (i.e., automatic resource deletion).
-
#filter ⇒ String
Optional.
-
#labels ⇒ Hash<String,String>
Optional.
-
#message_retention_duration ⇒ String
Optional.
-
#name ⇒ String
Required.
-
#push_config ⇒ Google::Apis::PubsubV1::PushConfig
Configuration for a push delivery endpoint.
-
#retain_acked_messages ⇒ Boolean
(also: #retain_acked_messages?)
Optional.
-
#retry_policy ⇒ Google::Apis::PubsubV1::RetryPolicy
A policy that specifies how 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.
1932 1933 1934 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1932 def initialize(**args) update!(**args) end |
Instance Attribute Details
#ack_deadline_seconds ⇒ Fixnum
Optional. 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
1785 1786 1787 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1785 def ack_deadline_seconds @ack_deadline_seconds end |
#analytics_hub_subscription_info ⇒ Google::Apis::PubsubV1::AnalyticsHubSubscriptionInfo
Information about an associated Analytics Hub subscription (https://cloud.
google.com/bigquery/docs/analytics-hub-manage-subscriptions).
Corresponds to the JSON property analyticsHubSubscriptionInfo
1791 1792 1793 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1791 def analytics_hub_subscription_info @analytics_hub_subscription_info end |
#bigquery_config ⇒ Google::Apis::PubsubV1::BigQueryConfig
Configuration for a BigQuery subscription.
Corresponds to the JSON property bigqueryConfig
1796 1797 1798 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1796 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
1801 1802 1803 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1801 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
1809 1810 1811 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1809 def dead_letter_policy @dead_letter_policy end |
#detached ⇒ Boolean Also known as: detached?
Optional. 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
1818 1819 1820 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1818 def detached @detached end |
#enable_exactly_once_delivery ⇒ Boolean Also known as: enable_exactly_once_delivery?
Optional. 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
1831 1832 1833 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1831 def enable_exactly_once_delivery @enable_exactly_once_delivery end |
#enable_message_ordering ⇒ Boolean Also known as: enable_message_ordering?
Optional. 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
1840 1841 1842 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1840 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
1847 1848 1849 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1847 def expiration_policy @expiration_policy end |
#filter ⇒ String
Optional. An expression written in the Pub/Sub filter language. If non-empty, then only PubsubMessage
s
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
1855 1856 1857 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1855 def filter @filter end |
#labels ⇒ Hash<String,String>
Optional. See Creating and managing labels.
Corresponds to the JSON property labels
1861 1862 1863 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1861 def labels @labels end |
#message_retention_duration ⇒ String
Optional. 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 31 days or less than 10 minutes.
Corresponds to the JSON property messageRetentionDuration
1870 1871 1872 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1870 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
1880 1881 1882 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1880 def name @name end |
#push_config ⇒ Google::Apis::PubsubV1::PushConfig
Configuration for a push delivery endpoint.
Corresponds to the JSON property pushConfig
1885 1886 1887 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1885 def push_config @push_config end |
#retain_acked_messages ⇒ Boolean Also known as: retain_acked_messages?
Optional. 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
1895 1896 1897 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1895 def @retain_acked_messages end |
#retry_policy ⇒ Google::Apis::PubsubV1::RetryPolicy
A policy that specifies how 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
1907 1908 1909 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1907 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
1913 1914 1915 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1913 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 be
deleted-topicif the topic has been deleted.
Corresponds to the JSON property
topic`
1920 1921 1922 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1920 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
1930 1931 1932 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1930 def @topic_message_retention_duration end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 |
# File 'lib/google/apis/pubsub_v1/classes.rb', line 1937 def update!(**args) @ack_deadline_seconds = args[:ack_deadline_seconds] if args.key?(:ack_deadline_seconds) @analytics_hub_subscription_info = args[:analytics_hub_subscription_info] if args.key?(:analytics_hub_subscription_info) @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 |