From 731ee6e052208b08f50710ad0d77c3e2ac08159a Mon Sep 17 00:00:00 2001 From: yoshi-automation Date: Mon, 29 Mar 2021 14:39:00 -0700 Subject: [PATCH] feat: Rotation for Secrets Users can now configure rotation schedules for their secrets. Secret Manager sends messages to PubSub topics configured on the secret based on the provided rotation frequency and rotation time. Committer: @rlingutla PiperOrigin-RevId: 365574085 Source-Author: Google APIs Source-Date: Mon Mar 29 07:58:13 2021 -0700 Source-Repo: googleapis/googleapis Source-Sha: 6c7693680fe320b4705dd8500c255843749eb58a 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 | 8 +- 8 files changed, 1707 insertions(+), 63 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 00bfc3b1..ea1414e1 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,15 +4,15 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-secretmanager.git", - "sha": "b894a96af3bc29ab4cabaed66de1f7417b58bcf3" + "sha": "c352ecbd06f6258e5856dbf2223cf26e7982e843" } }, { "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",