diff --git a/README.md b/README.md index 3c9afabab..7f0e4ad6e 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.25.0') +implementation platform('com.google.cloud:libraries-bom:26.26.0') implementation 'com.google.cloud:google-cloud-pubsub' ``` @@ -248,6 +248,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-pubsub/tree/m | Commit Proto Schema Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CommitProtoSchemaExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CommitProtoSchemaExample.java) | | Create Avro Schema Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateAvroSchemaExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateAvroSchemaExample.java) | | Create Big Query Subscription Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateBigQuerySubscriptionExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateBigQuerySubscriptionExample.java) | +| Create Cloud Storage Subscription Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateCloudStorageSubscriptionExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateCloudStorageSubscriptionExample.java) | | Create Proto Schema Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateProtoSchemaExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateProtoSchemaExample.java) | | Create Pull Subscription Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreatePullSubscriptionExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreatePullSubscriptionExample.java) | | Create Push No Wrapper Subscription Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreatePushNoWrapperSubscriptionExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreatePushNoWrapperSubscriptionExample.java) | diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 028fa76bb..32ca4d9d1 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -88,6 +88,11 @@ google-cloud-bigquery 2.33.2 + + com.google.cloud + google-cloud-storage + 2.28.0 + diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 56854db45..46d001c4c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -87,6 +87,11 @@ google-cloud-bigquery 2.33.2 + + com.google.cloud + google-cloud-storage + 2.28.0 + diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 6aca9545c..fcdb72865 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -63,6 +63,10 @@ com.google.cloud google-cloud-bigquery + + com.google.cloud + google-cloud-storage + org.apache.avro avro diff --git a/samples/snippets/src/main/java/pubsub/CreateCloudStorageSubscriptionExample.java b/samples/snippets/src/main/java/pubsub/CreateCloudStorageSubscriptionExample.java new file mode 100644 index 000000000..654ba3857 --- /dev/null +++ b/samples/snippets/src/main/java/pubsub/CreateCloudStorageSubscriptionExample.java @@ -0,0 +1,78 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package pubsub; + +// [START pubsub_create_cloud_storage_subscription] +import com.google.cloud.pubsub.v1.SubscriptionAdminClient; +import com.google.protobuf.Duration; +import com.google.pubsub.v1.CloudStorageConfig; +import com.google.pubsub.v1.ProjectSubscriptionName; +import com.google.pubsub.v1.ProjectTopicName; +import com.google.pubsub.v1.Subscription; +import java.io.IOException; + +public class CreateCloudStorageSubscriptionExample { + public static void main(String... args) throws Exception { + // TODO(developer): Replace these variables before running the sample. + String projectId = "your-project-id"; + String topicId = "your-topic-id"; + String subscriptionId = "your-subscription-id"; + String bucket = "your-bucket"; + String filenamePrefix = "log_events_"; + String filenameSuffix = ".text"; + Duration maxDuration = Duration.newBuilder().setSeconds(300).build(); + + createCloudStorageSubscription( + projectId, topicId, subscriptionId, bucket, filenamePrefix, filenameSuffix, maxDuration); + } + + public static void createCloudStorageSubscription( + String projectId, + String topicId, + String subscriptionId, + String bucket, + String filenamePrefix, + String filenameSuffix, + Duration maxDuration) + throws IOException { + try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { + + ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId); + ProjectSubscriptionName subscriptionName = + ProjectSubscriptionName.of(projectId, subscriptionId); + + CloudStorageConfig cloudStorageConfig = + CloudStorageConfig.newBuilder() + .setBucket(bucket) + .setFilenamePrefix(filenamePrefix) + .setFilenameSuffix(filenameSuffix) + .setMaxDuration(maxDuration) + .build(); + + Subscription subscription = + subscriptionAdminClient.createSubscription( + Subscription.newBuilder() + .setName(subscriptionName.toString()) + .setTopic(topicName.toString()) + .setCloudStorageConfig(cloudStorageConfig) + .build()); + + System.out.println("Created a CloudStorage subscription: " + subscription.getAllFields()); + } + } +} +// [END pubsub_create_cloud_storage_subscription]