1919pubsub = gcloud . pubsub
2020# [END create_pubsub_client]
2121
22- # [START create_topic]
2322def create_topic
23+ # [START create_topic]
2424 gcloud = Gcloud . new "my-gcp-project-id"
2525 pubsub = gcloud . pubsub
2626
2727 topic = pubsub . create_topic "my-topic"
2828
2929 puts "Topic created #{ topic . name } "
30+ # [END create_topic]
3031end
31- # [END create_topic]
3232
33- # [START create_subscription]
3433def create_subscription
34+ # [START create_subscription]
3535 gcloud = Gcloud . new "my-gcp-project-id"
3636 pubsub = gcloud . pubsub
3737 topic = pubsub . topic "my-topic"
3838
3939 subscription = topic . subscribe "my-subscription"
4040
4141 puts "Subscription created #{ subscription . name } "
42+ # [END create_subscription]
4243end
43- # [END create_subscription]
4444
45- # [START create_push_subscription]
4645def create_push_subscription
46+ # [START create_push_subscription]
4747 gcloud = Gcloud . new "my-gcp-project-id"
4848 pubsub = gcloud . pubsub
4949 topic = pubsub . topic "my-topic"
@@ -54,21 +54,21 @@ def create_push_subscription
5454 )
5555
5656 puts "Push subscription created #{ subscription . name } "
57+ # [END create_push_subscription]
5758end
58- # [END create_push_subscription]
5959
60- # [START publish_message]
6160def publish_message
61+ # [START publish_message]
6262 gcloud = Gcloud . new "my-gcp-project-id"
6363 pubsub = gcloud . pubsub
6464 topic = pubsub . topic "my-topic"
6565
6666 topic . publish "A Message"
67+ # [END publish_message]
6768end
68- # [END publish_message]
6969
70- # [START pull_messages]
7170def pull_messages
71+ # [START pull_messages]
7272 gcloud = Gcloud . new "my-gcp-project-id"
7373 pubsub = gcloud . pubsub
7474 subscription = pubsub . subscription "my-subscription"
@@ -78,11 +78,11 @@ def pull_messages
7878 puts message . data
7979 message . acknowledge!
8080 end
81+ # [END pull_messages]
8182end
82- # [END pull_messages]
8383
84- # [START list_topics]
8584def list_topics
85+ # [START list_topics]
8686 gcloud = Gcloud . new "my-gcp-project-id"
8787 pubsub = gcloud . pubsub
8888 topics = pubsub . topics
@@ -91,11 +91,11 @@ def list_topics
9191 topics . each do |topic |
9292 puts topic . name
9393 end
94+ # [END list_topics]
9495end
95- # [END list_topics]
9696
97- # [START list_subscriptions]
9897def list_subscriptions
98+ # [START list_subscriptions]
9999 gcloud = Gcloud . new "my-gcp-project-id"
100100 pubsub = gcloud . pubsub
101101 subscriptions = pubsub . subscriptions
@@ -104,5 +104,91 @@ def list_subscriptions
104104 subscriptions . each do |subscription |
105105 puts subscription . name
106106 end
107+ # [END list_subscriptions]
108+ end
109+
110+ def get_topic_policy
111+ # [START get_topic_policy]
112+ gcloud = Gcloud . new "my-gcp-project-id"
113+ pubsub = gcloud . pubsub
114+ topic = pubsub . topic "my-topic"
115+
116+ policy = topic . policy
117+
118+ puts "Topic policy:"
119+ puts policy . roles
120+ # [END get_topic_policy]
121+ end
122+
123+ def get_subscription_policy
124+ # [START get_subscription_policy]
125+ gcloud = Gcloud . new "my-gcp-project-id"
126+ pubsub = gcloud . pubsub
127+ subscription = pubsub . subscription "my-subscription"
128+
129+ policy = subscription . policy
130+
131+ puts "Subscription policy:"
132+ puts policy . roles
133+ # [END get_subscription_policy]
134+ end
135+
136+ def set_subscription_policy
137+ # [START set_subscription_policy]
138+ gcloud = Gcloud . new "my-gcp-project-id"
139+ pubsub = gcloud . pubsub
140+ subscription = pubsub . subscription "my-subscription"
141+
142+ policy = subscription . policy do |p |
143+ p . add "roles/pubsub.subscriber" ,
144+ "serviceAccount:account-name@other-project.iam.gserviceaccount.com"
145+ end
146+
147+ puts subscription . policy . roles
148+ # [END set_subscription_policy]
149+ end
150+
151+ def set_topic_policy
152+ # [START set_topic_policy]
153+ gcloud = Gcloud . new "my-gcp-project-id"
154+ pubsub = gcloud . pubsub
155+ topic = pubsub . topic "my-topic"
156+
157+ policy = topic . policy do |p |
158+ p . add "roles/pubsub.publisher" ,
159+ "serviceAccount:account-name@other-project.iam.gserviceaccount.com"
160+ end
161+
162+ puts topic . policy . roles
163+ # [END set_topic_policy]
164+ end
165+
166+ def test_subscription_permissions
167+ # [START test_subscription_permissions]
168+ gcloud = Gcloud . new "my-gcp-project-id"
169+ pubsub = gcloud . pubsub
170+ subscription = pubsub . subscription "my-subscription"
171+
172+ permissions = subscription . test_permissions "pubsub.subscriptions.consume" ,
173+ "pubsub.subscriptions.update"
174+
175+ puts permissions . include? "pubsub.subscriptions.consume"
176+ puts permissions . include? "pubsub.subscriptions.update"
177+ # [END test_subscription_permissions]
178+ end
179+
180+ def test_topic_permissions
181+ # [START test_topic_permissions]
182+ gcloud = Gcloud . new "my-gcp-project-id"
183+ pubsub = gcloud . pubsub
184+ topic = pubsub . topic "my-topic"
185+
186+ permissions = topic . test_permissions "pubsub.topics.attachSubscription" ,
187+ "pubsub.topics.publish" ,
188+ "pubsub.topics.update"
189+
190+ puts permissions . include? "pubsub.topics.attachSubscription"
191+ puts permissions . include? "pubsub.topics.publish"
192+ puts permissions . include? "pubsub.topics.update"
193+ # [END test_topic_permissions]
107194end
108- # [END list_subscriptions]
0 commit comments