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,38 @@ Create a new topic for the default project:
2032
2133.. doctest ::
2234
23- >>> from gcloud.pubsub import Topic
24- >>> topic = Topic(' topic_name' )
25- >>> topic.create() # API request
26-
27- Create a new topic for an explicit project:
28-
29- .. doctest ::
30-
31- >>> from gcloud.pubsub import Topic
32- >>> topic = Topic(' topic_name' , project = ' my.project' )
35+ >>> from gcloud import pubsub
36+ >>> client = pubsub.Client()
37+ >>> topic = client.topic(' topic_name' )
3338 >>> topic.create() # API request
3439
35- Check for the existance of a topic:
40+ Check for the existence of a topic:
3641
3742.. doctest ::
3843
39- >>> from gcloud.pubsub import Topic
40- >>> topic = Topic(' topic_name' )
44+ >>> from gcloud import pubsub
45+ >>> client = pubsub.Client()
46+ >>> topic = client.topic(' topic_name' )
4147 >>> topic.exists() # API request
4248 True
4349
4450List topics for the default project:
4551
4652.. doctest ::
4753
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
54+ >>> from gcloud import pubsub
55+ >>> client = pubsub.Client()
56+ >>> topics, next_page_token = client.list_topics() # API request
5957 >>> [topic.name for topic in topics]
6058 ['topic_name']
6159
6260Delete a topic:
6361
6462.. doctest ::
6563
66- >>> from gcloud.pubsub import Topic
67- >>> topic = Topic(' topic_name' )
64+ >>> from gcloud import pubsub
65+ >>> client = pubsub.Client()
66+ >>> topic = client.topic(' topic_name' )
6867 >>> topic.delete() # API request
6968
7069
@@ -75,17 +74,19 @@ Publish a single message to a topic, without attributes:
7574
7675.. doctest ::
7776
78- >>> from gcloud.pubsub import Topic
79- >>> topic = Topic(' topic_name' )
77+ >>> from gcloud import pubsub
78+ >>> client = pubsub.Client()
79+ >>> topic = client.topic(' topic_name' )
8080 >>> topic.publish(' this is the message_payload' ) # API request
8181 <message_id>
8282
8383Publish a single message to a topic, with attributes:
8484
8585.. doctest ::
8686
87- >>> from gcloud.pubsub import Topic
88- >>> topic = Topic(' topic_name' )
87+ >>> from gcloud import pubsub
88+ >>> client = pubsub.Client()
89+ >>> topic = client.topic(' topic_name' )
8990 >>> topic.publish(' this is another message_payload' ,
9091 ... attr1= ' value1' , attr2= ' value2' ) # API request
9192 <message_id>
@@ -94,8 +95,9 @@ Publish a set of messages to a topic (as a single request):
9495
9596.. doctest ::
9697
97- >>> from gcloud.pubsub import Topic
98- >>> topic = Topic(' topic_name' )
98+ >>> from gcloud import pubsub
99+ >>> client = pubsub.Client()
100+ >>> topic = client.topic(' topic_name' )
99101 >>> with topic.batch() as batch:
100102 ... batch.publish(' this is the first message_payload' )
101103 ... batch.publish(' this is the second message_payload' ,
@@ -116,93 +118,97 @@ Create a new pull subscription for a topic:
116118
117119.. doctest ::
118120
119- >>> from gcloud.pubsub import Topic
120- >>> from gcloud.pubsub import Subscription
121- >>> topic = Topic (' topic_name' )
122- >>> subscription = Subscription(' subscription_name' , topic)
121+ >>> from gcloud import pubsub
122+ >>> client = pubsub.Client()
123+ >>> topic = client.topic (' topic_name' )
124+ >>> subscription = pubsub. Subscription(' subscription_name' , topic)
123125 >>> subscription.create() # API request
124126
125127Create a new pull subscription for a topic with a non-default ACK deadline:
126128
127129.. doctest ::
128130
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 )
131+ >>> from gcloud import pubsub
132+ >>> client = pubsub.Client()
133+ >>> topic = client.topic (' topic_name' )
134+ >>> subscription = pubsub. Subscription(' subscription_name' , ack_deadline = 90 )
133135 >>> subscription.create() # API request
134136
135137Create a new push subscription for a topic:
136138
137139.. doctest ::
138140
141+ >>> from gcloud import pubsub
139142 >>> 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 )
143+ >>> client = pubsub.Client()
144+ >>> topic = client.topic( ' topic_name ' )
145+ >>> subscription = pubsub.Subscription( ' subscription_name ' ,
146+ ... push_endpoint= ENDPOINT )
144147 >>> subscription.create() # API request
145148
146149Check for the existence of a subscription:
147150
148151.. doctest ::
149152
150- >>> from gcloud.pubsub import Topic
151- >>> from gcloud.pubsub import Subscription
152- >>> topic = Topic (' topic_name' )
153- >>> subscription = Subscription(' subscription_name' , topic)
153+ >>> from gcloud import pubsub
154+ >>> client = pubsub.Client()
155+ >>> topic = client.topic (' topic_name' )
156+ >>> subscription = pubsub. Subscription(' subscription_name' , topic)
154157 >>> subscription.exists() # API request
155158 True
156159
157160Convert a pull subscription to push:
158161
159162.. doctest ::
160163
164+ >>> from gcloud import pubsub
161165 >>> 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)
166+ >>> client = pubsub.Client()
167+ >>> topic = client.topic(' topic_name' )
168+ >>> subscription = pubsub.Subscription(' subscription_name' , topic)
166169 >>> subscription.modify_push_configuration(push_endpoint = ENDPOINT ) # API request
167170
168171Convert a push subscription to pull:
169172
170173.. doctest ::
171174
175+ >>> from gcloud import pubsub
172176 >>> 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 )
177+ >>> client = pubsub.Client()
178+ >>> topic = client.topic (' topic_name' )
179+ >>> subscription = pubusb. Subscription(' subscription_name' , topic,
180+ ... push_endpoint= ENDPOINT )
177181 >>> subscription.modify_push_configuration(push_endpoint = None ) # API request
178182
179183List subscriptions for a topic:
180184
181185.. doctest ::
182186
183- >>> from gcloud.pubsub import Topic
184- >>> topic = Topic(' topic_name' )
185- >>> subscriptions, next_page_token = topic.list_subscriptions() # API request
187+ >>> from gcloud import pubsub
188+ >>> client = pubsub.Client()
189+ >>> subscriptions, next_page_token = client.list_subscriptions(
190+ ... topic_name= ' topic_name' ) # API request
186191 >>> [subscription.name for subscription in subscriptions]
187192 ['subscription_name']
188193
189194List all subscriptions for the default project:
190195
191196.. doctest ::
192197
193- >>> from gcloud.pubsub import list_subscriptions
194- >>> subscription, next_page_tokens = list_subscriptions() # API request
198+ >>> from gcloud import pubsub
199+ >>> client = pubsub.Client()
200+ >>> subscription, next_page_tokens = client.list_subscriptions() # API request
195201 >>> [subscription.name for subscription in subscriptions]
196202 ['subscription_name']
197203
198204Delete a subscription:
199205
200206.. doctest ::
201207
202- >>> from gcloud.pubsub import Topic
203- >>> from gcloud.pubsub import Subscription
204- >>> topic = Topic (' topic_name' )
205- >>> subscription = Subscription(' subscription_name' , topic)
208+ >>> from gcloud import pubsub
209+ >>> client = pubsub.Client()
210+ >>> topic = client.topic (' topic_name' )
211+ >>> subscription = pubsub. Subscription(' subscription_name' , topic)
206212 >>> subscription.delete() # API request
207213
208214
@@ -213,13 +219,13 @@ Fetch pending messages for a pull subscription:
213219
214220.. doctest ::
215221
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' ,
222+ >>> from gcloud import pubsub
223+ >>> client = pubsub.Client()
224+ >>> topic = client.topic (' topic_name' )
225+ >>> subscription = pubsub. Subscription(' subscription_name' , topic)
226+ >>> with topic.batch() as batch :
227+ ... batch .publish(' this is the first message_payload' )
228+ ... batch .publish(' this is the second message_payload' ,
223229 ... attr1= ' value1' , attr2= ' value2' )
224230 >>> received = subscription.pull() # API request
225231 >>> messages = [recv[1 ] for recv in received]
@@ -242,13 +248,13 @@ Fetch a limited number of pending messages for a pull subscription:
242248
243249.. doctest ::
244250
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' ,
251+ >>> from gcloud import pubsub
252+ >>> client = pubsub.Client()
253+ >>> topic = client.topic (' topic_name' )
254+ >>> subscription = pubsub. Subscription(' subscription_name' , topic)
255+ >>> with topic.batch() as batch :
256+ ... batch .publish(' this is the first message_payload' )
257+ ... batch .publish(' this is the second message_payload' ,
252258 ... attr1= ' value1' , attr2= ' value2' )
253259 >>> received = subscription.pull(max_messages = 1 ) # API request
254260 >>> messages = [recv[1 ] for recv in received]
@@ -258,10 +264,10 @@ Fetch messages for a pull subscription without blocking (none pending):
258264
259265.. doctest ::
260266
261- >>> from gcloud.pubsub import Topic
262- >>> from gcloud.pubsub import Subscription
263- >>> topic = Topic (' topic_name' )
264- >>> subscription = Subscription(' subscription_name' , topic)
267+ >>> from gcloud import pubsub
268+ >>> client = pubsub.Client()
269+ >>> topic = client.topic (' topic_name' )
270+ >>> subscription = pubsub. Subscription(' subscription_name' , topic)
265271 >>> received = subscription.pull(max_messages = 1 ) # API request
266272 >>> messages = [recv[1 ] for recv in received]
267273 >>> [message.id for message in messages]
0 commit comments