@@ -58,6 +58,26 @@ def create_subscription(project, topic_name, subscription_name):
5858 print ('Subscription created: {}' .format (subscription ))
5959
6060
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+
6181def delete_subscription (project , subscription_name ):
6282 """Deletes an existing Pub/Sub topic."""
6383 subscriber = pubsub_v1 .SubscriberClient ()
@@ -153,6 +173,12 @@ def callback(message):
153173 create_parser .add_argument ('topic_name' )
154174 create_parser .add_argument ('subscription_name' )
155175
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+
156182 delete_parser = subparsers .add_parser (
157183 'delete' , help = delete_subscription .__doc__ )
158184 delete_parser .add_argument ('subscription_name' )
@@ -179,6 +205,12 @@ def callback(message):
179205 elif args .command == 'create' :
180206 create_subscription (
181207 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 )
182214 elif args .command == 'delete' :
183215 delete_subscription (
184216 args .project , args .subscription_name )
0 commit comments