From 32286ccdff4e39afbb4a4bf1602f735ac119f43f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 24 Feb 2021 14:52:09 -0800 Subject: [PATCH] feat: added topic field to Secret (#389) PiperOrigin-RevId: 359285402 Source-Author: Google APIs Source-Date: Wed Feb 24 07:59:50 2021 -0800 Source-Repo: googleapis/googleapis Source-Sha: 8b3d36daaf5561496b7d4075fba4f2c52d18ca1c Source-Link: https://github.com/googleapis/googleapis/commit/8b3d36daaf5561496b7d4075fba4f2c52d18ca1c --- .../v1/SecretManagerServiceClientTest.java | 5 + .../secretmanager/v1/ResourcesProto.java | 145 ++-- .../google/cloud/secretmanager/v1/Secret.java | 558 ++++++++++++++- .../secretmanager/v1/SecretOrBuilder.java | 67 ++ .../google/cloud/secretmanager/v1/Topic.java | 649 ++++++++++++++++++ .../cloud/secretmanager/v1/TopicName.java | 191 ++++++ .../secretmanager/v1/TopicOrBuilder.java | 54 ++ .../cloud/secretmanager/v1/resources.proto | 20 +- .../cloud/secretmanager/v1/service.proto | 2 +- synth.metadata | 9 +- 10 files changed, 1633 insertions(+), 67 deletions(-) create mode 100644 proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Topic.java create mode 100644 proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/TopicName.java create mode 100644 proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/TopicOrBuilder.java diff --git a/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClientTest.java b/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClientTest.java index c60dc30b..409acea6 100644 --- a/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClientTest.java +++ b/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClientTest.java @@ -188,6 +188,7 @@ public void createSecretTest() throws Exception { .setReplication(Replication.newBuilder().build()) .setCreateTime(Timestamp.newBuilder().build()) .putAllLabels(new HashMap()) + .addAllTopics(new ArrayList()) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -235,6 +236,7 @@ public void createSecretTest2() throws Exception { .setReplication(Replication.newBuilder().build()) .setCreateTime(Timestamp.newBuilder().build()) .putAllLabels(new HashMap()) + .addAllTopics(new ArrayList()) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -370,6 +372,7 @@ public void getSecretTest() throws Exception { .setReplication(Replication.newBuilder().build()) .setCreateTime(Timestamp.newBuilder().build()) .putAllLabels(new HashMap()) + .addAllTopics(new ArrayList()) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -411,6 +414,7 @@ public void getSecretTest2() throws Exception { .setReplication(Replication.newBuilder().build()) .setCreateTime(Timestamp.newBuilder().build()) .putAllLabels(new HashMap()) + .addAllTopics(new ArrayList()) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -452,6 +456,7 @@ public void updateSecretTest() throws Exception { .setReplication(Replication.newBuilder().build()) .setCreateTime(Timestamp.newBuilder().build()) .putAllLabels(new HashMap()) + .addAllTopics(new ArrayList()) .build(); mockSecretManagerService.addResponse(expectedResponse); diff --git a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ResourcesProto.java b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ResourcesProto.java index 0e0777b3..8e0e9e97 100644 --- a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ResourcesProto.java +++ b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ResourcesProto.java @@ -79,6 +79,10 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r internal_static_google_cloud_secretmanager_v1_CustomerManagedEncryptionStatus_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_google_cloud_secretmanager_v1_CustomerManagedEncryptionStatus_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_secretmanager_v1_Topic_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_secretmanager_v1_Topic_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_google_cloud_secretmanager_v1_SecretPayload_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable @@ -97,70 +101,74 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "google/api/field_behavior.proto\032\031google/" + "api/resource.proto\032\036google/protobuf/dura" + "tion.proto\032\037google/protobuf/timestamp.pr" - + "oto\032\034google/api/annotations.proto\"\320\003\n\006Se" + + "oto\032\034google/api/annotations.proto\"\213\004\n\006Se" + "cret\022\021\n\004name\030\001 \001(\tB\003\340A\003\022G\n\013replication\030\002" + " \001(\0132*.google.cloud.secretmanager.v1.Rep" + "licationB\006\340A\005\340A\002\0224\n\013create_time\030\003 \001(\0132\032." + "google.protobuf.TimestampB\003\340A\003\022A\n\006labels" + "\030\004 \003(\01321.google.cloud.secretmanager.v1.S" - + "ecret.LabelsEntry\0226\n\013expire_time\030\006 \001(\0132\032" - + ".google.protobuf.TimestampB\003\340A\001H\000\022-\n\003ttl" - + "\030\007 \001(\0132\031.google.protobuf.DurationB\003\340A\004H\000" - + "\032-\n\013LabelsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 " - + "\001(\t:\0028\001:M\352AJ\n#secretmanager.googleapis.c" - + "om/Secret\022#projects/{project}/secrets/{s" - + "ecret}B\014\n\nexpiration\"\337\003\n\rSecretVersion\022\021" - + "\n\004name\030\001 \001(\tB\003\340A\003\0224\n\013create_time\030\002 \001(\0132\032" - + ".google.protobuf.TimestampB\003\340A\003\0225\n\014destr" - + "oy_time\030\003 \001(\0132\032.google.protobuf.Timestam" - + "pB\003\340A\003\022F\n\005state\030\004 \001(\01622.google.cloud.sec" - + "retmanager.v1.SecretVersion.StateB\003\340A\003\022L" - + "\n\022replication_status\030\005 \001(\01320.google.clou" - + "d.secretmanager.v1.ReplicationStatus\"H\n\005" - + "State\022\025\n\021STATE_UNSPECIFIED\020\000\022\013\n\007ENABLED\020" - + "\001\022\014\n\010DISABLED\020\002\022\r\n\tDESTROYED\020\003:n\352Ak\n*sec" - + "retmanager.googleapis.com/SecretVersion\022" - + "=projects/{project}/secrets/{secret}/ver" - + "sions/{secret_version}\"\220\004\n\013Replication\022I" - + "\n\tautomatic\030\001 \001(\01324.google.cloud.secretm" - + "anager.v1.Replication.AutomaticH\000\022N\n\014use" - + "r_managed\030\002 \001(\01326.google.cloud.secretman" - + "ager.v1.Replication.UserManagedH\000\032o\n\tAut" - + "omatic\022b\n\033customer_managed_encryption\030\001 " - + "\001(\01328.google.cloud.secretmanager.v1.Cust" - + "omerManagedEncryptionB\003\340A\001\032\345\001\n\013UserManag" - + "ed\022U\n\010replicas\030\001 \003(\0132>.google.cloud.secr" - + "etmanager.v1.Replication.UserManaged.Rep" - + "licaB\003\340A\002\032\177\n\007Replica\022\020\n\010location\030\001 \001(\t\022b" - + "\n\033customer_managed_encryption\030\002 \001(\01328.go" - + "ogle.cloud.secretmanager.v1.CustomerMana" - + "gedEncryptionB\003\340A\001B\r\n\013replication\"6\n\031Cus" - + "tomerManagedEncryption\022\031\n\014kms_key_name\030\001" - + " \001(\tB\003\340A\002\"\353\004\n\021ReplicationStatus\022U\n\tautom" - + "atic\030\001 \001(\0132@.google.cloud.secretmanager." - + "v1.ReplicationStatus.AutomaticStatusH\000\022Z" - + "\n\014user_managed\030\002 \001(\0132B.google.cloud.secr" - + "etmanager.v1.ReplicationStatus.UserManag" - + "edStatusH\000\032{\n\017AutomaticStatus\022h\n\033custome" - + "r_managed_encryption\030\001 \001(\0132>.google.clou" - + "d.secretmanager.v1.CustomerManagedEncryp" - + "tionStatusB\003\340A\003\032\217\002\n\021UserManagedStatus\022g\n" - + "\010replicas\030\001 \003(\0132P.google.cloud.secretman" - + "ager.v1.ReplicationStatus.UserManagedSta" - + "tus.ReplicaStatusB\003\340A\003\032\220\001\n\rReplicaStatus" - + "\022\025\n\010location\030\001 \001(\tB\003\340A\003\022h\n\033customer_mana" - + "ged_encryption\030\002 \001(\0132>.google.cloud.secr" - + "etmanager.v1.CustomerManagedEncryptionSt" - + "atusB\003\340A\003B\024\n\022replication_status\"D\n\037Custo" - + "merManagedEncryptionStatus\022!\n\024kms_key_ve" - + "rsion_name\030\001 \001(\tB\003\340A\002\"\035\n\rSecretPayload\022\014" - + "\n\004data\030\001 \001(\014B\355\001\n!com.google.cloud.secret" - + "manager.v1B\016ResourcesProtoP\001ZJgoogle.gol" - + "ang.org/genproto/googleapis/cloud/secret" - + "manager/v1;secretmanager\370\001\001\242\002\003GSM\252\002\035Goog" - + "le.Cloud.SecretManager.V1\312\002\035Google\\Cloud" - + "\\SecretManager\\V1\352\002 Google::Cloud::Secre" - + "tManager::V1b\006proto3" + + "ecret.LabelsEntry\0229\n\006topics\030\005 \003(\0132$.goog" + + "le.cloud.secretmanager.v1.TopicB\003\340A\001\0226\n\013" + + "expire_time\030\006 \001(\0132\032.google.protobuf.Time" + + "stampB\003\340A\001H\000\022-\n\003ttl\030\007 \001(\0132\031.google.proto" + + "buf.DurationB\003\340A\004H\000\032-\n\013LabelsEntry\022\013\n\003ke" + + "y\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001:M\352AJ\n#secretm" + + "anager.googleapis.com/Secret\022#projects/{" + + "project}/secrets/{secret}B\014\n\nexpiration\"" + + "\337\003\n\rSecretVersion\022\021\n\004name\030\001 \001(\tB\003\340A\003\0224\n\013" + + "create_time\030\002 \001(\0132\032.google.protobuf.Time" + + "stampB\003\340A\003\0225\n\014destroy_time\030\003 \001(\0132\032.googl" + + "e.protobuf.TimestampB\003\340A\003\022F\n\005state\030\004 \001(\016" + + "22.google.cloud.secretmanager.v1.SecretV" + + "ersion.StateB\003\340A\003\022L\n\022replication_status\030" + + "\005 \001(\01320.google.cloud.secretmanager.v1.Re" + + "plicationStatus\"H\n\005State\022\025\n\021STATE_UNSPEC" + + "IFIED\020\000\022\013\n\007ENABLED\020\001\022\014\n\010DISABLED\020\002\022\r\n\tDE" + + "STROYED\020\003:n\352Ak\n*secretmanager.googleapis" + + ".com/SecretVersion\022=projects/{project}/s" + + "ecrets/{secret}/versions/{secret_version" + + "}\"\220\004\n\013Replication\022I\n\tautomatic\030\001 \001(\01324.g" + + "oogle.cloud.secretmanager.v1.Replication" + + ".AutomaticH\000\022N\n\014user_managed\030\002 \001(\01326.goo" + + "gle.cloud.secretmanager.v1.Replication.U" + + "serManagedH\000\032o\n\tAutomatic\022b\n\033customer_ma" + + "naged_encryption\030\001 \001(\01328.google.cloud.se" + + "cretmanager.v1.CustomerManagedEncryption" + + "B\003\340A\001\032\345\001\n\013UserManaged\022U\n\010replicas\030\001 \003(\0132" + + ">.google.cloud.secretmanager.v1.Replicat" + + "ion.UserManaged.ReplicaB\003\340A\002\032\177\n\007Replica\022" + + "\020\n\010location\030\001 \001(\t\022b\n\033customer_managed_en" + + "cryption\030\002 \001(\01328.google.cloud.secretmana" + + "ger.v1.CustomerManagedEncryptionB\003\340A\001B\r\n" + + "\013replication\"6\n\031CustomerManagedEncryptio" + + "n\022\031\n\014kms_key_name\030\001 \001(\tB\003\340A\002\"\353\004\n\021Replica" + + "tionStatus\022U\n\tautomatic\030\001 \001(\0132@.google.c" + + "loud.secretmanager.v1.ReplicationStatus." + + "AutomaticStatusH\000\022Z\n\014user_managed\030\002 \001(\0132" + + "B.google.cloud.secretmanager.v1.Replicat" + + "ionStatus.UserManagedStatusH\000\032{\n\017Automat" + + "icStatus\022h\n\033customer_managed_encryption\030" + + "\001 \001(\0132>.google.cloud.secretmanager.v1.Cu" + + "stomerManagedEncryptionStatusB\003\340A\003\032\217\002\n\021U" + + "serManagedStatus\022g\n\010replicas\030\001 \003(\0132P.goo" + + "gle.cloud.secretmanager.v1.ReplicationSt" + + "atus.UserManagedStatus.ReplicaStatusB\003\340A" + + "\003\032\220\001\n\rReplicaStatus\022\025\n\010location\030\001 \001(\tB\003\340" + + "A\003\022h\n\033customer_managed_encryption\030\002 \001(\0132" + + ">.google.cloud.secretmanager.v1.Customer" + + "ManagedEncryptionStatusB\003\340A\003B\024\n\022replicat" + + "ion_status\"D\n\037CustomerManagedEncryptionS" + + "tatus\022!\n\024kms_key_version_name\030\001 \001(\tB\003\340A\002" + + "\"_\n\005Topic\022\021\n\004name\030\001 \001(\tB\003\340A\002:C\352A@\n\033pubsu" + + "b.googleapis.com/Topic\022!projects/{projec" + + "t}/topics/{topic}\"\035\n\rSecretPayload\022\014\n\004da" + + "ta\030\001 \001(\014B\355\001\n!com.google.cloud.secretmana" + + "ger.v1B\016ResourcesProtoP\001ZJgoogle.golang." + + "org/genproto/googleapis/cloud/secretmana" + + "ger/v1;secretmanager\370\001\001\242\002\003GSM\252\002\035Google.C" + + "loud.SecretManager.V1\312\002\035Google\\Cloud\\Sec" + + "retManager\\V1\352\002 Google::Cloud::SecretMan" + + "ager::V1b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( @@ -178,7 +186,14 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_cloud_secretmanager_v1_Secret_descriptor, new java.lang.String[] { - "Name", "Replication", "CreateTime", "Labels", "ExpireTime", "Ttl", "Expiration", + "Name", + "Replication", + "CreateTime", + "Labels", + "Topics", + "ExpireTime", + "Ttl", + "Expiration", }); internal_static_google_cloud_secretmanager_v1_Secret_LabelsEntry_descriptor = internal_static_google_cloud_secretmanager_v1_Secret_descriptor.getNestedTypes().get(0); @@ -288,8 +303,16 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new java.lang.String[] { "KmsKeyVersionName", }); - internal_static_google_cloud_secretmanager_v1_SecretPayload_descriptor = + internal_static_google_cloud_secretmanager_v1_Topic_descriptor = getDescriptor().getMessageTypes().get(6); + internal_static_google_cloud_secretmanager_v1_Topic_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_secretmanager_v1_Topic_descriptor, + new java.lang.String[] { + "Name", + }); + internal_static_google_cloud_secretmanager_v1_SecretPayload_descriptor = + getDescriptor().getMessageTypes().get(7); internal_static_google_cloud_secretmanager_v1_SecretPayload_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_cloud_secretmanager_v1_SecretPayload_descriptor, diff --git a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Secret.java b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Secret.java index b236012b..c7718505 100644 --- a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Secret.java +++ b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Secret.java @@ -42,6 +42,7 @@ private Secret(com.google.protobuf.GeneratedMessageV3.Builder builder) { private Secret() { name_ = ""; + topics_ = java.util.Collections.emptyList(); } @java.lang.Override @@ -125,6 +126,17 @@ private Secret( labels_.getMutableMap().put(labels__.getKey(), labels__.getValue()); break; } + case 42: + { + if (!((mutable_bitField0_ & 0x00000002) != 0)) { + topics_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000002; + } + topics_.add( + input.readMessage( + com.google.cloud.secretmanager.v1.Topic.parser(), extensionRegistry)); + break; + } case 50: { com.google.protobuf.Timestamp.Builder subBuilder = null; @@ -169,6 +181,9 @@ private Secret( } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); } finally { + if (((mutable_bitField0_ & 0x00000002) != 0)) { + topics_ = java.util.Collections.unmodifiableList(topics_); + } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } @@ -528,6 +543,90 @@ public java.lang.String getLabelsOrThrow(java.lang.String key) { return map.get(key); } + public static final int TOPICS_FIELD_NUMBER = 5; + private java.util.List topics_; + /** + * + * + *
+   * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+   * control plane operations are called on the secret or its versions.
+   * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.util.List getTopicsList() { + return topics_; + } + /** + * + * + *
+   * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+   * control plane operations are called on the secret or its versions.
+   * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.util.List + getTopicsOrBuilderList() { + return topics_; + } + /** + * + * + *
+   * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+   * control plane operations are called on the secret or its versions.
+   * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public int getTopicsCount() { + return topics_.size(); + } + /** + * + * + *
+   * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+   * control plane operations are called on the secret or its versions.
+   * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.cloud.secretmanager.v1.Topic getTopics(int index) { + return topics_.get(index); + } + /** + * + * + *
+   * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+   * control plane operations are called on the secret or its versions.
+   * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.cloud.secretmanager.v1.TopicOrBuilder getTopicsOrBuilder(int index) { + return topics_.get(index); + } + public static final int EXPIRE_TIME_FIELD_NUMBER = 6; /** * @@ -661,6 +760,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io } com.google.protobuf.GeneratedMessageV3.serializeStringMapTo( output, internalGetLabels(), LabelsDefaultEntryHolder.defaultEntry, 4); + for (int i = 0; i < topics_.size(); i++) { + output.writeMessage(5, topics_.get(i)); + } if (expirationCase_ == 6) { output.writeMessage(6, (com.google.protobuf.Timestamp) expiration_); } @@ -695,6 +797,9 @@ public int getSerializedSize() { .build(); size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, labels__); } + for (int i = 0; i < topics_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, topics_.get(i)); + } if (expirationCase_ == 6) { size += com.google.protobuf.CodedOutputStream.computeMessageSize( @@ -730,6 +835,7 @@ public boolean equals(final java.lang.Object obj) { if (!getCreateTime().equals(other.getCreateTime())) return false; } if (!internalGetLabels().equals(other.internalGetLabels())) return false; + if (!getTopicsList().equals(other.getTopicsList())) return false; if (!getExpirationCase().equals(other.getExpirationCase())) return false; switch (expirationCase_) { case 6: @@ -766,6 +872,10 @@ public int hashCode() { hash = (37 * hash) + LABELS_FIELD_NUMBER; hash = (53 * hash) + internalGetLabels().hashCode(); } + if (getTopicsCount() > 0) { + hash = (37 * hash) + TOPICS_FIELD_NUMBER; + hash = (53 * hash) + getTopicsList().hashCode(); + } switch (expirationCase_) { case 6: hash = (37 * hash) + EXPIRE_TIME_FIELD_NUMBER; @@ -940,7 +1050,9 @@ private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { } private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {} + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getTopicsFieldBuilder(); + } } @java.lang.Override @@ -961,6 +1073,12 @@ public Builder clear() { createTimeBuilder_ = null; } internalGetMutableLabels().clear(); + if (topicsBuilder_ == null) { + topics_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + } else { + topicsBuilder_.clear(); + } expirationCase_ = 0; expiration_ = null; return this; @@ -1004,6 +1122,15 @@ public com.google.cloud.secretmanager.v1.Secret buildPartial() { } result.labels_ = internalGetLabels(); result.labels_.makeImmutable(); + if (topicsBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0)) { + topics_ = java.util.Collections.unmodifiableList(topics_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.topics_ = topics_; + } else { + result.topics_ = topicsBuilder_.build(); + } if (expirationCase_ == 6) { if (expireTimeBuilder_ == null) { result.expiration_ = expiration_; @@ -1079,6 +1206,33 @@ public Builder mergeFrom(com.google.cloud.secretmanager.v1.Secret other) { mergeCreateTime(other.getCreateTime()); } internalGetMutableLabels().mergeFrom(other.internalGetLabels()); + if (topicsBuilder_ == null) { + if (!other.topics_.isEmpty()) { + if (topics_.isEmpty()) { + topics_ = other.topics_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureTopicsIsMutable(); + topics_.addAll(other.topics_); + } + onChanged(); + } + } else { + if (!other.topics_.isEmpty()) { + if (topicsBuilder_.isEmpty()) { + topicsBuilder_.dispose(); + topicsBuilder_ = null; + topics_ = other.topics_; + bitField0_ = (bitField0_ & ~0x00000002); + topicsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getTopicsFieldBuilder() + : null; + } else { + topicsBuilder_.addAllMessages(other.topics_); + } + } + } switch (other.getExpirationCase()) { case EXPIRE_TIME: { @@ -1866,6 +2020,408 @@ public Builder putAllLabels(java.util.Map va return this; } + private java.util.List topics_ = + java.util.Collections.emptyList(); + + private void ensureTopicsIsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + topics_ = new java.util.ArrayList(topics_); + bitField0_ |= 0x00000002; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.secretmanager.v1.Topic, + com.google.cloud.secretmanager.v1.Topic.Builder, + com.google.cloud.secretmanager.v1.TopicOrBuilder> + topicsBuilder_; + + /** + * + * + *
+     * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+     * control plane operations are called on the secret or its versions.
+     * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public java.util.List getTopicsList() { + if (topicsBuilder_ == null) { + return java.util.Collections.unmodifiableList(topics_); + } else { + return topicsBuilder_.getMessageList(); + } + } + /** + * + * + *
+     * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+     * control plane operations are called on the secret or its versions.
+     * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public int getTopicsCount() { + if (topicsBuilder_ == null) { + return topics_.size(); + } else { + return topicsBuilder_.getCount(); + } + } + /** + * + * + *
+     * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+     * control plane operations are called on the secret or its versions.
+     * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.secretmanager.v1.Topic getTopics(int index) { + if (topicsBuilder_ == null) { + return topics_.get(index); + } else { + return topicsBuilder_.getMessage(index); + } + } + /** + * + * + *
+     * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+     * control plane operations are called on the secret or its versions.
+     * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setTopics(int index, com.google.cloud.secretmanager.v1.Topic value) { + if (topicsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTopicsIsMutable(); + topics_.set(index, value); + onChanged(); + } else { + topicsBuilder_.setMessage(index, value); + } + return this; + } + /** + * + * + *
+     * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+     * control plane operations are called on the secret or its versions.
+     * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setTopics( + int index, com.google.cloud.secretmanager.v1.Topic.Builder builderForValue) { + if (topicsBuilder_ == null) { + ensureTopicsIsMutable(); + topics_.set(index, builderForValue.build()); + onChanged(); + } else { + topicsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * + * + *
+     * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+     * control plane operations are called on the secret or its versions.
+     * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder addTopics(com.google.cloud.secretmanager.v1.Topic value) { + if (topicsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTopicsIsMutable(); + topics_.add(value); + onChanged(); + } else { + topicsBuilder_.addMessage(value); + } + return this; + } + /** + * + * + *
+     * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+     * control plane operations are called on the secret or its versions.
+     * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder addTopics(int index, com.google.cloud.secretmanager.v1.Topic value) { + if (topicsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTopicsIsMutable(); + topics_.add(index, value); + onChanged(); + } else { + topicsBuilder_.addMessage(index, value); + } + return this; + } + /** + * + * + *
+     * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+     * control plane operations are called on the secret or its versions.
+     * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder addTopics(com.google.cloud.secretmanager.v1.Topic.Builder builderForValue) { + if (topicsBuilder_ == null) { + ensureTopicsIsMutable(); + topics_.add(builderForValue.build()); + onChanged(); + } else { + topicsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * + * + *
+     * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+     * control plane operations are called on the secret or its versions.
+     * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder addTopics( + int index, com.google.cloud.secretmanager.v1.Topic.Builder builderForValue) { + if (topicsBuilder_ == null) { + ensureTopicsIsMutable(); + topics_.add(index, builderForValue.build()); + onChanged(); + } else { + topicsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * + * + *
+     * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+     * control plane operations are called on the secret or its versions.
+     * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder addAllTopics( + java.lang.Iterable values) { + if (topicsBuilder_ == null) { + ensureTopicsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, topics_); + onChanged(); + } else { + topicsBuilder_.addAllMessages(values); + } + return this; + } + /** + * + * + *
+     * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+     * control plane operations are called on the secret or its versions.
+     * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearTopics() { + if (topicsBuilder_ == null) { + topics_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + } else { + topicsBuilder_.clear(); + } + return this; + } + /** + * + * + *
+     * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+     * control plane operations are called on the secret or its versions.
+     * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder removeTopics(int index) { + if (topicsBuilder_ == null) { + ensureTopicsIsMutable(); + topics_.remove(index); + onChanged(); + } else { + topicsBuilder_.remove(index); + } + return this; + } + /** + * + * + *
+     * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+     * control plane operations are called on the secret or its versions.
+     * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.secretmanager.v1.Topic.Builder getTopicsBuilder(int index) { + return getTopicsFieldBuilder().getBuilder(index); + } + /** + * + * + *
+     * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+     * control plane operations are called on the secret or its versions.
+     * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.secretmanager.v1.TopicOrBuilder getTopicsOrBuilder(int index) { + if (topicsBuilder_ == null) { + return topics_.get(index); + } else { + return topicsBuilder_.getMessageOrBuilder(index); + } + } + /** + * + * + *
+     * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+     * control plane operations are called on the secret or its versions.
+     * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public java.util.List + getTopicsOrBuilderList() { + if (topicsBuilder_ != null) { + return topicsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(topics_); + } + } + /** + * + * + *
+     * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+     * control plane operations are called on the secret or its versions.
+     * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.secretmanager.v1.Topic.Builder addTopicsBuilder() { + return getTopicsFieldBuilder() + .addBuilder(com.google.cloud.secretmanager.v1.Topic.getDefaultInstance()); + } + /** + * + * + *
+     * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+     * control plane operations are called on the secret or its versions.
+     * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.secretmanager.v1.Topic.Builder addTopicsBuilder(int index) { + return getTopicsFieldBuilder() + .addBuilder(index, com.google.cloud.secretmanager.v1.Topic.getDefaultInstance()); + } + /** + * + * + *
+     * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+     * control plane operations are called on the secret or its versions.
+     * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public java.util.List getTopicsBuilderList() { + return getTopicsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.secretmanager.v1.Topic, + com.google.cloud.secretmanager.v1.Topic.Builder, + com.google.cloud.secretmanager.v1.TopicOrBuilder> + getTopicsFieldBuilder() { + if (topicsBuilder_ == null) { + topicsBuilder_ = + new com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.secretmanager.v1.Topic, + com.google.cloud.secretmanager.v1.Topic.Builder, + com.google.cloud.secretmanager.v1.TopicOrBuilder>( + topics_, ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); + topics_ = null; + } + return topicsBuilder_; + } + private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, diff --git a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretOrBuilder.java b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretOrBuilder.java index 1c2c32b8..34e0e820 100644 --- a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretOrBuilder.java +++ b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretOrBuilder.java @@ -219,6 +219,73 @@ public interface SecretOrBuilder */ java.lang.String getLabelsOrThrow(java.lang.String key); + /** + * + * + *
+   * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+   * control plane operations are called on the secret or its versions.
+   * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + java.util.List getTopicsList(); + /** + * + * + *
+   * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+   * control plane operations are called on the secret or its versions.
+   * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.cloud.secretmanager.v1.Topic getTopics(int index); + /** + * + * + *
+   * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+   * control plane operations are called on the secret or its versions.
+   * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + int getTopicsCount(); + /** + * + * + *
+   * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+   * control plane operations are called on the secret or its versions.
+   * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + java.util.List + getTopicsOrBuilderList(); + /** + * + * + *
+   * Optional. A list of up to 10 Pub/Sub topics to which messages are published when
+   * control plane operations are called on the secret or its versions.
+   * 
+ * + * + * repeated .google.cloud.secretmanager.v1.Topic topics = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.cloud.secretmanager.v1.TopicOrBuilder getTopicsOrBuilder(int index); + /** * * diff --git a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Topic.java b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Topic.java new file mode 100644 index 00000000..fbe3cac4 --- /dev/null +++ b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Topic.java @@ -0,0 +1,649 @@ +/* + * Copyright 2020 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 + * + * https://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. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/secretmanager/v1/resources.proto + +package com.google.cloud.secretmanager.v1; + +/** + * + * + *
+ * A Pub/Sub topic which Secret Manager will publish to when control plane
+ * events occur on this secret.
+ * 
+ * + * Protobuf type {@code google.cloud.secretmanager.v1.Topic} + */ +public final class Topic extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.secretmanager.v1.Topic) + TopicOrBuilder { + private static final long serialVersionUID = 0L; + // Use Topic.newBuilder() to construct. + private Topic(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private Topic() { + name_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Topic(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private Topic( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + java.lang.String s = input.readStringRequireUtf8(); + + name_ = s; + break; + } + default: + { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.secretmanager.v1.ResourcesProto + .internal_static_google_cloud_secretmanager_v1_Topic_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.secretmanager.v1.ResourcesProto + .internal_static_google_cloud_secretmanager_v1_Topic_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.secretmanager.v1.Topic.class, + com.google.cloud.secretmanager.v1.Topic.Builder.class); + } + + public static final int NAME_FIELD_NUMBER = 1; + private volatile java.lang.Object name_; + /** + * + * + *
+   * Required. The resource name of the Pub/Sub topic that will be published to, in the
+   * following format: `projects/*/topics/*`. For publication to succeed, the
+   * Secret Manager P4SA must have `pubsub.publisher` permissions on the topic.
+   * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + /** + * + * + *
+   * Required. The resource name of the Pub/Sub topic that will be published to, in the
+   * following format: `projects/*/topics/*`. For publication to succeed, the
+   * Secret Manager P4SA must have `pubsub.publisher` permissions on the topic.
+   * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (!getNameBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getNameBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.secretmanager.v1.Topic)) { + return super.equals(obj); + } + com.google.cloud.secretmanager.v1.Topic other = (com.google.cloud.secretmanager.v1.Topic) obj; + + if (!getName().equals(other.getName())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.secretmanager.v1.Topic parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.secretmanager.v1.Topic parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.Topic parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.secretmanager.v1.Topic parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.Topic parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.secretmanager.v1.Topic parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.Topic parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.secretmanager.v1.Topic parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.Topic parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.secretmanager.v1.Topic parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.Topic parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.secretmanager.v1.Topic parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(com.google.cloud.secretmanager.v1.Topic prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * + * + *
+   * A Pub/Sub topic which Secret Manager will publish to when control plane
+   * events occur on this secret.
+   * 
+ * + * Protobuf type {@code google.cloud.secretmanager.v1.Topic} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.secretmanager.v1.Topic) + com.google.cloud.secretmanager.v1.TopicOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.secretmanager.v1.ResourcesProto + .internal_static_google_cloud_secretmanager_v1_Topic_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.secretmanager.v1.ResourcesProto + .internal_static_google_cloud_secretmanager_v1_Topic_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.secretmanager.v1.Topic.class, + com.google.cloud.secretmanager.v1.Topic.Builder.class); + } + + // Construct using com.google.cloud.secretmanager.v1.Topic.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {} + } + + @java.lang.Override + public Builder clear() { + super.clear(); + name_ = ""; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.secretmanager.v1.ResourcesProto + .internal_static_google_cloud_secretmanager_v1_Topic_descriptor; + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.Topic getDefaultInstanceForType() { + return com.google.cloud.secretmanager.v1.Topic.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.Topic build() { + com.google.cloud.secretmanager.v1.Topic result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.Topic buildPartial() { + com.google.cloud.secretmanager.v1.Topic result = + new com.google.cloud.secretmanager.v1.Topic(this); + result.name_ = name_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.secretmanager.v1.Topic) { + return mergeFrom((com.google.cloud.secretmanager.v1.Topic) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.secretmanager.v1.Topic other) { + if (other == com.google.cloud.secretmanager.v1.Topic.getDefaultInstance()) return this; + if (!other.getName().isEmpty()) { + name_ = other.name_; + onChanged(); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.cloud.secretmanager.v1.Topic parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.google.cloud.secretmanager.v1.Topic) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object name_ = ""; + /** + * + * + *
+     * Required. The resource name of the Pub/Sub topic that will be published to, in the
+     * following format: `projects/*/topics/*`. For publication to succeed, the
+     * Secret Manager P4SA must have `pubsub.publisher` permissions on the topic.
+     * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * + * + *
+     * Required. The resource name of the Pub/Sub topic that will be published to, in the
+     * following format: `projects/*/topics/*`. For publication to succeed, the
+     * Secret Manager P4SA must have `pubsub.publisher` permissions on the topic.
+     * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for name. + */ + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * + * + *
+     * Required. The resource name of the Pub/Sub topic that will be published to, in the
+     * following format: `projects/*/topics/*`. For publication to succeed, the
+     * Secret Manager P4SA must have `pubsub.publisher` permissions on the topic.
+     * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + name_ = value; + onChanged(); + return this; + } + /** + * + * + *
+     * Required. The resource name of the Pub/Sub topic that will be published to, in the
+     * following format: `projects/*/topics/*`. For publication to succeed, the
+     * Secret Manager P4SA must have `pubsub.publisher` permissions on the topic.
+     * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearName() { + + name_ = getDefaultInstance().getName(); + onChanged(); + return this; + } + /** + * + * + *
+     * Required. The resource name of the Pub/Sub topic that will be published to, in the
+     * following format: `projects/*/topics/*`. For publication to succeed, the
+     * Secret Manager P4SA must have `pubsub.publisher` permissions on the topic.
+     * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + name_ = value; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:google.cloud.secretmanager.v1.Topic) + } + + // @@protoc_insertion_point(class_scope:google.cloud.secretmanager.v1.Topic) + private static final com.google.cloud.secretmanager.v1.Topic DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.secretmanager.v1.Topic(); + } + + public static com.google.cloud.secretmanager.v1.Topic getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Topic parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new Topic(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.Topic getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/TopicName.java b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/TopicName.java new file mode 100644 index 00000000..2341ec66 --- /dev/null +++ b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/TopicName.java @@ -0,0 +1,191 @@ +/* + * Copyright 2020 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 + * + * https://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 com.google.cloud.secretmanager.v1; + +import com.google.api.pathtemplate.PathTemplate; +import com.google.api.resourcenames.ResourceName; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableMap; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +@Generated("by gapic-generator-java") +public class TopicName implements ResourceName { + private static final PathTemplate PROJECT_TOPIC = + PathTemplate.createWithoutUrlEncoding("projects/{project}/topics/{topic}"); + private volatile Map fieldValuesMap; + private final String project; + private final String topic; + + @Deprecated + protected TopicName() { + project = null; + topic = null; + } + + private TopicName(Builder builder) { + project = Preconditions.checkNotNull(builder.getProject()); + topic = Preconditions.checkNotNull(builder.getTopic()); + } + + public String getProject() { + return project; + } + + public String getTopic() { + return topic; + } + + public static Builder newBuilder() { + return new Builder(); + } + + public Builder toBuilder() { + return new Builder(this); + } + + public static TopicName of(String project, String topic) { + return newBuilder().setProject(project).setTopic(topic).build(); + } + + public static String format(String project, String topic) { + return newBuilder().setProject(project).setTopic(topic).build().toString(); + } + + public static TopicName parse(String formattedString) { + if (formattedString.isEmpty()) { + return null; + } + Map matchMap = + PROJECT_TOPIC.validatedMatch( + formattedString, "TopicName.parse: formattedString not in valid format"); + return of(matchMap.get("project"), matchMap.get("topic")); + } + + public static List parseList(List formattedStrings) { + List list = new ArrayList<>(formattedStrings.size()); + for (String formattedString : formattedStrings) { + list.add(parse(formattedString)); + } + return list; + } + + public static List toStringList(List values) { + List list = new ArrayList<>(values.size()); + for (TopicName value : values) { + if (value == null) { + list.add(""); + } else { + list.add(value.toString()); + } + } + return list; + } + + public static boolean isParsableFrom(String formattedString) { + return PROJECT_TOPIC.matches(formattedString); + } + + @Override + public Map getFieldValuesMap() { + if (fieldValuesMap == null) { + synchronized (this) { + if (fieldValuesMap == null) { + ImmutableMap.Builder fieldMapBuilder = ImmutableMap.builder(); + if (project != null) { + fieldMapBuilder.put("project", project); + } + if (topic != null) { + fieldMapBuilder.put("topic", topic); + } + fieldValuesMap = fieldMapBuilder.build(); + } + } + } + return fieldValuesMap; + } + + public String getFieldValue(String fieldName) { + return getFieldValuesMap().get(fieldName); + } + + @Override + public String toString() { + return PROJECT_TOPIC.instantiate("project", project, "topic", topic); + } + + @Override + public boolean equals(Object o) { + if (o == this) { + return true; + } + if (o != null || getClass() == o.getClass()) { + TopicName that = ((TopicName) o); + return Objects.equals(this.project, that.project) && Objects.equals(this.topic, that.topic); + } + return false; + } + + @Override + public int hashCode() { + int h = 1; + h *= 1000003; + h ^= Objects.hashCode(project); + h *= 1000003; + h ^= Objects.hashCode(topic); + return h; + } + + /** Builder for projects/{project}/topics/{topic}. */ + public static class Builder { + private String project; + private String topic; + + protected Builder() {} + + public String getProject() { + return project; + } + + public String getTopic() { + return topic; + } + + public Builder setProject(String project) { + this.project = project; + return this; + } + + public Builder setTopic(String topic) { + this.topic = topic; + return this; + } + + private Builder(TopicName topicName) { + project = topicName.project; + topic = topicName.topic; + } + + public TopicName build() { + return new TopicName(this); + } + } +} diff --git a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/TopicOrBuilder.java b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/TopicOrBuilder.java new file mode 100644 index 00000000..8e231332 --- /dev/null +++ b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/TopicOrBuilder.java @@ -0,0 +1,54 @@ +/* + * Copyright 2020 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 + * + * https://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. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/secretmanager/v1/resources.proto + +package com.google.cloud.secretmanager.v1; + +public interface TopicOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.secretmanager.v1.Topic) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Required. The resource name of the Pub/Sub topic that will be published to, in the
+   * following format: `projects/*/topics/*`. For publication to succeed, the
+   * Secret Manager P4SA must have `pubsub.publisher` permissions on the topic.
+   * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The name. + */ + java.lang.String getName(); + /** + * + * + *
+   * Required. The resource name of the Pub/Sub topic that will be published to, in the
+   * following format: `projects/*/topics/*`. For publication to succeed, the
+   * Secret Manager P4SA must have `pubsub.publisher` permissions on the topic.
+   * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for name. + */ + com.google.protobuf.ByteString getNameBytes(); +} diff --git a/proto-google-cloud-secretmanager-v1/src/main/proto/google/cloud/secretmanager/v1/resources.proto b/proto-google-cloud-secretmanager-v1/src/main/proto/google/cloud/secretmanager/v1/resources.proto index 7532b085..235444d1 100644 --- a/proto-google-cloud-secretmanager-v1/src/main/proto/google/cloud/secretmanager/v1/resources.proto +++ b/proto-google-cloud-secretmanager-v1/src/main/proto/google/cloud/secretmanager/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2021 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -70,6 +70,10 @@ message Secret { // No more than 64 labels can be assigned to a given resource. map labels = 4; + // Optional. A list of up to 10 Pub/Sub topics to which messages are published when + // control plane operations are called on the secret or its versions. + repeated Topic topics = 5 [(google.api.field_behavior) = OPTIONAL]; + // Expiration policy attached to the [Secret][google.cloud.secretmanager.v1.Secret]. If specified the [Secret][google.cloud.secretmanager.v1.Secret] // and all [SecretVersions][google.cloud.secretmanager.v1.SecretVersion] will be automatically deleted at // expiration. Expired secrets are irreversibly deleted. @@ -260,6 +264,20 @@ message CustomerManagedEncryptionStatus { string kms_key_version_name = 1 [(google.api.field_behavior) = REQUIRED]; } +// A Pub/Sub topic which Secret Manager will publish to when control plane +// events occur on this secret. +message Topic { + option (google.api.resource) = { + type: "pubsub.googleapis.com/Topic" + pattern: "projects/{project}/topics/{topic}" + }; + + // Required. The resource name of the Pub/Sub topic that will be published to, in the + // following format: `projects/*/topics/*`. For publication to succeed, the + // Secret Manager P4SA must have `pubsub.publisher` permissions on the topic. + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + // A secret payload resource in the Secret Manager API. This contains the // sensitive secret payload that is associated with a [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. message SecretPayload { diff --git a/proto-google-cloud-secretmanager-v1/src/main/proto/google/cloud/secretmanager/v1/service.proto b/proto-google-cloud-secretmanager-v1/src/main/proto/google/cloud/secretmanager/v1/service.proto index e54e856a..1e9d3e04 100644 --- a/proto-google-cloud-secretmanager-v1/src/main/proto/google/cloud/secretmanager/v1/service.proto +++ b/proto-google-cloud-secretmanager-v1/src/main/proto/google/cloud/secretmanager/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2021 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/synth.metadata b/synth.metadata index a977d574..07db0c9c 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,15 +4,15 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-secretmanager.git", - "sha": "fdfe07e3549a2948c69e86d1dfce87d2772a3674" + "sha": "4ab50b6c854e3af5acdca7a1c92fe869e0b890dc" } }, { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "af8f71dae961ee036a0ac52a1965270149a6b2c9", - "internalRef": "358516065" + "sha": "8b3d36daaf5561496b7d4075fba4f2c52d18ca1c", + "internalRef": "359285402" } }, { @@ -183,6 +183,9 @@ "proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretVersionName.java", "proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretVersionOrBuilder.java", "proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ServiceProto.java", + "proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Topic.java", + "proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/TopicName.java", + "proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/TopicOrBuilder.java", "proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/UpdateSecretRequest.java", "proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/UpdateSecretRequestOrBuilder.java", "proto-google-cloud-secretmanager-v1/src/main/proto/google/cloud/secretmanager/v1/resources.proto",