/** 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 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 creating a subscription with a push endpoint. */ public Subscription createSubscriptionWithPushEndpoint( String topicId, String subscriptionId, String endpoint) throws Exception { // [START pubsub_create_push_subscription] try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId); ProjectSubscriptionName subscriptionName = ProjectSubscriptionName.of(projectId, subscriptionId); // eg. endpoint = "https://my-test-project.appspot.com/push" PushConfig pushConfig = PushConfig.newBuilder().setPushEndpoint(endpoint).build(); // acknowledgement deadline in seconds for the message received over the push endpoint int ackDeadlineInSeconds = 10; Subscription subscription = subscriptionAdminClient.createSubscription( subscriptionName, topicName, pushConfig, ackDeadlineInSeconds); return subscription; } // [END pubsub_create_push_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] }
ProjectSubscriptionName.of("my-project-id", "my-subscription-id"); try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { subscriptionAdminClient.createSubscription( subscription, topic, PushConfig.getDefaultInstance(), 0);
/** Constructs an instance of SubscriptionAdminClient with default settings. */ public static final SubscriptionAdminClient create() throws IOException { return create(SubscriptionAdminSettings.newBuilder().build()); }
/** * Creates and returns a Pub/Sub subscription object listening to the Occurrence topic * @param subId the identifier you want to associate with the subscription * @param projectId the GCP project to create the subscription under * @throws IOException thrown on errors with the subscription client * @throws StatusRuntimeException if subscription already exists * */ public static Subscription createOccurrenceSubscription(String subId, String projectId) throws IOException, StatusRuntimeException { // This topic id will automatically receive messages when Occurrences are added or modified String topicId = "container-analysis-occurrences-v1beta1"; SubscriptionAdminClient client = SubscriptionAdminClient.create(); PushConfig config = PushConfig.getDefaultInstance(); ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId); ProjectSubscriptionName subName = ProjectSubscriptionName.of(projectId, subId); Subscription sub = client.createSubscription(subName, topicName, config, 0); return sub; } // [END pubsub]
/** 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] }
try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) {
/** 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] }
@BeforeClass public static void setupClass() throws Exception { topicAdminClient = TopicAdminClient.create(); subscriptionAdminClient = SubscriptionAdminClient.create(); projectId = ServiceOptions.getDefaultProjectId(); }
/** 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] }
@Before public void setUp() throws IOException { serviceHelper.reset(); channelProvider = serviceHelper.createChannelProvider(); SubscriptionAdminSettings settings = SubscriptionAdminSettings.newBuilder() .setTransportChannelProvider(channelProvider) .setCredentialsProvider(NoCredentialsProvider.create()) .build(); client = SubscriptionAdminClient.create(settings); }
/** 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] }
@Bean @ConditionalOnMissingBean public SubscriptionAdminClient subscriptionAdminClient( TransportChannelProvider transportChannelProvider) { try { return SubscriptionAdminClient.create( SubscriptionAdminSettings.newBuilder() .setCredentialsProvider(this.finalCredentialsProvider) .setHeaderProvider(this.headerProvider) .setTransportChannelProvider(transportChannelProvider) .build()); } catch (IOException ioe) { throw new PubSubException("An error occurred while creating SubscriptionAdminClient.", ioe); } }
/** * This constructor instantiates TopicAdminClient and SubscriptionAdminClient with all their * defaults and the provided credentials provider. * @param projectIdProvider the project id provider to use * @param credentialsProvider the credentials provider to use * @throws IOException thrown when there are errors in contacting Google Cloud Pub/Sub */ public PubSubAdmin(GcpProjectIdProvider projectIdProvider, CredentialsProvider credentialsProvider) throws IOException { this(projectIdProvider, TopicAdminClient.create( TopicAdminSettings.newBuilder() .setCredentialsProvider(credentialsProvider) .build()), SubscriptionAdminClient.create( SubscriptionAdminSettings.newBuilder() .setCredentialsProvider(credentialsProvider) .build())); }
/** * This constructor instantiates TopicAdminClient and SubscriptionAdminClient with all their * defaults and the provided credentials provider. * @param projectIdProvider the project id provider to use * @param credentialsProvider the credentials provider to use * @throws IOException thrown when there are errors in contacting Google Cloud Pub/Sub */ public PubSubAdmin(GcpProjectIdProvider projectIdProvider, CredentialsProvider credentialsProvider) throws IOException { this(projectIdProvider, TopicAdminClient.create( TopicAdminSettings.newBuilder() .setCredentialsProvider(credentialsProvider) .build()), SubscriptionAdminClient.create( SubscriptionAdminSettings.newBuilder() .setCredentialsProvider(credentialsProvider) .build())); }