Refine search
/** Example of creating a pull subscription for a topic. */ public Subscription createSubscription(String topicId, String subscriptionId) throws Exception { // [START pubsub_create_pull_subscription] try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { // eg. projectId = "my-test-project", topicId = "my-test-topic" ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId); // eg. subscriptionId = "my-test-subscription" ProjectSubscriptionName subscriptionName = ProjectSubscriptionName.of(projectId, subscriptionId); // create a pull subscription with default acknowledgement deadline Subscription subscription = subscriptionAdminClient.createSubscription( subscriptionName, topicName, PushConfig.getDefaultInstance(), 0); return subscription; } // [END pubsub_create_pull_subscription] }
/** Example of deleting a subscription. */ public ProjectSubscriptionName deleteSubscription(String subscriptionId) throws Exception { // [START pubsub_delete_subscription] try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { ProjectSubscriptionName subscriptionName = ProjectSubscriptionName.of(projectId, subscriptionId); subscriptionAdminClient.deleteSubscription(subscriptionName); return subscriptionName; } // [END pubsub_delete_subscription] }
/** Example of getting a subscription. */ public Subscription getSubscription(String subscriptionId) throws Exception { // [START pubsub_get_subscription] try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { ProjectSubscriptionName subscriptionName = ProjectSubscriptionName.of(projectId, subscriptionId); Subscription subscription = subscriptionAdminClient.getSubscription(subscriptionName); return subscription; } // [END pubsub_get_subscription] } }
/** Example of getting a subscription policy. */ public Policy getSubscriptionPolicy(String subscriptionId) throws Exception { // [START pubsub_get_subscription_policy] try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { ProjectSubscriptionName subscriptionName = ProjectSubscriptionName.of(projectId, subscriptionId); Policy policy = subscriptionAdminClient.getIamPolicy(subscriptionName.toString()); if (policy == null) { // subscription was not found } return policy; } // [END pubsub_get_subscription_policy] }
/** Constructs an instance of SubscriptionAdminClient with default settings. */ public static final SubscriptionAdminClient create() throws IOException { return create(SubscriptionAdminSettings.newBuilder().build()); }
/** Example of replacing a subscription policy. */ public Policy replaceSubscriptionPolicy(String subscriptionId) throws Exception { // [START pubsub_set_subscription_policy] try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { ProjectSubscriptionName subscriptionName = ProjectSubscriptionName.of(projectId, subscriptionId); Policy policy = subscriptionAdminClient.getIamPolicy(subscriptionName.toString()); // Create a role => members binding Binding binding = Binding.newBuilder() .setRole(Role.viewer().toString()) .addMembers(Identity.allAuthenticatedUsers().toString()) .build(); // Update policy Policy updatedPolicy = policy.toBuilder().addBindings(binding).build(); updatedPolicy = subscriptionAdminClient.setIamPolicy(subscriptionName.toString(), updatedPolicy); return updatedPolicy; } // [END pubsub_set_subscription_policy] }
@Test public void testVPCPushSubscriber() throws Exception { assumeTrue(IS_VPC_TEST); ProjectTopicName topicName = ProjectTopicName.of(projectId, formatForTest("testing-vpc-push-subscriber-topic")); ProjectSubscriptionName subscriptionName = ProjectSubscriptionName.of( projectId, formatForTest("testing-vpc-push-subscriber-subscription")); topicAdminClient.createTopic(topicName); try { subscriptionAdminClient.createSubscription( subscriptionName, topicName, PushConfig.newBuilder().setPushEndpoint("random_point").build(), 10); subscriptionAdminClient.deleteSubscription(subscriptionName); Assert.fail("No exception raised"); } catch (PermissionDeniedException e) { // expected } topicAdminClient.deleteTopic(topicName); }
/** Example of listing subscriptions. */ public ListSubscriptionsPagedResponse listSubscriptions() throws Exception { // [START pubsub_list_subscriptions] try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { ListSubscriptionsRequest listSubscriptionsRequest = ListSubscriptionsRequest.newBuilder() .setProject(ProjectName.of(projectId).toString()) .build(); ListSubscriptionsPagedResponse response = subscriptionAdminClient.listSubscriptions(listSubscriptionsRequest); Iterable<Subscription> subscriptions = response.iterateAll(); for (Subscription subscription : subscriptions) { // do something with the subscription } return response; } // [END pubsub_list_subscriptions] }
/** Example of replacing the push configuration of a subscription, setting the push endpoint. */ public void replacePushConfig(String subscriptionId, String endpoint) throws Exception { // [START pubsub_update_push_configuration] try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { ProjectSubscriptionName subscriptionName = ProjectSubscriptionName.of(projectId, subscriptionId); PushConfig pushConfig = PushConfig.newBuilder().setPushEndpoint(endpoint).build(); subscriptionAdminClient.modifyPushConfig(subscriptionName, pushConfig); } // [END pubsub_update_push_configuration] }
.setAckDeadlineSeconds(ackDeadlineSeconds) .build(); return createSubscription(request);
.setRetainAckedMessages(retainAckedMessages) .build(); mockSubscriber.addResponse(expectedResponse); client.createSubscription(name, topic, pushConfig, ackDeadlineSeconds); Assert.assertEquals(expectedResponse, actualResponse); List<GeneratedMessageV3> actualRequests = mockSubscriber.getRequests(); Assert.assertEquals(1, actualRequests.size()); Subscription actualRequest = (Subscription) actualRequests.get(0);
/** * Gets the configuration details of a subscription. * * <p>Sample code: * * <pre><code> * try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { * ProjectSubscriptionName subscription = ProjectSubscriptionName.of("[PROJECT]", "[SUBSCRIPTION]"); * Subscription response = subscriptionAdminClient.getSubscription(subscription.toString()); * } * </code></pre> * * @param subscription The name of the subscription to get. Format is * `projects/{project}/subscriptions/{sub}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ public final Subscription getSubscription(String subscription) { GetSubscriptionRequest request = GetSubscriptionRequest.newBuilder().setSubscription(subscription).build(); return getSubscription(request); }
/** * Lists matching subscriptions. * * <p>Sample code: * * <pre><code> * try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { * ProjectName project = ProjectName.of("[PROJECT]"); * for (Subscription element : subscriptionAdminClient.listSubscriptions(project.toString()).iterateAll()) { * // doThingsWith(element); * } * } * </code></pre> * * @param project The name of the project in which to list subscriptions. Format is * `projects/{project-id}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ public final ListSubscriptionsPagedResponse listSubscriptions(String project) { ListSubscriptionsRequest request = ListSubscriptionsRequest.newBuilder().setProject(project).build(); return listSubscriptions(request); }
/** * Deletes an existing subscription. All messages retained in the subscription are immediately * dropped. Calls to `Pull` after deletion will return `NOT_FOUND`. After a subscription is * deleted, a new one may be created with the same name, but the new one has no association with * the old subscription or its topic unless the same topic is specified. * * <p>Sample code: * * <pre><code> * try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { * ProjectSubscriptionName subscription = ProjectSubscriptionName.of("[PROJECT]", "[SUBSCRIPTION]"); * subscriptionAdminClient.deleteSubscription(subscription.toString()); * } * </code></pre> * * @param subscription The subscription to delete. Format is * `projects/{project}/subscriptions/{sub}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ public final void deleteSubscription(String subscription) { DeleteSubscriptionRequest request = DeleteSubscriptionRequest.newBuilder().setSubscription(subscription).build(); deleteSubscription(request); }
@Test @SuppressWarnings("all") public void createSubscriptionExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockSubscriber.addException(exception); try { ProjectSubscriptionName name = ProjectSubscriptionName.of("[PROJECT]", "[SUBSCRIPTION]"); ProjectTopicName topic = ProjectTopicName.of("[PROJECT]", "[TOPIC]"); PushConfig pushConfig = PushConfig.newBuilder().build(); int ackDeadlineSeconds = 2135351438; client.createSubscription(name, topic, pushConfig, ackDeadlineSeconds); Assert.fail("No exception raised"); } catch (InvalidArgumentException e) { // Expected exception } }
@Test @SuppressWarnings("all") public void deleteSubscriptionTest() { Empty expectedResponse = Empty.newBuilder().build(); mockSubscriber.addResponse(expectedResponse); ProjectSubscriptionName subscription = ProjectSubscriptionName.of("[PROJECT]", "[SUBSCRIPTION]"); client.deleteSubscription(subscription); List<GeneratedMessageV3> actualRequests = mockSubscriber.getRequests(); Assert.assertEquals(1, actualRequests.size()); DeleteSubscriptionRequest actualRequest = (DeleteSubscriptionRequest) actualRequests.get(0); Assert.assertEquals( subscription, ProjectSubscriptionName.parse(actualRequest.getSubscription())); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern())); }
@Test @SuppressWarnings("all") public void listSubscriptionsTest() { String nextPageToken = ""; Subscription subscriptionsElement = Subscription.newBuilder().build(); List<Subscription> subscriptions = Arrays.asList(subscriptionsElement); ListSubscriptionsResponse expectedResponse = ListSubscriptionsResponse.newBuilder() .setNextPageToken(nextPageToken) .addAllSubscriptions(subscriptions) .build(); mockSubscriber.addResponse(expectedResponse); ProjectName project = ProjectName.of("[PROJECT]"); ListSubscriptionsPagedResponse pagedListResponse = client.listSubscriptions(project); List<Subscription> resources = Lists.newArrayList(pagedListResponse.iterateAll()); Assert.assertEquals(1, resources.size()); Assert.assertEquals(expectedResponse.getSubscriptionsList().get(0), resources.get(0)); List<GeneratedMessageV3> actualRequests = mockSubscriber.getRequests(); Assert.assertEquals(1, actualRequests.size()); ListSubscriptionsRequest actualRequest = (ListSubscriptionsRequest) actualRequests.get(0); Assert.assertEquals(project, ProjectName.parse(actualRequest.getProject())); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern())); }
@Test @SuppressWarnings("all") public void getSubscriptionTest() { ProjectSubscriptionName name = ProjectSubscriptionName.of("[PROJECT]", "[SUBSCRIPTION]"); TopicName topic = ProjectTopicName.of("[PROJECT]", "[TOPIC]"); int ackDeadlineSeconds = 2135351438; boolean retainAckedMessages = false; Subscription expectedResponse = Subscription.newBuilder() .setName(name.toString()) .setTopic(topic.toString()) .setAckDeadlineSeconds(ackDeadlineSeconds) .setRetainAckedMessages(retainAckedMessages) .build(); mockSubscriber.addResponse(expectedResponse); ProjectSubscriptionName subscription = ProjectSubscriptionName.of("[PROJECT]", "[SUBSCRIPTION]"); Subscription actualResponse = client.getSubscription(subscription); Assert.assertEquals(expectedResponse, actualResponse); List<GeneratedMessageV3> actualRequests = mockSubscriber.getRequests(); Assert.assertEquals(1, actualRequests.size()); GetSubscriptionRequest actualRequest = (GetSubscriptionRequest) actualRequests.get(0); Assert.assertEquals( subscription, ProjectSubscriptionName.parse(actualRequest.getSubscription())); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern())); }
@Test @SuppressWarnings("all") public void listSubscriptionsExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockSubscriber.addException(exception); try { ProjectName project = ProjectName.of("[PROJECT]"); client.listSubscriptions(project); Assert.fail("No exception raised"); } catch (InvalidArgumentException e) { // Expected exception } }
@Test @SuppressWarnings("all") public void getSubscriptionExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockSubscriber.addException(exception); try { ProjectSubscriptionName subscription = ProjectSubscriptionName.of("[PROJECT]", "[SUBSCRIPTION]"); client.getSubscription(subscription); Assert.fail("No exception raised"); } catch (InvalidArgumentException e) { // Expected exception } }