@@ -58,6 +58,26 @@ def create_subscription(project, topic_name, subscription_name):
58
58
print ('Subscription created: {}' .format (subscription ))
59
59
60
60
61
+ def create_push_subscription (project ,
62
+ topic_name ,
63
+ subscription_name ,
64
+ endpoint ):
65
+ """Create a new push subscription on the given topic."""
66
+ subscriber = pubsub_v1 .SubscriberClient ()
67
+ topic_path = subscriber .topic_path (project , topic_name )
68
+ subscription_path = subscriber .subscription_path (
69
+ project , subscription_name )
70
+
71
+ push_config = pubsub_v1 .types .PushConfig (
72
+ push_endpoint = endpoint )
73
+
74
+ subscription = subscriber .create_subscription (
75
+ subscription_path , topic_path , push_config )
76
+
77
+ print ('Push subscription created: {}' .format (subscription ))
78
+ print ('Endpoint for subscription is: {}' .format (endpoint ))
79
+
80
+
61
81
def delete_subscription (project , subscription_name ):
62
82
"""Deletes an existing Pub/Sub topic."""
63
83
subscriber = pubsub_v1 .SubscriberClient ()
@@ -153,6 +173,12 @@ def callback(message):
153
173
create_parser .add_argument ('topic_name' )
154
174
create_parser .add_argument ('subscription_name' )
155
175
176
+ create_push_parser = subparsers .add_parser (
177
+ 'create-push' , help = create_push_subscription .__doc__ )
178
+ create_push_parser .add_argument ('topic_name' )
179
+ create_push_parser .add_argument ('subscription_name' )
180
+ create_push_parser .add_argument ('endpoint' )
181
+
156
182
delete_parser = subparsers .add_parser (
157
183
'delete' , help = delete_subscription .__doc__ )
158
184
delete_parser .add_argument ('subscription_name' )
@@ -179,6 +205,12 @@ def callback(message):
179
205
elif args .command == 'create' :
180
206
create_subscription (
181
207
args .project , args .topic_name , args .subscription_name )
208
+ elif args .command == 'create-push' :
209
+ create_push_subscription (
210
+ args .project ,
211
+ args .topic_name ,
212
+ args .subscription_name ,
213
+ args .endpoint )
182
214
elif args .command == 'delete' :
183
215
delete_subscription (
184
216
args .project , args .subscription_name )
0 commit comments