11Using the API
22=============
33
4- Connection / Authorization
5- --------------------------
4+ Authorization / Configuration
5+ -----------------------------
66
7- - Inferred defaults used to create connection if none configured explicitly:
7+ - Use :class: `Client <gcloud.pubsub.client.Client> ` objects to configure
8+ your applications.
89
9- - credentials (derived from GAE / GCE environ if present).
10+ - :class: `Client <gcloud.pubsub.client.Client> ` objects hold both a ``project ``
11+ and an authenticated connection
1012
11- - ``project `` (derived from GAE / GCE environ if present).
13+ - The authentication credentials can be implicitly determined from the
14+ environment or directly via
15+ :meth: `with_service_account_json <gcloud.pubsub.client.Client.with_service_account_json> `
16+ and
17+ :meth: `with_service_account_p12 <gcloud.pubsub.client.Client.with_service_account_p12> `.
1218
13- - ``scopes ``
19+ - After setting ``GOOGLE_APPLICATION_CREDENTIALS `` and ``GCLOUD_PROJECT ``
20+ environment variables, create a :class: `Client <gcloud.pubsub.client.Client> `
21+
22+ .. doctest ::
23+
24+ >>> from gcloud import pubsub
25+ >>> client = pubsub.Client()
1426
1527
1628Manage topics for a project
@@ -20,51 +32,47 @@ Create a new topic for the default project:
2032
2133.. doctest ::
2234
23- >>> from gcloud.pubsub import Topic
24- >>> topic = Topic(' topic_name' )
35+ >>> from gcloud import pubsub
36+ >>> client = pubsub.Client()
37+ >>> topic = client.topic(' topic_name' )
2538 >>> topic.create() # API request
2639
27- Create a new topic for an explicit project :
40+ Create a new topic for an explicit client :
2841
2942.. doctest ::
3043
31- >>> from gcloud.pubsub import Topic
32- >>> topic = Topic(' topic_name' , project = ' my.project' )
44+ >>> from gcloud import pubsub
45+ >>> client = pubsub.Client()
46+ >>> topic = Topic(' topic_name' , client = client)
3347 >>> topic.create() # API request
3448
35- Check for the existance of a topic:
49+ Check for the existence of a topic:
3650
3751.. doctest ::
3852
39- >>> from gcloud.pubsub import Topic
40- >>> topic = Topic(' topic_name' )
53+ >>> from gcloud import pubsub
54+ >>> client = pubsub.Client()
55+ >>> topic = client.topic(' topic_name' )
4156 >>> topic.exists() # API request
4257 True
4358
4459List topics for the default project:
4560
4661.. doctest ::
4762
48- >>> from gcloud.pubsub import list_topics
49- >>> topics, next_page_token = list_topics() # API request
50- >>> [topic.name for topic in topics]
51- ['topic_name']
52-
53- List topics for an explicit project:
54-
55- .. doctest ::
56-
57- >>> from gcloud.pubsub import list_topics
58- >>> topics, next_page_token = list_topics(project = ' my.project' ) # API request
63+ >>> from gcloud import pubsub
64+ >>> client = pubsub.Client()
65+ >>> topics, next_page_token = client.list_topics() # API request
5966 >>> [topic.name for topic in topics]
6067 ['topic_name']
6168
6269Delete a topic:
6370
6471.. doctest ::
6572
66- >>> from gcloud.pubsub import Topic
67- >>> topic = Topic(' topic_name' )
73+ >>> from gcloud import pubsub
74+ >>> client = pubsub.Client()
75+ >>> topic = client.topic(' topic_name' )
6876 >>> topic.delete() # API request
6977
7078
@@ -75,17 +83,19 @@ Publish a single message to a topic, without attributes:
7583
7684.. doctest ::
7785
78- >>> from gcloud.pubsub import Topic
79- >>> topic = Topic(' topic_name' )
86+ >>> from gcloud import pubsub
87+ >>> client = pubsub.Client()
88+ >>> topic = client.topic(' topic_name' )
8089 >>> topic.publish(' this is the message_payload' ) # API request
8190 <message_id>
8291
8392Publish a single message to a topic, with attributes:
8493
8594.. doctest ::
8695
87- >>> from gcloud.pubsub import Topic
88- >>> topic = Topic(' topic_name' )
96+ >>> from gcloud import pubsub
97+ >>> client = pubsub.Client()
98+ >>> topic = client.topic(' topic_name' )
8999 >>> topic.publish(' this is another message_payload' ,
90100 ... attr1= ' value1' , attr2= ' value2' ) # API request
91101 <message_id>
@@ -94,8 +104,9 @@ Publish a set of messages to a topic (as a single request):
94104
95105.. doctest ::
96106
97- >>> from gcloud.pubsub import Topic
98- >>> topic = Topic(' topic_name' )
107+ >>> from gcloud import pubsub
108+ >>> client = pubsub.Client()
109+ >>> topic = client.topic(' topic_name' )
99110 >>> with topic.batch() as batch:
100111 ... batch.publish(' this is the first message_payload' )
101112 ... batch.publish(' this is the second message_payload' ,
@@ -116,93 +127,97 @@ Create a new pull subscription for a topic:
116127
117128.. doctest ::
118129
119- >>> from gcloud.pubsub import Topic
120- >>> from gcloud.pubsub import Subscription
121- >>> topic = Topic (' topic_name' )
122- >>> subscription = Subscription(' subscription_name' , topic)
130+ >>> from gcloud import pubsub
131+ >>> client = pubsub.Client()
132+ >>> topic = client.topic (' topic_name' )
133+ >>> subscription = pubsub. Subscription(' subscription_name' , topic)
123134 >>> subscription.create() # API request
124135
125136Create a new pull subscription for a topic with a non-default ACK deadline:
126137
127138.. doctest ::
128139
129- >>> from gcloud.pubsub import Topic
130- >>> from gcloud.pubsub import Subscription
131- >>> topic = Topic (' topic_name' )
132- >>> subscription = Subscription(' subscription_name' , ack_deadline = 90 )
140+ >>> from gcloud import pubsub
141+ >>> client = pubsub.Client()
142+ >>> topic = client.topic (' topic_name' )
143+ >>> subscription = pubsub. Subscription(' subscription_name' , ack_deadline = 90 )
133144 >>> subscription.create() # API request
134145
135146Create a new push subscription for a topic:
136147
137148.. doctest ::
138149
150+ >>> from gcloud import pubsub
139151 >>> ENDPOINT = ' https://example.com/hook'
140- >>> from gcloud.pubsub import Topic
141- >>> from gcloud.pubsub import Subscription
142- >>> topic = Topic( ' topic_name ' )
143- >>> subscription = Subscription( ' subscription_name ' , push_endpoint = ENDPOINT )
152+ >>> client = pubsub.Client()
153+ >>> topic = client.topic( ' topic_name ' )
154+ >>> subscription = pubsub.Subscription( ' subscription_name ' ,
155+ ... push_endpoint= ENDPOINT )
144156 >>> subscription.create() # API request
145157
146158Check for the existence of a subscription:
147159
148160.. doctest ::
149161
150- >>> from gcloud.pubsub import Topic
151- >>> from gcloud.pubsub import Subscription
152- >>> topic = Topic (' topic_name' )
153- >>> subscription = Subscription(' subscription_name' , topic)
162+ >>> from gcloud import pubsub
163+ >>> client = pubsub.Client()
164+ >>> topic = client.topic (' topic_name' )
165+ >>> subscription = pubsub. Subscription(' subscription_name' , topic)
154166 >>> subscription.exists() # API request
155167 True
156168
157169Convert a pull subscription to push:
158170
159171.. doctest ::
160172
173+ >>> from gcloud import pubsub
161174 >>> ENDPOINT = ' https://example.com/hook'
162- >>> from gcloud.pubsub import Topic
163- >>> from gcloud.pubsub import Subscription
164- >>> topic = Topic(' topic_name' )
165- >>> subscription = Subscription(' subscription_name' , topic)
175+ >>> client = pubsub.Client()
176+ >>> topic = client.topic(' topic_name' )
177+ >>> subscription = pubsub.Subscription(' subscription_name' , topic)
166178 >>> subscription.modify_push_configuration(push_endpoint = ENDPOINT ) # API request
167179
168180Convert a push subscription to pull:
169181
170182.. doctest ::
171183
184+ >>> from gcloud import pubsub
172185 >>> ENDPOINT = ' https://example.com/hook'
173- >>> from gcloud.pubsub import Topic
174- >>> topic = Topic (' topic_name' )
175- >>> subscription = Subscription(' subscription_name' , topic,
176- ... push_endpoint= ENDPOINT )
186+ >>> client = pubsub.Client()
187+ >>> topic = client.topic (' topic_name' )
188+ >>> subscription = pubusb. Subscription(' subscription_name' , topic,
189+ ... push_endpoint= ENDPOINT )
177190 >>> subscription.modify_push_configuration(push_endpoint = None ) # API request
178191
179192List subscriptions for a topic:
180193
181194.. doctest ::
182195
183- >>> from gcloud.pubsub import Topic
184- >>> topic = Topic(' topic_name' )
185- >>> subscriptions, next_page_token = topic.list_subscriptions() # API request
196+ >>> from gcloud import pubsub
197+ >>> client = pubsub.Client()
198+ >>> subscriptions, next_page_token = client.list_subscriptions(
199+ ... topic_name= ' topic_name' ) # API request
186200 >>> [subscription.name for subscription in subscriptions]
187201 ['subscription_name']
188202
189203List all subscriptions for the default project:
190204
191205.. doctest ::
192206
193- >>> from gcloud.pubsub import list_subscriptions
194- >>> subscription, next_page_tokens = list_subscriptions() # API request
207+ >>> from gcloud import pubsub
208+ >>> client = pubsub.Client()
209+ >>> subscription, next_page_tokens = client.list_subscriptions() # API request
195210 >>> [subscription.name for subscription in subscriptions]
196211 ['subscription_name']
197212
198213Delete a subscription:
199214
200215.. doctest ::
201216
202- >>> from gcloud.pubsub import Topic
203- >>> from gcloud.pubsub import Subscription
204- >>> topic = Topic (' topic_name' )
205- >>> subscription = Subscription(' subscription_name' , topic)
217+ >>> from gcloud import pubsub
218+ >>> client = pubsub.Client()
219+ >>> topic = client.topic (' topic_name' )
220+ >>> subscription = pubsub. Subscription(' subscription_name' , topic)
206221 >>> subscription.delete() # API request
207222
208223
@@ -213,13 +228,13 @@ Fetch pending messages for a pull subscription:
213228
214229.. doctest ::
215230
216- >>> from gcloud.pubsub import Topic
217- >>> from gcloud.pubsub import Subscription
218- >>> topic = Topic (' topic_name' )
219- >>> subscription = Subscription(' subscription_name' , topic)
220- >>> with topic:
221- ... topic .publish(' this is the first message_payload' )
222- ... topic .publish(' this is the second message_payload' ,
231+ >>> from gcloud import pubsub
232+ >>> client = pubsub.Client()
233+ >>> topic = client.topic (' topic_name' )
234+ >>> subscription = pubsub. Subscription(' subscription_name' , topic)
235+ >>> with topic.batch() as batch :
236+ ... batch .publish(' this is the first message_payload' )
237+ ... batch .publish(' this is the second message_payload' ,
223238 ... attr1= ' value1' , attr2= ' value2' )
224239 >>> received = subscription.pull() # API request
225240 >>> messages = [recv[1 ] for recv in received]
@@ -242,13 +257,13 @@ Fetch a limited number of pending messages for a pull subscription:
242257
243258.. doctest ::
244259
245- >>> from gcloud.pubsub import Topic
246- >>> from gcloud.pubsub import Subscription
247- >>> topic = Topic (' topic_name' )
248- >>> subscription = Subscription(' subscription_name' , topic)
249- >>> with topic:
250- ... topic .publish(' this is the first message_payload' )
251- ... topic .publish(' this is the second message_payload' ,
260+ >>> from gcloud import pubsub
261+ >>> client = pubsub.Client()
262+ >>> topic = client.topic (' topic_name' )
263+ >>> subscription = pubsub. Subscription(' subscription_name' , topic)
264+ >>> with topic.batch() as batch :
265+ ... batch .publish(' this is the first message_payload' )
266+ ... batch .publish(' this is the second message_payload' ,
252267 ... attr1= ' value1' , attr2= ' value2' )
253268 >>> received = subscription.pull(max_messages = 1 ) # API request
254269 >>> messages = [recv[1 ] for recv in received]
@@ -258,10 +273,10 @@ Fetch messages for a pull subscription without blocking (none pending):
258273
259274.. doctest ::
260275
261- >>> from gcloud.pubsub import Topic
262- >>> from gcloud.pubsub import Subscription
263- >>> topic = Topic (' topic_name' )
264- >>> subscription = Subscription(' subscription_name' , topic)
276+ >>> from gcloud import pubsub
277+ >>> client = pubsub.Client()
278+ >>> topic = client.topic (' topic_name' )
279+ >>> subscription = pubsub. Subscription(' subscription_name' , topic)
265280 >>> received = subscription.pull(max_messages = 1 ) # API request
266281 >>> messages = [recv[1 ] for recv in received]
267282 >>> [message.id for message in messages]
0 commit comments