@@ -53,35 +53,61 @@ public String getProjectId() {
5353 }
5454
5555 /** Example of creating a pull subscription for a topic. */
56- public Subscription createSubscription (String topic , String subscriptionId ) throws Exception {
56+ public Subscription createSubscription (String topicId , String subscriptionId ) throws Exception {
57+ // [START createSubscription]
5758 try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient .create ()) {
58- // [START createSubscription]
59- TopicName topicName = TopicName .create (projectId , topic );
59+ // eg. projectId = "my-test-project", topicId = "my-test-topic"
60+ TopicName topicName = TopicName .create (projectId , topicId );
61+ // eg. subscriptionId = "my-test-subscription"
6062 SubscriptionName subscriptionName =
6163 SubscriptionName .create (projectId , subscriptionId );
64+ // create a pull subscription with default acknowledgement deadline
6265 Subscription subscription =
6366 subscriptionAdminClient .createSubscription (
6467 subscriptionName , topicName , PushConfig .getDefaultInstance (), 0 );
65- // [END createSubscription]
6668 return subscription ;
6769 }
70+ // [END createSubscription]
71+ }
72+
73+ /** Example of creating a subscription with a push endpoint. */
74+ public Subscription createSubscriptionWithPushEndpoint (String topicId , String subscriptionId , String endpoint )
75+ throws Exception {
76+ // [START createSubscriptionWithPushEndpoint]
77+ try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient .create ()) {
78+ TopicName topicName = TopicName .create (projectId , topicId );
79+ SubscriptionName subscriptionName =
80+ SubscriptionName .create (projectId , subscriptionId );
81+
82+ // eg. endpoint = "https://my-test-project.appspot.com/push"
83+ PushConfig pushConfig = PushConfig .newBuilder ().setPushEndpoint (endpoint ).build ();
84+
85+ // acknowledgement deadline in seconds for the message received over the push endpoint
86+ int ackDeadlineInSeconds = 10 ;
87+
88+ Subscription subscription =
89+ subscriptionAdminClient .createSubscription (
90+ subscriptionName , topicName , pushConfig , ackDeadlineInSeconds );
91+ return subscription ;
92+ }
93+ // [END createSubscriptionWithPushEndpoint]
6894 }
6995
7096 /** Example of replacing the push configuration of a subscription, setting the push endpoint. */
7197 public void replacePushConfig (String subscriptionId , String endpoint ) throws Exception {
98+ // [START replacePushConfig]
7299 try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient .create ()) {
73- // [START replacePushConfig]
74100 SubscriptionName subscriptionName = SubscriptionName .create (projectId , subscriptionId );
75101 PushConfig pushConfig = PushConfig .newBuilder ().setPushEndpoint (endpoint ).build ();
76102 subscriptionAdminClient .modifyPushConfig (subscriptionName , pushConfig );
77- // [END replacePushConfig]
78103 }
104+ // [END replacePushConfig]
79105 }
80106
81107 /** Example of listing subscriptions. */
82108 public ListSubscriptionsPagedResponse listSubscriptions () throws Exception {
109+ // [START listSubscriptions]
83110 try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient .create ()) {
84- // [START listSubscriptions]
85111 ListSubscriptionsRequest listSubscriptionsRequest =
86112 ListSubscriptionsRequest .newBuilder ()
87113 .setProjectWithProjectName (ProjectName .create (projectId ))
@@ -92,40 +118,40 @@ public ListSubscriptionsPagedResponse listSubscriptions() throws Exception {
92118 for (Subscription subscription : subscriptions ) {
93119 // do something with the subscription
94120 }
95- // [END listSubscriptions]
96121 return response ;
97122 }
123+ // [END listSubscriptions]
98124 }
99125
100126 /** Example of deleting a subscription. */
101127 public SubscriptionName deleteSubscription (String subscriptionId ) throws Exception {
128+ // [START deleteSubscription]
102129 try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient .create ()) {
103- // [START deleteSubscription]
104130 SubscriptionName subscriptionName = SubscriptionName .create (projectId , subscriptionId );
105131 subscriptionAdminClient .deleteSubscription (subscriptionName );
106- // [END deleteSubscription]
107132 return subscriptionName ;
108133 }
134+ // [END deleteSubscription]
109135 }
110136
111137 /** Example of getting a subscription policy. */
112138 public Policy getSubscriptionPolicy (String subscriptionId ) throws Exception {
139+ // [START getSubscriptionPolicy]
113140 try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient .create ()) {
114- // [START getSubscriptionPolicy]
115141 SubscriptionName subscriptionName = SubscriptionName .create (projectId , subscriptionId );
116142 Policy policy = subscriptionAdminClient .getIamPolicy (subscriptionName .toString ());
117143 if (policy == null ) {
118144 // subscription was not found
119145 }
120- // [END getSubscriptionPolicy]
121146 return policy ;
122147 }
148+ // [END getSubscriptionPolicy]
123149 }
124150
125151 /** Example of replacing a subscription policy. */
126152 public Policy replaceSubscriptionPolicy (String subscriptionId ) throws Exception {
153+ // [START replaceSubscriptionPolicy]
127154 try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient .create ()) {
128- // [START replaceSubscriptionPolicy]
129155 SubscriptionName subscriptionName = SubscriptionName .create (projectId , subscriptionId );
130156 Policy policy = subscriptionAdminClient .getIamPolicy (subscriptionName .toString ());
131157 // Create a role => members binding
@@ -138,34 +164,34 @@ public Policy replaceSubscriptionPolicy(String subscriptionId) throws Exception
138164 Policy updatedPolicy = policy .toBuilder ().addBindings (binding ).build ();
139165
140166 updatedPolicy = subscriptionAdminClient .setIamPolicy (subscriptionName .toString (), updatedPolicy );
141- // [END replaceSubscriptionPolicy]
142167 return updatedPolicy ;
143168 }
169+ // [END replaceSubscriptionPolicy]
144170 }
145171
146172 /** Example of testing whether the caller has the provided permissions on a subscription. */
147173 public TestIamPermissionsResponse testSubscriptionPermissions (String subscriptionId )
148174 throws Exception {
175+ // [START testSubscriptionPermissions]
149176 try (TopicAdminClient topicAdminClient = TopicAdminClient .create ()) {
150- // [START testSubscriptionPermissions]
151177 List <String > permissions = new LinkedList <>();
152178 permissions .add ("pubsub.subscriptions.get" );
153179 SubscriptionName subscriptionName = SubscriptionName .create (projectId , subscriptionId );
154180 TestIamPermissionsResponse testedPermissions =
155181 topicAdminClient .testIamPermissions (subscriptionName .toString (), permissions );
156- // [END testSubscriptionPermissions]
157182 return testedPermissions ;
158183 }
184+ // [END testSubscriptionPermissions]
159185 }
160186
161187 /** Example of getting a subscription. */
162188 public Subscription getSubscription (String subscriptionId ) throws Exception {
189+ // [START getSubscription]
163190 try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient .create ()) {
164- // [START getSubscription]
165191 SubscriptionName subscriptionName = SubscriptionName .create (projectId , subscriptionId );
166192 Subscription subscription = subscriptionAdminClient .getSubscription (subscriptionName );
167- // [END getSubscription]
168193 return subscription ;
169194 }
195+ // [END getSubscription]
170196 }
171197}
0 commit comments