Class: Google::Cloud::Pubsub::Topic
- Inherits:
-
Object
- Object
- Google::Cloud::Pubsub::Topic
- Defined in:
- lib/google/cloud/pubsub/topic.rb,
lib/google/cloud/pubsub/topic/list.rb,
lib/google/cloud/pubsub/topic/publisher.rb
Overview
Topic
A named resource to which messages are published.
Defined Under Namespace
Instance Method Summary collapse
-
#delete ⇒ Boolean
Permanently deletes the topic.
-
#exists? ⇒ Boolean
Determines whether the topic exists in the Pub/Sub service.
-
#name ⇒ Object
The name of the topic in the form of "/projects/project-identifier/topics/topic-name".
-
#policy {|policy| ... } ⇒ Policy
Gets the Cloud IAM access control policy for this topic.
-
#policy=(new_policy) ⇒ Policy
Updates the Cloud IAM access control policy for this topic.
-
#publish(data = nil, attributes = {}) {|publisher| ... } ⇒ Message+
Publishes one or more messages to the topic.
-
#subscribe(subscription_name, deadline: nil, retain_acked: false, retention: nil, endpoint: nil) ⇒ Google::Cloud::Pubsub::Subscription
(also: #create_subscription, #new_subscription)
Creates a new Subscription object on the current Topic.
-
#subscription(subscription_name, skip_lookup: nil) ⇒ Google::Cloud::Pubsub::Subscription?
(also: #get_subscription, #find_subscription)
Retrieves subscription by name.
-
#subscriptions(token: nil, max: nil) ⇒ Array<Subscription>
(also: #find_subscriptions, #list_subscriptions)
Retrieves a list of subscription names for the given project.
-
#test_permissions(*permissions) ⇒ Array<Strings>
Tests the specified permissions against the Cloud IAM access control policy.
Instance Method Details
#delete ⇒ Boolean
Permanently deletes the topic.
86 87 88 89 90 |
# File 'lib/google/cloud/pubsub/topic.rb', line 86 def delete ensure_service! service.delete_topic name true end |
#exists? ⇒ Boolean
Determines whether the topic exists in the Pub/Sub service.
423 424 425 426 427 428 429 430 |
# File 'lib/google/cloud/pubsub/topic.rb', line 423 def exists? # Always true if we have a grpc object return true unless @grpc.nil? # If we have a value, return it return @exists unless @exists.nil? ensure_grpc! @exists = !@grpc.nil? end |
#name ⇒ Object
The name of the topic in the form of "/projects/project-identifier/topics/topic-name".
69 70 71 |
# File 'lib/google/cloud/pubsub/topic.rb', line 69 def name @grpc ? @grpc.name : @name end |
#policy {|policy| ... } ⇒ Policy
Gets the Cloud IAM access control policy for this topic.
327 328 329 330 331 332 333 334 |
# File 'lib/google/cloud/pubsub/topic.rb', line 327 def policy ensure_service! grpc = service.get_topic_policy name policy = Policy.from_grpc grpc return policy unless block_given? yield policy self.policy = policy end |
#policy=(new_policy) ⇒ Policy
Updates the Cloud IAM access control
policy for this topic. The policy should be read from #policy. See
Policy for an explanation of the policy
etag
property and how to modify policies.
You can also update the policy by passing a block to #policy, which will call this method internally after the block completes.
365 366 367 368 369 |
# File 'lib/google/cloud/pubsub/topic.rb', line 365 def policy= new_policy ensure_service! grpc = service.set_topic_policy name, new_policy.to_grpc @policy = Policy.from_grpc grpc end |
#publish(data = nil, attributes = {}) {|publisher| ... } ⇒ Message+
Publishes one or more messages to the topic.
285 286 287 288 289 290 291 |
# File 'lib/google/cloud/pubsub/topic.rb', line 285 def publish data = nil, attributes = {} ensure_service! publisher = Publisher.new data, attributes yield publisher if block_given? return nil if publisher..count.zero? publisher end |
#subscribe(subscription_name, deadline: nil, retain_acked: false, retention: nil, endpoint: nil) ⇒ Google::Cloud::Pubsub::Subscription Also known as: create_subscription, new_subscription
Creates a new Subscription object on the current Topic.
138 139 140 141 142 143 144 145 |
# File 'lib/google/cloud/pubsub/topic.rb', line 138 def subscribe subscription_name, deadline: nil, retain_acked: false, retention: nil, endpoint: nil ensure_service! = { deadline: deadline, retain_acked: retain_acked, retention: retention, endpoint: endpoint } grpc = service.create_subscription name, subscription_name, Subscription.from_grpc grpc, service end |
#subscription(subscription_name, skip_lookup: nil) ⇒ Google::Cloud::Pubsub::Subscription? Also known as: get_subscription, find_subscription
Retrieves subscription by name.
182 183 184 185 186 187 188 189 |
# File 'lib/google/cloud/pubsub/topic.rb', line 182 def subscription subscription_name, skip_lookup: nil ensure_service! return Subscription.new_lazy subscription_name, service if skip_lookup grpc = service.get_subscription subscription_name Subscription.from_grpc grpc, service rescue Google::Cloud::NotFoundError nil end |
#subscriptions(token: nil, max: nil) ⇒ Array<Subscription> Also known as: find_subscriptions, list_subscriptions
Retrieves a list of subscription names for the given project.
225 226 227 228 229 230 |
# File 'lib/google/cloud/pubsub/topic.rb', line 225 def subscriptions token: nil, max: nil ensure_service! = { token: token, max: max } grpc = service.list_topics_subscriptions name, Subscription::List.from_topic_grpc grpc, service, name, max end |
#test_permissions(*permissions) ⇒ Array<Strings>
Tests the specified permissions against the Cloud IAM access control policy.
404 405 406 407 408 409 410 |
# File 'lib/google/cloud/pubsub/topic.rb', line 404 def * = Array().flatten = Array().flatten ensure_service! grpc = service. name, grpc. end |