From 0d2e4b435f8847d0211bb9bf694fef0878364c26 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 30 Mar 2021 16:18:03 -0700 Subject: [PATCH] feat: Rotation for Secrets (#425) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/3f2047bd-228a-422e-b865-ff4ee3d54ec6/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) PiperOrigin-RevId: 365574085 Source-Link: https://github.com/googleapis/googleapis/commit/6c7693680fe320b4705dd8500c255843749eb58a --- .../v1/SecretManagerServiceClientTest.java | 5 + .../secretmanager/v1/ResourcesProto.java | 138 +- .../cloud/secretmanager/v1/Rotation.java | 1118 +++++++++++++++++ .../secretmanager/v1/RotationOrBuilder.java | 122 ++ .../google/cloud/secretmanager/v1/Secret.java | 313 +++++ .../secretmanager/v1/SecretOrBuilder.java | 44 + .../cloud/secretmanager/v1/resources.proto | 22 + synth.metadata | 6 +- 8 files changed, 1706 insertions(+), 62 deletions(-) create mode 100644 proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Rotation.java create mode 100644 proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/RotationOrBuilder.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 7bbef0be..98ef47ba 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 @@ -189,6 +189,7 @@ public void createSecretTest() throws Exception { .setCreateTime(Timestamp.newBuilder().build()) .putAllLabels(new HashMap()) .addAllTopics(new ArrayList()) + .setRotation(Rotation.newBuilder().build()) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -237,6 +238,7 @@ public void createSecretTest2() throws Exception { .setCreateTime(Timestamp.newBuilder().build()) .putAllLabels(new HashMap()) .addAllTopics(new ArrayList()) + .setRotation(Rotation.newBuilder().build()) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -373,6 +375,7 @@ public void getSecretTest() throws Exception { .setCreateTime(Timestamp.newBuilder().build()) .putAllLabels(new HashMap()) .addAllTopics(new ArrayList()) + .setRotation(Rotation.newBuilder().build()) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -415,6 +418,7 @@ public void getSecretTest2() throws Exception { .setCreateTime(Timestamp.newBuilder().build()) .putAllLabels(new HashMap()) .addAllTopics(new ArrayList()) + .setRotation(Rotation.newBuilder().build()) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -457,6 +461,7 @@ public void updateSecretTest() throws Exception { .setCreateTime(Timestamp.newBuilder().build()) .putAllLabels(new HashMap()) .addAllTopics(new ArrayList()) + .setRotation(Rotation.newBuilder().build()) .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 8e0e9e97..48c48da0 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 @@ -83,6 +83,10 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r 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_Rotation_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_secretmanager_v1_Rotation_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_google_cloud_secretmanager_v1_SecretPayload_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable @@ -101,7 +105,7 @@ 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\"\213\004\n\006Se" + + "oto\032\034google/api/annotations.proto\"\313\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." @@ -111,64 +115,69 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "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" + + "buf.DurationB\003\340A\004H\000\022>\n\010rotation\030\t \001(\0132\'." + + "google.cloud.secretmanager.v1.RotationB\003" + + "\340A\001\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.googleapi" + + "s.com/Secret\022#projects/{project}/secrets" + + "/{secret}B\014\n\nexpiration\"\337\003\n\rSecretVersio" + + "n\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\014de" + + "stroy_time\030\003 \001(\0132\032.google.protobuf.Times" + + "tampB\003\340A\003\022F\n\005state\030\004 \001(\01622.google.cloud." + + "secretmanager.v1.SecretVersion.StateB\003\340A" + + "\003\022L\n\022replication_status\030\005 \001(\01320.google.c" + + "loud.secretmanager.v1.ReplicationStatus\"" + + "H\n\005State\022\025\n\021STATE_UNSPECIFIED\020\000\022\013\n\007ENABL" + + "ED\020\001\022\014\n\010DISABLED\020\002\022\r\n\tDESTROYED\020\003:n\352Ak\n*" + + "secretmanager.googleapis.com/SecretVersi" + + "on\022=projects/{project}/secrets/{secret}/" + + "versions/{secret_version}\"\220\004\n\013Replicatio" + + "n\022I\n\tautomatic\030\001 \001(\01324.google.cloud.secr" + + "etmanager.v1.Replication.AutomaticH\000\022N\n\014" + + "user_managed\030\002 \001(\01326.google.cloud.secret" + + "manager.v1.Replication.UserManagedH\000\032o\n\t" + + "Automatic\022b\n\033customer_managed_encryption" + + "\030\001 \001(\01328.google.cloud.secretmanager.v1.C" + + "ustomerManagedEncryptionB\003\340A\001\032\345\001\n\013UserMa" + + "naged\022U\n\010replicas\030\001 \003(\0132>.google.cloud.s" + + "ecretmanager.v1.Replication.UserManaged." + + "ReplicaB\003\340A\002\032\177\n\007Replica\022\020\n\010location\030\001 \001(" + + "\t\022b\n\033customer_managed_encryption\030\002 \001(\01328" + + ".google.cloud.secretmanager.v1.CustomerM" + + "anagedEncryptionB\003\340A\001B\r\n\013replication\"6\n\031" + + "CustomerManagedEncryption\022\031\n\014kms_key_nam" + + "e\030\001 \001(\tB\003\340A\002\"\353\004\n\021ReplicationStatus\022U\n\tau" + + "tomatic\030\001 \001(\0132@.google.cloud.secretmanag" + + "er.v1.ReplicationStatus.AutomaticStatusH" + + "\000\022Z\n\014user_managed\030\002 \001(\0132B.google.cloud.s" + + "ecretmanager.v1.ReplicationStatus.UserMa" + + "nagedStatusH\000\032{\n\017AutomaticStatus\022h\n\033cust" + + "omer_managed_encryption\030\001 \001(\0132>.google.c" + + "loud.secretmanager.v1.CustomerManagedEnc" + + "ryptionStatusB\003\340A\003\032\217\002\n\021UserManagedStatus" + + "\022g\n\010replicas\030\001 \003(\0132P.google.cloud.secret" + + "manager.v1.ReplicationStatus.UserManaged" + + "Status.ReplicaStatusB\003\340A\003\032\220\001\n\rReplicaSta" + + "tus\022\025\n\010location\030\001 \001(\tB\003\340A\003\022h\n\033customer_m" + + "anaged_encryption\030\002 \001(\0132>.google.cloud.s" + + "ecretmanager.v1.CustomerManagedEncryptio" + + "nStatusB\003\340A\003B\024\n\022replication_status\"D\n\037Cu" + + "stomerManagedEncryptionStatus\022!\n\024kms_key" + + "_version_name\030\001 \001(\tB\003\340A\002\"_\n\005Topic\022\021\n\004nam" + + "e\030\001 \001(\tB\003\340A\002:C\352A@\n\033pubsub.googleapis.com" + + "/Topic\022!projects/{project}/topics/{topic" + + "}\"\200\001\n\010Rotation\022;\n\022next_rotation_time\030\001 \001" + + "(\0132\032.google.protobuf.TimestampB\003\340A\001\0227\n\017r" + + "otation_period\030\002 \001(\0132\031.google.protobuf.D" + + "urationB\003\340A\004\"\035\n\rSecretPayload\022\014\n\004data\030\001 " + + "\001(\014B\355\001\n!com.google.cloud.secretmanager.v" + + "1B\016ResourcesProtoP\001ZJgoogle.golang.org/g" + + "enproto/googleapis/cloud/secretmanager/v" + + "1;secretmanager\370\001\001\242\002\003GSM\252\002\035Google.Cloud." + + "SecretManager.V1\312\002\035Google\\Cloud\\SecretMa" + + "nager\\V1\352\002 Google::Cloud::SecretManager:" + + ":V1b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( @@ -193,6 +202,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Topics", "ExpireTime", "Ttl", + "Rotation", "Expiration", }); internal_static_google_cloud_secretmanager_v1_Secret_LabelsEntry_descriptor = @@ -311,8 +321,16 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new java.lang.String[] { "Name", }); - internal_static_google_cloud_secretmanager_v1_SecretPayload_descriptor = + internal_static_google_cloud_secretmanager_v1_Rotation_descriptor = getDescriptor().getMessageTypes().get(7); + internal_static_google_cloud_secretmanager_v1_Rotation_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_secretmanager_v1_Rotation_descriptor, + new java.lang.String[] { + "NextRotationTime", "RotationPeriod", + }); + internal_static_google_cloud_secretmanager_v1_SecretPayload_descriptor = + getDescriptor().getMessageTypes().get(8); 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/Rotation.java b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Rotation.java new file mode 100644 index 00000000..449a7da4 --- /dev/null +++ b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Rotation.java @@ -0,0 +1,1118 @@ +/* + * 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; + +/** + * + * + *
+ * The rotation time and period for a [Secret][google.cloud.secretmanager.v1.Secret]. At next_rotation_time, Secret
+ * Manager will send a Pub/Sub notification to the topics configured on the
+ * Secret. [Secret.topics][google.cloud.secretmanager.v1.Secret.topics] must be set to configure rotation.
+ * 
+ * + * Protobuf type {@code google.cloud.secretmanager.v1.Rotation} + */ +public final class Rotation extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.secretmanager.v1.Rotation) + RotationOrBuilder { + private static final long serialVersionUID = 0L; + // Use Rotation.newBuilder() to construct. + private Rotation(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private Rotation() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Rotation(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private Rotation( + 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: + { + com.google.protobuf.Timestamp.Builder subBuilder = null; + if (nextRotationTime_ != null) { + subBuilder = nextRotationTime_.toBuilder(); + } + nextRotationTime_ = + input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(nextRotationTime_); + nextRotationTime_ = subBuilder.buildPartial(); + } + + break; + } + case 18: + { + com.google.protobuf.Duration.Builder subBuilder = null; + if (rotationPeriod_ != null) { + subBuilder = rotationPeriod_.toBuilder(); + } + rotationPeriod_ = + input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(rotationPeriod_); + rotationPeriod_ = subBuilder.buildPartial(); + } + + 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_Rotation_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.secretmanager.v1.ResourcesProto + .internal_static_google_cloud_secretmanager_v1_Rotation_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.secretmanager.v1.Rotation.class, + com.google.cloud.secretmanager.v1.Rotation.Builder.class); + } + + public static final int NEXT_ROTATION_TIME_FIELD_NUMBER = 1; + private com.google.protobuf.Timestamp nextRotationTime_; + /** + * + * + *
+   * Optional. Timestamp in UTC at which the [Secret][google.cloud.secretmanager.v1.Secret] is scheduled to rotate.
+   * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] MUST  be set if [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set.
+   * 
+ * + * + * .google.protobuf.Timestamp next_rotation_time = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the nextRotationTime field is set. + */ + @java.lang.Override + public boolean hasNextRotationTime() { + return nextRotationTime_ != null; + } + /** + * + * + *
+   * Optional. Timestamp in UTC at which the [Secret][google.cloud.secretmanager.v1.Secret] is scheduled to rotate.
+   * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] MUST  be set if [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set.
+   * 
+ * + * + * .google.protobuf.Timestamp next_rotation_time = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The nextRotationTime. + */ + @java.lang.Override + public com.google.protobuf.Timestamp getNextRotationTime() { + return nextRotationTime_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : nextRotationTime_; + } + /** + * + * + *
+   * Optional. Timestamp in UTC at which the [Secret][google.cloud.secretmanager.v1.Secret] is scheduled to rotate.
+   * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] MUST  be set if [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set.
+   * 
+ * + * + * .google.protobuf.Timestamp next_rotation_time = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.protobuf.TimestampOrBuilder getNextRotationTimeOrBuilder() { + return getNextRotationTime(); + } + + public static final int ROTATION_PERIOD_FIELD_NUMBER = 2; + private com.google.protobuf.Duration rotationPeriod_; + /** + * + * + *
+   * Input only. The Duration between rotation notifications. Must be in seconds
+   * and at least 3600s (1h) and at most 3153600000s (100 years).
+   * If [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set, [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] must be set.
+   * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] will be advanced by this period when the service
+   * automatically sends rotation notifications.
+   * 
+ * + * + * .google.protobuf.Duration rotation_period = 2 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * + * @return Whether the rotationPeriod field is set. + */ + @java.lang.Override + public boolean hasRotationPeriod() { + return rotationPeriod_ != null; + } + /** + * + * + *
+   * Input only. The Duration between rotation notifications. Must be in seconds
+   * and at least 3600s (1h) and at most 3153600000s (100 years).
+   * If [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set, [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] must be set.
+   * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] will be advanced by this period when the service
+   * automatically sends rotation notifications.
+   * 
+ * + * + * .google.protobuf.Duration rotation_period = 2 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * + * @return The rotationPeriod. + */ + @java.lang.Override + public com.google.protobuf.Duration getRotationPeriod() { + return rotationPeriod_ == null + ? com.google.protobuf.Duration.getDefaultInstance() + : rotationPeriod_; + } + /** + * + * + *
+   * Input only. The Duration between rotation notifications. Must be in seconds
+   * and at least 3600s (1h) and at most 3153600000s (100 years).
+   * If [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set, [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] must be set.
+   * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] will be advanced by this period when the service
+   * automatically sends rotation notifications.
+   * 
+ * + * + * .google.protobuf.Duration rotation_period = 2 [(.google.api.field_behavior) = INPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.protobuf.DurationOrBuilder getRotationPeriodOrBuilder() { + return getRotationPeriod(); + } + + 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 (nextRotationTime_ != null) { + output.writeMessage(1, getNextRotationTime()); + } + if (rotationPeriod_ != null) { + output.writeMessage(2, getRotationPeriod()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (nextRotationTime_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getNextRotationTime()); + } + if (rotationPeriod_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getRotationPeriod()); + } + 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.Rotation)) { + return super.equals(obj); + } + com.google.cloud.secretmanager.v1.Rotation other = + (com.google.cloud.secretmanager.v1.Rotation) obj; + + if (hasNextRotationTime() != other.hasNextRotationTime()) return false; + if (hasNextRotationTime()) { + if (!getNextRotationTime().equals(other.getNextRotationTime())) return false; + } + if (hasRotationPeriod() != other.hasRotationPeriod()) return false; + if (hasRotationPeriod()) { + if (!getRotationPeriod().equals(other.getRotationPeriod())) 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(); + if (hasNextRotationTime()) { + hash = (37 * hash) + NEXT_ROTATION_TIME_FIELD_NUMBER; + hash = (53 * hash) + getNextRotationTime().hashCode(); + } + if (hasRotationPeriod()) { + hash = (37 * hash) + ROTATION_PERIOD_FIELD_NUMBER; + hash = (53 * hash) + getRotationPeriod().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.secretmanager.v1.Rotation parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.secretmanager.v1.Rotation 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.Rotation parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.secretmanager.v1.Rotation 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.Rotation parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.secretmanager.v1.Rotation 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.Rotation parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.secretmanager.v1.Rotation 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.Rotation parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.secretmanager.v1.Rotation 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.Rotation 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.Rotation 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.Rotation 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; + } + /** + * + * + *
+   * The rotation time and period for a [Secret][google.cloud.secretmanager.v1.Secret]. At next_rotation_time, Secret
+   * Manager will send a Pub/Sub notification to the topics configured on the
+   * Secret. [Secret.topics][google.cloud.secretmanager.v1.Secret.topics] must be set to configure rotation.
+   * 
+ * + * Protobuf type {@code google.cloud.secretmanager.v1.Rotation} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.secretmanager.v1.Rotation) + com.google.cloud.secretmanager.v1.RotationOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.secretmanager.v1.ResourcesProto + .internal_static_google_cloud_secretmanager_v1_Rotation_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.secretmanager.v1.ResourcesProto + .internal_static_google_cloud_secretmanager_v1_Rotation_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.secretmanager.v1.Rotation.class, + com.google.cloud.secretmanager.v1.Rotation.Builder.class); + } + + // Construct using com.google.cloud.secretmanager.v1.Rotation.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(); + if (nextRotationTimeBuilder_ == null) { + nextRotationTime_ = null; + } else { + nextRotationTime_ = null; + nextRotationTimeBuilder_ = null; + } + if (rotationPeriodBuilder_ == null) { + rotationPeriod_ = null; + } else { + rotationPeriod_ = null; + rotationPeriodBuilder_ = null; + } + 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_Rotation_descriptor; + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.Rotation getDefaultInstanceForType() { + return com.google.cloud.secretmanager.v1.Rotation.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.Rotation build() { + com.google.cloud.secretmanager.v1.Rotation result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.Rotation buildPartial() { + com.google.cloud.secretmanager.v1.Rotation result = + new com.google.cloud.secretmanager.v1.Rotation(this); + if (nextRotationTimeBuilder_ == null) { + result.nextRotationTime_ = nextRotationTime_; + } else { + result.nextRotationTime_ = nextRotationTimeBuilder_.build(); + } + if (rotationPeriodBuilder_ == null) { + result.rotationPeriod_ = rotationPeriod_; + } else { + result.rotationPeriod_ = rotationPeriodBuilder_.build(); + } + 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.Rotation) { + return mergeFrom((com.google.cloud.secretmanager.v1.Rotation) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.secretmanager.v1.Rotation other) { + if (other == com.google.cloud.secretmanager.v1.Rotation.getDefaultInstance()) return this; + if (other.hasNextRotationTime()) { + mergeNextRotationTime(other.getNextRotationTime()); + } + if (other.hasRotationPeriod()) { + mergeRotationPeriod(other.getRotationPeriod()); + } + 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.Rotation parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.google.cloud.secretmanager.v1.Rotation) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private com.google.protobuf.Timestamp nextRotationTime_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder> + nextRotationTimeBuilder_; + /** + * + * + *
+     * Optional. Timestamp in UTC at which the [Secret][google.cloud.secretmanager.v1.Secret] is scheduled to rotate.
+     * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] MUST  be set if [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set.
+     * 
+ * + * + * .google.protobuf.Timestamp next_rotation_time = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the nextRotationTime field is set. + */ + public boolean hasNextRotationTime() { + return nextRotationTimeBuilder_ != null || nextRotationTime_ != null; + } + /** + * + * + *
+     * Optional. Timestamp in UTC at which the [Secret][google.cloud.secretmanager.v1.Secret] is scheduled to rotate.
+     * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] MUST  be set if [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set.
+     * 
+ * + * + * .google.protobuf.Timestamp next_rotation_time = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The nextRotationTime. + */ + public com.google.protobuf.Timestamp getNextRotationTime() { + if (nextRotationTimeBuilder_ == null) { + return nextRotationTime_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : nextRotationTime_; + } else { + return nextRotationTimeBuilder_.getMessage(); + } + } + /** + * + * + *
+     * Optional. Timestamp in UTC at which the [Secret][google.cloud.secretmanager.v1.Secret] is scheduled to rotate.
+     * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] MUST  be set if [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set.
+     * 
+ * + * + * .google.protobuf.Timestamp next_rotation_time = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setNextRotationTime(com.google.protobuf.Timestamp value) { + if (nextRotationTimeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + nextRotationTime_ = value; + onChanged(); + } else { + nextRotationTimeBuilder_.setMessage(value); + } + + return this; + } + /** + * + * + *
+     * Optional. Timestamp in UTC at which the [Secret][google.cloud.secretmanager.v1.Secret] is scheduled to rotate.
+     * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] MUST  be set if [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set.
+     * 
+ * + * + * .google.protobuf.Timestamp next_rotation_time = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setNextRotationTime(com.google.protobuf.Timestamp.Builder builderForValue) { + if (nextRotationTimeBuilder_ == null) { + nextRotationTime_ = builderForValue.build(); + onChanged(); + } else { + nextRotationTimeBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * + * + *
+     * Optional. Timestamp in UTC at which the [Secret][google.cloud.secretmanager.v1.Secret] is scheduled to rotate.
+     * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] MUST  be set if [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set.
+     * 
+ * + * + * .google.protobuf.Timestamp next_rotation_time = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeNextRotationTime(com.google.protobuf.Timestamp value) { + if (nextRotationTimeBuilder_ == null) { + if (nextRotationTime_ != null) { + nextRotationTime_ = + com.google.protobuf.Timestamp.newBuilder(nextRotationTime_) + .mergeFrom(value) + .buildPartial(); + } else { + nextRotationTime_ = value; + } + onChanged(); + } else { + nextRotationTimeBuilder_.mergeFrom(value); + } + + return this; + } + /** + * + * + *
+     * Optional. Timestamp in UTC at which the [Secret][google.cloud.secretmanager.v1.Secret] is scheduled to rotate.
+     * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] MUST  be set if [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set.
+     * 
+ * + * + * .google.protobuf.Timestamp next_rotation_time = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearNextRotationTime() { + if (nextRotationTimeBuilder_ == null) { + nextRotationTime_ = null; + onChanged(); + } else { + nextRotationTime_ = null; + nextRotationTimeBuilder_ = null; + } + + return this; + } + /** + * + * + *
+     * Optional. Timestamp in UTC at which the [Secret][google.cloud.secretmanager.v1.Secret] is scheduled to rotate.
+     * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] MUST  be set if [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set.
+     * 
+ * + * + * .google.protobuf.Timestamp next_rotation_time = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.protobuf.Timestamp.Builder getNextRotationTimeBuilder() { + + onChanged(); + return getNextRotationTimeFieldBuilder().getBuilder(); + } + /** + * + * + *
+     * Optional. Timestamp in UTC at which the [Secret][google.cloud.secretmanager.v1.Secret] is scheduled to rotate.
+     * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] MUST  be set if [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set.
+     * 
+ * + * + * .google.protobuf.Timestamp next_rotation_time = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.protobuf.TimestampOrBuilder getNextRotationTimeOrBuilder() { + if (nextRotationTimeBuilder_ != null) { + return nextRotationTimeBuilder_.getMessageOrBuilder(); + } else { + return nextRotationTime_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : nextRotationTime_; + } + } + /** + * + * + *
+     * Optional. Timestamp in UTC at which the [Secret][google.cloud.secretmanager.v1.Secret] is scheduled to rotate.
+     * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] MUST  be set if [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set.
+     * 
+ * + * + * .google.protobuf.Timestamp next_rotation_time = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder> + getNextRotationTimeFieldBuilder() { + if (nextRotationTimeBuilder_ == null) { + nextRotationTimeBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder>( + getNextRotationTime(), getParentForChildren(), isClean()); + nextRotationTime_ = null; + } + return nextRotationTimeBuilder_; + } + + private com.google.protobuf.Duration rotationPeriod_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Duration, + com.google.protobuf.Duration.Builder, + com.google.protobuf.DurationOrBuilder> + rotationPeriodBuilder_; + /** + * + * + *
+     * Input only. The Duration between rotation notifications. Must be in seconds
+     * and at least 3600s (1h) and at most 3153600000s (100 years).
+     * If [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set, [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] must be set.
+     * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] will be advanced by this period when the service
+     * automatically sends rotation notifications.
+     * 
+ * + * + * .google.protobuf.Duration rotation_period = 2 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * + * @return Whether the rotationPeriod field is set. + */ + public boolean hasRotationPeriod() { + return rotationPeriodBuilder_ != null || rotationPeriod_ != null; + } + /** + * + * + *
+     * Input only. The Duration between rotation notifications. Must be in seconds
+     * and at least 3600s (1h) and at most 3153600000s (100 years).
+     * If [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set, [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] must be set.
+     * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] will be advanced by this period when the service
+     * automatically sends rotation notifications.
+     * 
+ * + * + * .google.protobuf.Duration rotation_period = 2 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * + * @return The rotationPeriod. + */ + public com.google.protobuf.Duration getRotationPeriod() { + if (rotationPeriodBuilder_ == null) { + return rotationPeriod_ == null + ? com.google.protobuf.Duration.getDefaultInstance() + : rotationPeriod_; + } else { + return rotationPeriodBuilder_.getMessage(); + } + } + /** + * + * + *
+     * Input only. The Duration between rotation notifications. Must be in seconds
+     * and at least 3600s (1h) and at most 3153600000s (100 years).
+     * If [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set, [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] must be set.
+     * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] will be advanced by this period when the service
+     * automatically sends rotation notifications.
+     * 
+ * + * + * .google.protobuf.Duration rotation_period = 2 [(.google.api.field_behavior) = INPUT_ONLY]; + * + */ + public Builder setRotationPeriod(com.google.protobuf.Duration value) { + if (rotationPeriodBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + rotationPeriod_ = value; + onChanged(); + } else { + rotationPeriodBuilder_.setMessage(value); + } + + return this; + } + /** + * + * + *
+     * Input only. The Duration between rotation notifications. Must be in seconds
+     * and at least 3600s (1h) and at most 3153600000s (100 years).
+     * If [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set, [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] must be set.
+     * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] will be advanced by this period when the service
+     * automatically sends rotation notifications.
+     * 
+ * + * + * .google.protobuf.Duration rotation_period = 2 [(.google.api.field_behavior) = INPUT_ONLY]; + * + */ + public Builder setRotationPeriod(com.google.protobuf.Duration.Builder builderForValue) { + if (rotationPeriodBuilder_ == null) { + rotationPeriod_ = builderForValue.build(); + onChanged(); + } else { + rotationPeriodBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * + * + *
+     * Input only. The Duration between rotation notifications. Must be in seconds
+     * and at least 3600s (1h) and at most 3153600000s (100 years).
+     * If [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set, [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] must be set.
+     * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] will be advanced by this period when the service
+     * automatically sends rotation notifications.
+     * 
+ * + * + * .google.protobuf.Duration rotation_period = 2 [(.google.api.field_behavior) = INPUT_ONLY]; + * + */ + public Builder mergeRotationPeriod(com.google.protobuf.Duration value) { + if (rotationPeriodBuilder_ == null) { + if (rotationPeriod_ != null) { + rotationPeriod_ = + com.google.protobuf.Duration.newBuilder(rotationPeriod_) + .mergeFrom(value) + .buildPartial(); + } else { + rotationPeriod_ = value; + } + onChanged(); + } else { + rotationPeriodBuilder_.mergeFrom(value); + } + + return this; + } + /** + * + * + *
+     * Input only. The Duration between rotation notifications. Must be in seconds
+     * and at least 3600s (1h) and at most 3153600000s (100 years).
+     * If [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set, [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] must be set.
+     * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] will be advanced by this period when the service
+     * automatically sends rotation notifications.
+     * 
+ * + * + * .google.protobuf.Duration rotation_period = 2 [(.google.api.field_behavior) = INPUT_ONLY]; + * + */ + public Builder clearRotationPeriod() { + if (rotationPeriodBuilder_ == null) { + rotationPeriod_ = null; + onChanged(); + } else { + rotationPeriod_ = null; + rotationPeriodBuilder_ = null; + } + + return this; + } + /** + * + * + *
+     * Input only. The Duration between rotation notifications. Must be in seconds
+     * and at least 3600s (1h) and at most 3153600000s (100 years).
+     * If [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set, [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] must be set.
+     * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] will be advanced by this period when the service
+     * automatically sends rotation notifications.
+     * 
+ * + * + * .google.protobuf.Duration rotation_period = 2 [(.google.api.field_behavior) = INPUT_ONLY]; + * + */ + public com.google.protobuf.Duration.Builder getRotationPeriodBuilder() { + + onChanged(); + return getRotationPeriodFieldBuilder().getBuilder(); + } + /** + * + * + *
+     * Input only. The Duration between rotation notifications. Must be in seconds
+     * and at least 3600s (1h) and at most 3153600000s (100 years).
+     * If [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set, [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] must be set.
+     * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] will be advanced by this period when the service
+     * automatically sends rotation notifications.
+     * 
+ * + * + * .google.protobuf.Duration rotation_period = 2 [(.google.api.field_behavior) = INPUT_ONLY]; + * + */ + public com.google.protobuf.DurationOrBuilder getRotationPeriodOrBuilder() { + if (rotationPeriodBuilder_ != null) { + return rotationPeriodBuilder_.getMessageOrBuilder(); + } else { + return rotationPeriod_ == null + ? com.google.protobuf.Duration.getDefaultInstance() + : rotationPeriod_; + } + } + /** + * + * + *
+     * Input only. The Duration between rotation notifications. Must be in seconds
+     * and at least 3600s (1h) and at most 3153600000s (100 years).
+     * If [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set, [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] must be set.
+     * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] will be advanced by this period when the service
+     * automatically sends rotation notifications.
+     * 
+ * + * + * .google.protobuf.Duration rotation_period = 2 [(.google.api.field_behavior) = INPUT_ONLY]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Duration, + com.google.protobuf.Duration.Builder, + com.google.protobuf.DurationOrBuilder> + getRotationPeriodFieldBuilder() { + if (rotationPeriodBuilder_ == null) { + rotationPeriodBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Duration, + com.google.protobuf.Duration.Builder, + com.google.protobuf.DurationOrBuilder>( + getRotationPeriod(), getParentForChildren(), isClean()); + rotationPeriod_ = null; + } + return rotationPeriodBuilder_; + } + + @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.Rotation) + } + + // @@protoc_insertion_point(class_scope:google.cloud.secretmanager.v1.Rotation) + private static final com.google.cloud.secretmanager.v1.Rotation DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.secretmanager.v1.Rotation(); + } + + public static com.google.cloud.secretmanager.v1.Rotation getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Rotation parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new Rotation(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.Rotation getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/RotationOrBuilder.java b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/RotationOrBuilder.java new file mode 100644 index 00000000..1954b89a --- /dev/null +++ b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/RotationOrBuilder.java @@ -0,0 +1,122 @@ +/* + * 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 RotationOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.secretmanager.v1.Rotation) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Optional. Timestamp in UTC at which the [Secret][google.cloud.secretmanager.v1.Secret] is scheduled to rotate.
+   * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] MUST  be set if [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set.
+   * 
+ * + * + * .google.protobuf.Timestamp next_rotation_time = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the nextRotationTime field is set. + */ + boolean hasNextRotationTime(); + /** + * + * + *
+   * Optional. Timestamp in UTC at which the [Secret][google.cloud.secretmanager.v1.Secret] is scheduled to rotate.
+   * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] MUST  be set if [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set.
+   * 
+ * + * + * .google.protobuf.Timestamp next_rotation_time = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The nextRotationTime. + */ + com.google.protobuf.Timestamp getNextRotationTime(); + /** + * + * + *
+   * Optional. Timestamp in UTC at which the [Secret][google.cloud.secretmanager.v1.Secret] is scheduled to rotate.
+   * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] MUST  be set if [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set.
+   * 
+ * + * + * .google.protobuf.Timestamp next_rotation_time = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.protobuf.TimestampOrBuilder getNextRotationTimeOrBuilder(); + + /** + * + * + *
+   * Input only. The Duration between rotation notifications. Must be in seconds
+   * and at least 3600s (1h) and at most 3153600000s (100 years).
+   * If [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set, [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] must be set.
+   * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] will be advanced by this period when the service
+   * automatically sends rotation notifications.
+   * 
+ * + * + * .google.protobuf.Duration rotation_period = 2 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * + * @return Whether the rotationPeriod field is set. + */ + boolean hasRotationPeriod(); + /** + * + * + *
+   * Input only. The Duration between rotation notifications. Must be in seconds
+   * and at least 3600s (1h) and at most 3153600000s (100 years).
+   * If [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set, [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] must be set.
+   * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] will be advanced by this period when the service
+   * automatically sends rotation notifications.
+   * 
+ * + * + * .google.protobuf.Duration rotation_period = 2 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * + * @return The rotationPeriod. + */ + com.google.protobuf.Duration getRotationPeriod(); + /** + * + * + *
+   * Input only. The Duration between rotation notifications. Must be in seconds
+   * and at least 3600s (1h) and at most 3153600000s (100 years).
+   * If [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set, [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] must be set.
+   * [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] will be advanced by this period when the service
+   * automatically sends rotation notifications.
+   * 
+ * + * + * .google.protobuf.Duration rotation_period = 2 [(.google.api.field_behavior) = INPUT_ONLY]; + * + */ + com.google.protobuf.DurationOrBuilder getRotationPeriodOrBuilder(); +} 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 c7718505..39aa1316 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 @@ -165,6 +165,22 @@ private Secret( expiration_ = subBuilder.buildPartial(); } expirationCase_ = 7; + break; + } + case 74: + { + com.google.cloud.secretmanager.v1.Rotation.Builder subBuilder = null; + if (rotation_ != null) { + subBuilder = rotation_.toBuilder(); + } + rotation_ = + input.readMessage( + com.google.cloud.secretmanager.v1.Rotation.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(rotation_); + rotation_ = subBuilder.buildPartial(); + } + break; } default: @@ -735,6 +751,63 @@ public com.google.protobuf.DurationOrBuilder getTtlOrBuilder() { return com.google.protobuf.Duration.getDefaultInstance(); } + public static final int ROTATION_FIELD_NUMBER = 9; + private com.google.cloud.secretmanager.v1.Rotation rotation_; + /** + * + * + *
+   * Optional. Rotation policy attached to the [Secret][google.cloud.secretmanager.v1.Secret]. May be excluded if there is no
+   * rotation policy.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation rotation = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the rotation field is set. + */ + @java.lang.Override + public boolean hasRotation() { + return rotation_ != null; + } + /** + * + * + *
+   * Optional. Rotation policy attached to the [Secret][google.cloud.secretmanager.v1.Secret]. May be excluded if there is no
+   * rotation policy.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation rotation = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The rotation. + */ + @java.lang.Override + public com.google.cloud.secretmanager.v1.Rotation getRotation() { + return rotation_ == null + ? com.google.cloud.secretmanager.v1.Rotation.getDefaultInstance() + : rotation_; + } + /** + * + * + *
+   * Optional. Rotation policy attached to the [Secret][google.cloud.secretmanager.v1.Secret]. May be excluded if there is no
+   * rotation policy.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation rotation = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.cloud.secretmanager.v1.RotationOrBuilder getRotationOrBuilder() { + return getRotation(); + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -769,6 +842,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (expirationCase_ == 7) { output.writeMessage(7, (com.google.protobuf.Duration) expiration_); } + if (rotation_ != null) { + output.writeMessage(9, getRotation()); + } unknownFields.writeTo(output); } @@ -810,6 +886,9 @@ public int getSerializedSize() { com.google.protobuf.CodedOutputStream.computeMessageSize( 7, (com.google.protobuf.Duration) expiration_); } + if (rotation_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, getRotation()); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -836,6 +915,10 @@ public boolean equals(final java.lang.Object obj) { } if (!internalGetLabels().equals(other.internalGetLabels())) return false; if (!getTopicsList().equals(other.getTopicsList())) return false; + if (hasRotation() != other.hasRotation()) return false; + if (hasRotation()) { + if (!getRotation().equals(other.getRotation())) return false; + } if (!getExpirationCase().equals(other.getExpirationCase())) return false; switch (expirationCase_) { case 6: @@ -876,6 +959,10 @@ public int hashCode() { hash = (37 * hash) + TOPICS_FIELD_NUMBER; hash = (53 * hash) + getTopicsList().hashCode(); } + if (hasRotation()) { + hash = (37 * hash) + ROTATION_FIELD_NUMBER; + hash = (53 * hash) + getRotation().hashCode(); + } switch (expirationCase_) { case 6: hash = (37 * hash) + EXPIRE_TIME_FIELD_NUMBER; @@ -1079,6 +1166,12 @@ public Builder clear() { } else { topicsBuilder_.clear(); } + if (rotationBuilder_ == null) { + rotation_ = null; + } else { + rotation_ = null; + rotationBuilder_ = null; + } expirationCase_ = 0; expiration_ = null; return this; @@ -1145,6 +1238,11 @@ public com.google.cloud.secretmanager.v1.Secret buildPartial() { result.expiration_ = ttlBuilder_.build(); } } + if (rotationBuilder_ == null) { + result.rotation_ = rotation_; + } else { + result.rotation_ = rotationBuilder_.build(); + } result.expirationCase_ = expirationCase_; onBuilt(); return result; @@ -1233,6 +1331,9 @@ public Builder mergeFrom(com.google.cloud.secretmanager.v1.Secret other) { } } } + if (other.hasRotation()) { + mergeRotation(other.getRotation()); + } switch (other.getExpirationCase()) { case EXPIRE_TIME: { @@ -2850,6 +2951,218 @@ public com.google.protobuf.DurationOrBuilder getTtlOrBuilder() { return ttlBuilder_; } + private com.google.cloud.secretmanager.v1.Rotation rotation_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.secretmanager.v1.Rotation, + com.google.cloud.secretmanager.v1.Rotation.Builder, + com.google.cloud.secretmanager.v1.RotationOrBuilder> + rotationBuilder_; + /** + * + * + *
+     * Optional. Rotation policy attached to the [Secret][google.cloud.secretmanager.v1.Secret]. May be excluded if there is no
+     * rotation policy.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation rotation = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the rotation field is set. + */ + public boolean hasRotation() { + return rotationBuilder_ != null || rotation_ != null; + } + /** + * + * + *
+     * Optional. Rotation policy attached to the [Secret][google.cloud.secretmanager.v1.Secret]. May be excluded if there is no
+     * rotation policy.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation rotation = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The rotation. + */ + public com.google.cloud.secretmanager.v1.Rotation getRotation() { + if (rotationBuilder_ == null) { + return rotation_ == null + ? com.google.cloud.secretmanager.v1.Rotation.getDefaultInstance() + : rotation_; + } else { + return rotationBuilder_.getMessage(); + } + } + /** + * + * + *
+     * Optional. Rotation policy attached to the [Secret][google.cloud.secretmanager.v1.Secret]. May be excluded if there is no
+     * rotation policy.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation rotation = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setRotation(com.google.cloud.secretmanager.v1.Rotation value) { + if (rotationBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + rotation_ = value; + onChanged(); + } else { + rotationBuilder_.setMessage(value); + } + + return this; + } + /** + * + * + *
+     * Optional. Rotation policy attached to the [Secret][google.cloud.secretmanager.v1.Secret]. May be excluded if there is no
+     * rotation policy.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation rotation = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setRotation(com.google.cloud.secretmanager.v1.Rotation.Builder builderForValue) { + if (rotationBuilder_ == null) { + rotation_ = builderForValue.build(); + onChanged(); + } else { + rotationBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * + * + *
+     * Optional. Rotation policy attached to the [Secret][google.cloud.secretmanager.v1.Secret]. May be excluded if there is no
+     * rotation policy.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation rotation = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeRotation(com.google.cloud.secretmanager.v1.Rotation value) { + if (rotationBuilder_ == null) { + if (rotation_ != null) { + rotation_ = + com.google.cloud.secretmanager.v1.Rotation.newBuilder(rotation_) + .mergeFrom(value) + .buildPartial(); + } else { + rotation_ = value; + } + onChanged(); + } else { + rotationBuilder_.mergeFrom(value); + } + + return this; + } + /** + * + * + *
+     * Optional. Rotation policy attached to the [Secret][google.cloud.secretmanager.v1.Secret]. May be excluded if there is no
+     * rotation policy.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation rotation = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearRotation() { + if (rotationBuilder_ == null) { + rotation_ = null; + onChanged(); + } else { + rotation_ = null; + rotationBuilder_ = null; + } + + return this; + } + /** + * + * + *
+     * Optional. Rotation policy attached to the [Secret][google.cloud.secretmanager.v1.Secret]. May be excluded if there is no
+     * rotation policy.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation rotation = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.secretmanager.v1.Rotation.Builder getRotationBuilder() { + + onChanged(); + return getRotationFieldBuilder().getBuilder(); + } + /** + * + * + *
+     * Optional. Rotation policy attached to the [Secret][google.cloud.secretmanager.v1.Secret]. May be excluded if there is no
+     * rotation policy.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation rotation = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.secretmanager.v1.RotationOrBuilder getRotationOrBuilder() { + if (rotationBuilder_ != null) { + return rotationBuilder_.getMessageOrBuilder(); + } else { + return rotation_ == null + ? com.google.cloud.secretmanager.v1.Rotation.getDefaultInstance() + : rotation_; + } + } + /** + * + * + *
+     * Optional. Rotation policy attached to the [Secret][google.cloud.secretmanager.v1.Secret]. May be excluded if there is no
+     * rotation policy.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation rotation = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.secretmanager.v1.Rotation, + com.google.cloud.secretmanager.v1.Rotation.Builder, + com.google.cloud.secretmanager.v1.RotationOrBuilder> + getRotationFieldBuilder() { + if (rotationBuilder_ == null) { + rotationBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.secretmanager.v1.Rotation, + com.google.cloud.secretmanager.v1.Rotation.Builder, + com.google.cloud.secretmanager.v1.RotationOrBuilder>( + getRotation(), getParentForChildren(), isClean()); + rotation_ = null; + } + return rotationBuilder_; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); 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 34e0e820..341bb8b8 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 @@ -362,5 +362,49 @@ public interface SecretOrBuilder */ com.google.protobuf.DurationOrBuilder getTtlOrBuilder(); + /** + * + * + *
+   * Optional. Rotation policy attached to the [Secret][google.cloud.secretmanager.v1.Secret]. May be excluded if there is no
+   * rotation policy.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation rotation = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the rotation field is set. + */ + boolean hasRotation(); + /** + * + * + *
+   * Optional. Rotation policy attached to the [Secret][google.cloud.secretmanager.v1.Secret]. May be excluded if there is no
+   * rotation policy.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation rotation = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The rotation. + */ + com.google.cloud.secretmanager.v1.Rotation getRotation(); + /** + * + * + *
+   * Optional. Rotation policy attached to the [Secret][google.cloud.secretmanager.v1.Secret]. May be excluded if there is no
+   * rotation policy.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation rotation = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.cloud.secretmanager.v1.RotationOrBuilder getRotationOrBuilder(); + public com.google.cloud.secretmanager.v1.Secret.ExpirationCase getExpirationCase(); } 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 235444d1..597cfe8a 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 @@ -90,6 +90,10 @@ message Secret { // Input only. The TTL for the [Secret][google.cloud.secretmanager.v1.Secret]. google.protobuf.Duration ttl = 7 [(google.api.field_behavior) = INPUT_ONLY]; } + + // Optional. Rotation policy attached to the [Secret][google.cloud.secretmanager.v1.Secret]. May be excluded if there is no + // rotation policy. + Rotation rotation = 9 [(google.api.field_behavior) = OPTIONAL]; } // A secret version resource in the Secret Manager API. @@ -278,6 +282,24 @@ message Topic { string name = 1 [(google.api.field_behavior) = REQUIRED]; } +// The rotation time and period for a [Secret][google.cloud.secretmanager.v1.Secret]. At next_rotation_time, Secret +// Manager will send a Pub/Sub notification to the topics configured on the +// Secret. [Secret.topics][google.cloud.secretmanager.v1.Secret.topics] must be set to configure rotation. +message Rotation { + // Optional. Timestamp in UTC at which the [Secret][google.cloud.secretmanager.v1.Secret] is scheduled to rotate. + // + // [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] MUST be set if [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set. + google.protobuf.Timestamp next_rotation_time = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Input only. The Duration between rotation notifications. Must be in seconds + // and at least 3600s (1h) and at most 3153600000s (100 years). + // + // If [rotation_period][google.cloud.secretmanager.v1.Rotation.rotation_period] is set, [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] must be set. + // [next_rotation_time][google.cloud.secretmanager.v1.Rotation.next_rotation_time] will be advanced by this period when the service + // automatically sends rotation notifications. + google.protobuf.Duration rotation_period = 2 [(google.api.field_behavior) = INPUT_ONLY]; +} + // 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/synth.metadata b/synth.metadata index e4877fd7..89f83a60 100644 --- a/synth.metadata +++ b/synth.metadata @@ -11,8 +11,8 @@ "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "1305ca41d554eb0725237561e34129373bb8cbc1", - "internalRef": "362856902" + "sha": "6c7693680fe320b4705dd8500c255843749eb58a", + "internalRef": "365574085" } }, { @@ -174,6 +174,8 @@ "proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ReplicationStatus.java", "proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ReplicationStatusOrBuilder.java", "proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ResourcesProto.java", + "proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Rotation.java", + "proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/RotationOrBuilder.java", "proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Secret.java", "proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretName.java", "proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretOrBuilder.java",