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 to the PubSub service.
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: `from_service_account_json <gcloud.pubsub.client.Client.from_service_account_json> `
16+ and
17+ :meth: `from_service_account_p12 <gcloud.pubsub.client.Client.from_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,98 @@ 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' , topic,
135+ ... ack_deadline= 90 )
133136 >>> subscription.create() # API request
134137
135138Create a new push subscription for a topic:
136139
137140.. doctest ::
138141
142+ >>> from gcloud import pubsub
139143 >>> 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 )
144+ >>> client = pubsub.Client()
145+ >>> topic = client.topic( ' topic_name ' )
146+ >>> subscription = pubsub.Subscription( ' subscription_name ' , topic,
147+ ... push_endpoint= ENDPOINT )
144148 >>> subscription.create() # API request
145149
146150Check for the existence of a subscription:
147151
148152.. doctest ::
149153
150- >>> from gcloud.pubsub import Topic
151- >>> from gcloud.pubsub import Subscription
152- >>> topic = Topic (' topic_name' )
153- >>> subscription = Subscription(' subscription_name' , topic)
154+ >>> from gcloud import pubsub
155+ >>> client = pubsub.Client()
156+ >>> topic = client.topic (' topic_name' )
157+ >>> subscription = pubsub. Subscription(' subscription_name' , topic)
154158 >>> subscription.exists() # API request
155159 True
156160
157161Convert a pull subscription to push:
158162
159163.. doctest ::
160164
165+ >>> from gcloud import pubsub
161166 >>> 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)
167+ >>> client = pubsub.Client()
168+ >>> topic = client.topic(' topic_name' )
169+ >>> subscription = pubsub.Subscription(' subscription_name' , topic)
166170 >>> subscription.modify_push_configuration(push_endpoint = ENDPOINT ) # API request
167171
168172Convert a push subscription to pull:
169173
170174.. doctest ::
171175
176+ >>> from gcloud import pubsub
172177 >>> 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 )
178+ >>> client = pubsub.Client()
179+ >>> topic = client.topic (' topic_name' )
180+ >>> subscription = pubusb. Subscription(' subscription_name' , topic,
181+ ... push_endpoint= ENDPOINT )
177182 >>> subscription.modify_push_configuration(push_endpoint = None ) # API request
178183
179184List subscriptions for a topic:
180185
181186.. doctest ::
182187
183- >>> from gcloud.pubsub import Topic
184- >>> topic = Topic(' topic_name' )
185- >>> subscriptions, next_page_token = topic.list_subscriptions() # API request
188+ >>> from gcloud import pubsub
189+ >>> client = pubsub.Client()
190+ >>> subscriptions, next_page_token = client.list_subscriptions(
191+ ... topic_name= ' topic_name' ) # API request
186192 >>> [subscription.name for subscription in subscriptions]
187193 ['subscription_name']
188194
189195List all subscriptions for the default project:
190196
191197.. doctest ::
192198
193- >>> from gcloud.pubsub import list_subscriptions
194- >>> subscription, next_page_tokens = list_subscriptions() # API request
199+ >>> from gcloud import pubsub
200+ >>> client = pubsub.Client()
201+ >>> subscription, next_page_tokens = client.list_subscriptions() # API request
195202 >>> [subscription.name for subscription in subscriptions]
196203 ['subscription_name']
197204
198205Delete a subscription:
199206
200207.. doctest ::
201208
202- >>> from gcloud.pubsub import Topic
203- >>> from gcloud.pubsub import Subscription
204- >>> topic = Topic (' topic_name' )
205- >>> subscription = Subscription(' subscription_name' , topic)
209+ >>> from gcloud import pubsub
210+ >>> client = pubsub.Client()
211+ >>> topic = client.topic (' topic_name' )
212+ >>> subscription = pubsub. Subscription(' subscription_name' , topic)
206213 >>> subscription.delete() # API request
207214
208215
@@ -213,13 +220,13 @@ Fetch pending messages for a pull subscription:
213220
214221.. doctest ::
215222
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' ,
223+ >>> from gcloud import pubsub
224+ >>> client = pubsub.Client()
225+ >>> topic = client.topic (' topic_name' )
226+ >>> subscription = pubsub. Subscription(' subscription_name' , topic)
227+ >>> with topic.batch() as batch :
228+ ... batch .publish(' this is the first message_payload' )
229+ ... batch .publish(' this is the second message_payload' ,
223230 ... attr1= ' value1' , attr2= ' value2' )
224231 >>> received = subscription.pull() # API request
225232 >>> messages = [recv[1 ] for recv in received]
@@ -242,13 +249,13 @@ Fetch a limited number of pending messages for a pull subscription:
242249
243250.. doctest ::
244251
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' ,
252+ >>> from gcloud import pubsub
253+ >>> client = pubsub.Client()
254+ >>> topic = client.topic (' topic_name' )
255+ >>> subscription = pubsub. Subscription(' subscription_name' , topic)
256+ >>> with topic.batch() as batch :
257+ ... batch .publish(' this is the first message_payload' )
258+ ... batch .publish(' this is the second message_payload' ,
252259 ... attr1= ' value1' , attr2= ' value2' )
253260 >>> received = subscription.pull(max_messages = 1 ) # API request
254261 >>> messages = [recv[1 ] for recv in received]
@@ -258,10 +265,10 @@ Fetch messages for a pull subscription without blocking (none pending):
258265
259266.. doctest ::
260267
261- >>> from gcloud.pubsub import Topic
262- >>> from gcloud.pubsub import Subscription
263- >>> topic = Topic (' topic_name' )
264- >>> subscription = Subscription(' subscription_name' , topic)
268+ >>> from gcloud import pubsub
269+ >>> client = pubsub.Client()
270+ >>> topic = client.topic (' topic_name' )
271+ >>> subscription = pubsub. Subscription(' subscription_name' , topic)
265272 >>> received = subscription.pull(max_messages = 1 ) # API request
266273 >>> messages = [recv[1 ] for recv in received]
267274 >>> [message.id for message in messages]
0 commit comments