Skip to content
This repository was archived by the owner on Sep 16, 2023. It is now read-only.

Commit 9a63841

Browse files
feat: AuditConfig for IAM v1 (#743)
- [ ] Regenerate this pull request now. PiperOrigin-RevId: 439356405 Source-Link: googleapis/googleapis@afa2ba1 Source-Link: https://github.com/googleapis/googleapis-gen/commit/3e40c17e1510c95fab58fc2143ccb61cceca5989 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiM2U0MGMxN2UxNTEwYzk1ZmFiNThmYzIxNDNjY2I2MWNjZWNhNTk4OSJ9 feat: Added support for accessing secret versions by alias Clients can now associate custom strings with specified secret versions for later access. PiperOrigin-RevId: 439320490 Source-Link: googleapis/googleapis@bbe5618 Source-Link: https://github.com/googleapis/googleapis-gen/commit/6bdfcfd879740c62bbe11b2ebc6b8371f0d420af Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNmJkZmNmZDg3OTc0MGM2MmJiZTExYjJlYmM2YjgzNzFmMGQ0MjBhZiJ9
1 parent 16551c2 commit 9a63841

File tree

6 files changed

+614
-65
lines changed

6 files changed

+614
-65
lines changed

google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClient.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1596,6 +1596,7 @@ public final SecretVersion destroySecretVersion(DestroySecretVersionRequest requ
15961596
* SetIamPolicyRequest.newBuilder()
15971597
* .setResource(ProjectName.of("[PROJECT]").toString())
15981598
* .setPolicy(Policy.newBuilder().build())
1599+
* .setUpdateMask(FieldMask.newBuilder().build())
15991600
* .build();
16001601
* Policy response = secretManagerServiceClient.setIamPolicy(request);
16011602
* }
@@ -1624,6 +1625,7 @@ public final Policy setIamPolicy(SetIamPolicyRequest request) {
16241625
* SetIamPolicyRequest.newBuilder()
16251626
* .setResource(ProjectName.of("[PROJECT]").toString())
16261627
* .setPolicy(Policy.newBuilder().build())
1628+
* .setUpdateMask(FieldMask.newBuilder().build())
16271629
* .build();
16281630
* ApiFuture<Policy> future =
16291631
* secretManagerServiceClient.setIamPolicyCallable().futureCall(request);

google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClientTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import com.google.api.gax.rpc.ApiClientHeaderProvider;
2828
import com.google.api.gax.rpc.InvalidArgumentException;
2929
import com.google.common.collect.Lists;
30+
import com.google.iam.v1.AuditConfig;
3031
import com.google.iam.v1.Binding;
3132
import com.google.iam.v1.GetIamPolicyRequest;
3233
import com.google.iam.v1.GetPolicyOptions;
@@ -191,6 +192,7 @@ public void createSecretTest() throws Exception {
191192
.addAllTopics(new ArrayList<Topic>())
192193
.setEtag("etag3123477")
193194
.setRotation(Rotation.newBuilder().build())
195+
.putAllVersionAliases(new HashMap<String, Long>())
194196
.build();
195197
mockSecretManagerService.addResponse(expectedResponse);
196198

@@ -241,6 +243,7 @@ public void createSecretTest2() throws Exception {
241243
.addAllTopics(new ArrayList<Topic>())
242244
.setEtag("etag3123477")
243245
.setRotation(Rotation.newBuilder().build())
246+
.putAllVersionAliases(new HashMap<String, Long>())
244247
.build();
245248
mockSecretManagerService.addResponse(expectedResponse);
246249

@@ -383,6 +386,7 @@ public void getSecretTest() throws Exception {
383386
.addAllTopics(new ArrayList<Topic>())
384387
.setEtag("etag3123477")
385388
.setRotation(Rotation.newBuilder().build())
389+
.putAllVersionAliases(new HashMap<String, Long>())
386390
.build();
387391
mockSecretManagerService.addResponse(expectedResponse);
388392

@@ -427,6 +431,7 @@ public void getSecretTest2() throws Exception {
427431
.addAllTopics(new ArrayList<Topic>())
428432
.setEtag("etag3123477")
429433
.setRotation(Rotation.newBuilder().build())
434+
.putAllVersionAliases(new HashMap<String, Long>())
430435
.build();
431436
mockSecretManagerService.addResponse(expectedResponse);
432437

@@ -471,6 +476,7 @@ public void updateSecretTest() throws Exception {
471476
.addAllTopics(new ArrayList<Topic>())
472477
.setEtag("etag3123477")
473478
.setRotation(Rotation.newBuilder().build())
479+
.putAllVersionAliases(new HashMap<String, Long>())
474480
.build();
475481
mockSecretManagerService.addResponse(expectedResponse);
476482

@@ -1095,6 +1101,7 @@ public void setIamPolicyTest() throws Exception {
10951101
Policy.newBuilder()
10961102
.setVersion(351608024)
10971103
.addAllBindings(new ArrayList<Binding>())
1104+
.addAllAuditConfigs(new ArrayList<AuditConfig>())
10981105
.setEtag(ByteString.EMPTY)
10991106
.build();
11001107
mockSecretManagerService.addResponse(expectedResponse);
@@ -1103,6 +1110,7 @@ public void setIamPolicyTest() throws Exception {
11031110
SetIamPolicyRequest.newBuilder()
11041111
.setResource(ProjectName.of("[PROJECT]").toString())
11051112
.setPolicy(Policy.newBuilder().build())
1113+
.setUpdateMask(FieldMask.newBuilder().build())
11061114
.build();
11071115

11081116
Policy actualResponse = client.setIamPolicy(request);
@@ -1114,6 +1122,7 @@ public void setIamPolicyTest() throws Exception {
11141122

11151123
Assert.assertEquals(request.getResource(), actualRequest.getResource());
11161124
Assert.assertEquals(request.getPolicy(), actualRequest.getPolicy());
1125+
Assert.assertEquals(request.getUpdateMask(), actualRequest.getUpdateMask());
11171126
Assert.assertTrue(
11181127
channelProvider.isHeaderSent(
11191128
ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
@@ -1130,6 +1139,7 @@ public void setIamPolicyExceptionTest() throws Exception {
11301139
SetIamPolicyRequest.newBuilder()
11311140
.setResource(ProjectName.of("[PROJECT]").toString())
11321141
.setPolicy(Policy.newBuilder().build())
1142+
.setUpdateMask(FieldMask.newBuilder().build())
11331143
.build();
11341144
client.setIamPolicy(request);
11351145
Assert.fail("No exception raised");
@@ -1144,6 +1154,7 @@ public void getIamPolicyTest() throws Exception {
11441154
Policy.newBuilder()
11451155
.setVersion(351608024)
11461156
.addAllBindings(new ArrayList<Binding>())
1157+
.addAllAuditConfigs(new ArrayList<AuditConfig>())
11471158
.setEtag(ByteString.EMPTY)
11481159
.build();
11491160
mockSecretManagerService.addResponse(expectedResponse);

proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ResourcesProto.java

Lines changed: 82 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r
3535
internal_static_google_cloud_secretmanager_v1_Secret_LabelsEntry_descriptor;
3636
static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
3737
internal_static_google_cloud_secretmanager_v1_Secret_LabelsEntry_fieldAccessorTable;
38+
static final com.google.protobuf.Descriptors.Descriptor
39+
internal_static_google_cloud_secretmanager_v1_Secret_VersionAliasesEntry_descriptor;
40+
static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
41+
internal_static_google_cloud_secretmanager_v1_Secret_VersionAliasesEntry_fieldAccessorTable;
3842
static final com.google.protobuf.Descriptors.Descriptor
3943
internal_static_google_cloud_secretmanager_v1_SecretVersion_descriptor;
4044
static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
@@ -105,7 +109,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
105109
+ "google/api/annotations.proto\032\037google/api"
106110
+ "/field_behavior.proto\032\031google/api/resour"
107111
+ "ce.proto\032\036google/protobuf/duration.proto"
108-
+ "\032\037google/protobuf/timestamp.proto\"\336\004\n\006Se"
112+
+ "\032\037google/protobuf/timestamp.proto\"\356\005\n\006Se"
109113
+ "cret\022\021\n\004name\030\001 \001(\tB\003\340A\003\022G\n\013replication\030\002"
110114
+ " \001(\0132*.google.cloud.secretmanager.v1.Rep"
111115
+ "licationB\006\340A\005\340A\002\0224\n\013create_time\030\003 \001(\0132\032."
@@ -117,70 +121,74 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
117121
+ "stampB\003\340A\001H\000\022-\n\003ttl\030\007 \001(\0132\031.google.proto"
118122
+ "buf.DurationB\003\340A\004H\000\022\021\n\004etag\030\010 \001(\tB\003\340A\001\022>"
119123
+ "\n\010rotation\030\t \001(\0132\'.google.cloud.secretma"
120-
+ "nager.v1.RotationB\003\340A\001\032-\n\013LabelsEntry\022\013\n"
121-
+ "\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001:M\352AJ\n#secr"
122-
+ "etmanager.googleapis.com/Secret\022#project"
123-
+ "s/{project}/secrets/{secret}B\014\n\nexpirati"
124-
+ "on\"\242\004\n\rSecretVersion\022\021\n\004name\030\001 \001(\tB\003\340A\003\022"
125-
+ "4\n\013create_time\030\002 \001(\0132\032.google.protobuf.T"
126-
+ "imestampB\003\340A\003\0225\n\014destroy_time\030\003 \001(\0132\032.go"
127-
+ "ogle.protobuf.TimestampB\003\340A\003\022F\n\005state\030\004 "
128-
+ "\001(\01622.google.cloud.secretmanager.v1.Secr"
129-
+ "etVersion.StateB\003\340A\003\022L\n\022replication_stat"
130-
+ "us\030\005 \001(\01320.google.cloud.secretmanager.v1"
131-
+ ".ReplicationStatus\022\021\n\004etag\030\006 \001(\tB\003\340A\003\022.\n"
132-
+ "!client_specified_payload_checksum\030\007 \001(\010"
133-
+ "B\003\340A\003\"H\n\005State\022\025\n\021STATE_UNSPECIFIED\020\000\022\013\n"
134-
+ "\007ENABLED\020\001\022\014\n\010DISABLED\020\002\022\r\n\tDESTROYED\020\003:"
135-
+ "n\352Ak\n*secretmanager.googleapis.com/Secre"
136-
+ "tVersion\022=projects/{project}/secrets/{se"
137-
+ "cret}/versions/{secret_version}\"\220\004\n\013Repl"
138-
+ "ication\022I\n\tautomatic\030\001 \001(\01324.google.clou"
139-
+ "d.secretmanager.v1.Replication.Automatic"
140-
+ "H\000\022N\n\014user_managed\030\002 \001(\01326.google.cloud."
141-
+ "secretmanager.v1.Replication.UserManaged"
142-
+ "H\000\032o\n\tAutomatic\022b\n\033customer_managed_encr"
143-
+ "yption\030\001 \001(\01328.google.cloud.secretmanage"
144-
+ "r.v1.CustomerManagedEncryptionB\003\340A\001\032\345\001\n\013"
145-
+ "UserManaged\022U\n\010replicas\030\001 \003(\0132>.google.c"
146-
+ "loud.secretmanager.v1.Replication.UserMa"
147-
+ "naged.ReplicaB\003\340A\002\032\177\n\007Replica\022\020\n\010locatio"
148-
+ "n\030\001 \001(\t\022b\n\033customer_managed_encryption\030\002"
149-
+ " \001(\01328.google.cloud.secretmanager.v1.Cus"
150-
+ "tomerManagedEncryptionB\003\340A\001B\r\n\013replicati"
151-
+ "on\"6\n\031CustomerManagedEncryption\022\031\n\014kms_k"
152-
+ "ey_name\030\001 \001(\tB\003\340A\002\"\353\004\n\021ReplicationStatus"
153-
+ "\022U\n\tautomatic\030\001 \001(\0132@.google.cloud.secre"
154-
+ "tmanager.v1.ReplicationStatus.AutomaticS"
155-
+ "tatusH\000\022Z\n\014user_managed\030\002 \001(\0132B.google.c"
156-
+ "loud.secretmanager.v1.ReplicationStatus."
157-
+ "UserManagedStatusH\000\032{\n\017AutomaticStatus\022h"
158-
+ "\n\033customer_managed_encryption\030\001 \001(\0132>.go"
159-
+ "ogle.cloud.secretmanager.v1.CustomerMana"
160-
+ "gedEncryptionStatusB\003\340A\003\032\217\002\n\021UserManaged"
161-
+ "Status\022g\n\010replicas\030\001 \003(\0132P.google.cloud."
162-
+ "secretmanager.v1.ReplicationStatus.UserM"
163-
+ "anagedStatus.ReplicaStatusB\003\340A\003\032\220\001\n\rRepl"
164-
+ "icaStatus\022\025\n\010location\030\001 \001(\tB\003\340A\003\022h\n\033cust"
165-
+ "omer_managed_encryption\030\002 \001(\0132>.google.c"
166-
+ "loud.secretmanager.v1.CustomerManagedEnc"
167-
+ "ryptionStatusB\003\340A\003B\024\n\022replication_status"
168-
+ "\"D\n\037CustomerManagedEncryptionStatus\022!\n\024k"
169-
+ "ms_key_version_name\030\001 \001(\tB\003\340A\002\"_\n\005Topic\022"
170-
+ "\021\n\004name\030\001 \001(\tB\003\340A\002:C\352A@\n\033pubsub.googleap"
171-
+ "is.com/Topic\022!projects/{project}/topics/"
172-
+ "{topic}\"\200\001\n\010Rotation\022;\n\022next_rotation_ti"
173-
+ "me\030\001 \001(\0132\032.google.protobuf.TimestampB\003\340A"
174-
+ "\001\0227\n\017rotation_period\030\002 \001(\0132\031.google.prot"
175-
+ "obuf.DurationB\003\340A\004\"L\n\rSecretPayload\022\014\n\004d"
176-
+ "ata\030\001 \001(\014\022\035\n\013data_crc32c\030\002 \001(\003B\003\340A\001H\000\210\001\001"
177-
+ "B\016\n\014_data_crc32cB\355\001\n!com.google.cloud.se"
178-
+ "cretmanager.v1B\016ResourcesProtoP\001ZJgoogle"
179-
+ ".golang.org/genproto/googleapis/cloud/se"
180-
+ "cretmanager/v1;secretmanager\370\001\001\242\002\003GSM\252\002\035"
181-
+ "Google.Cloud.SecretManager.V1\312\002\035Google\\C"
182-
+ "loud\\SecretManager\\V1\352\002 Google::Cloud::S"
183-
+ "ecretManager::V1b\006proto3"
124+
+ "nager.v1.RotationB\003\340A\001\022W\n\017version_aliase"
125+
+ "s\030\013 \003(\01329.google.cloud.secretmanager.v1."
126+
+ "Secret.VersionAliasesEntryB\003\340A\001\032-\n\013Label"
127+
+ "sEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\0325"
128+
+ "\n\023VersionAliasesEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005va"
129+
+ "lue\030\002 \001(\003:\0028\001:M\352AJ\n#secretmanager.google"
130+
+ "apis.com/Secret\022#projects/{project}/secr"
131+
+ "ets/{secret}B\014\n\nexpiration\"\242\004\n\rSecretVer"
132+
+ "sion\022\021\n\004name\030\001 \001(\tB\003\340A\003\0224\n\013create_time\030\002"
133+
+ " \001(\0132\032.google.protobuf.TimestampB\003\340A\003\0225\n"
134+
+ "\014destroy_time\030\003 \001(\0132\032.google.protobuf.Ti"
135+
+ "mestampB\003\340A\003\022F\n\005state\030\004 \001(\01622.google.clo"
136+
+ "ud.secretmanager.v1.SecretVersion.StateB"
137+
+ "\003\340A\003\022L\n\022replication_status\030\005 \001(\01320.googl"
138+
+ "e.cloud.secretmanager.v1.ReplicationStat"
139+
+ "us\022\021\n\004etag\030\006 \001(\tB\003\340A\003\022.\n!client_specifie"
140+
+ "d_payload_checksum\030\007 \001(\010B\003\340A\003\"H\n\005State\022\025"
141+
+ "\n\021STATE_UNSPECIFIED\020\000\022\013\n\007ENABLED\020\001\022\014\n\010DI"
142+
+ "SABLED\020\002\022\r\n\tDESTROYED\020\003:n\352Ak\n*secretmana"
143+
+ "ger.googleapis.com/SecretVersion\022=projec"
144+
+ "ts/{project}/secrets/{secret}/versions/{"
145+
+ "secret_version}\"\220\004\n\013Replication\022I\n\tautom"
146+
+ "atic\030\001 \001(\01324.google.cloud.secretmanager."
147+
+ "v1.Replication.AutomaticH\000\022N\n\014user_manag"
148+
+ "ed\030\002 \001(\01326.google.cloud.secretmanager.v1"
149+
+ ".Replication.UserManagedH\000\032o\n\tAutomatic\022"
150+
+ "b\n\033customer_managed_encryption\030\001 \001(\01328.g"
151+
+ "oogle.cloud.secretmanager.v1.CustomerMan"
152+
+ "agedEncryptionB\003\340A\001\032\345\001\n\013UserManaged\022U\n\010r"
153+
+ "eplicas\030\001 \003(\0132>.google.cloud.secretmanag"
154+
+ "er.v1.Replication.UserManaged.ReplicaB\003\340"
155+
+ "A\002\032\177\n\007Replica\022\020\n\010location\030\001 \001(\t\022b\n\033custo"
156+
+ "mer_managed_encryption\030\002 \001(\01328.google.cl"
157+
+ "oud.secretmanager.v1.CustomerManagedEncr"
158+
+ "yptionB\003\340A\001B\r\n\013replication\"6\n\031CustomerMa"
159+
+ "nagedEncryption\022\031\n\014kms_key_name\030\001 \001(\tB\003\340"
160+
+ "A\002\"\353\004\n\021ReplicationStatus\022U\n\tautomatic\030\001 "
161+
+ "\001(\0132@.google.cloud.secretmanager.v1.Repl"
162+
+ "icationStatus.AutomaticStatusH\000\022Z\n\014user_"
163+
+ "managed\030\002 \001(\0132B.google.cloud.secretmanag"
164+
+ "er.v1.ReplicationStatus.UserManagedStatu"
165+
+ "sH\000\032{\n\017AutomaticStatus\022h\n\033customer_manag"
166+
+ "ed_encryption\030\001 \001(\0132>.google.cloud.secre"
167+
+ "tmanager.v1.CustomerManagedEncryptionSta"
168+
+ "tusB\003\340A\003\032\217\002\n\021UserManagedStatus\022g\n\010replic"
169+
+ "as\030\001 \003(\0132P.google.cloud.secretmanager.v1"
170+
+ ".ReplicationStatus.UserManagedStatus.Rep"
171+
+ "licaStatusB\003\340A\003\032\220\001\n\rReplicaStatus\022\025\n\010loc"
172+
+ "ation\030\001 \001(\tB\003\340A\003\022h\n\033customer_managed_enc"
173+
+ "ryption\030\002 \001(\0132>.google.cloud.secretmanag"
174+
+ "er.v1.CustomerManagedEncryptionStatusB\003\340"
175+
+ "A\003B\024\n\022replication_status\"D\n\037CustomerMana"
176+
+ "gedEncryptionStatus\022!\n\024kms_key_version_n"
177+
+ "ame\030\001 \001(\tB\003\340A\002\"_\n\005Topic\022\021\n\004name\030\001 \001(\tB\003\340"
178+
+ "A\002:C\352A@\n\033pubsub.googleapis.com/Topic\022!pr"
179+
+ "ojects/{project}/topics/{topic}\"\200\001\n\010Rota"
180+
+ "tion\022;\n\022next_rotation_time\030\001 \001(\0132\032.googl"
181+
+ "e.protobuf.TimestampB\003\340A\001\0227\n\017rotation_pe"
182+
+ "riod\030\002 \001(\0132\031.google.protobuf.DurationB\003\340"
183+
+ "A\004\"L\n\rSecretPayload\022\014\n\004data\030\001 \001(\014\022\035\n\013dat"
184+
+ "a_crc32c\030\002 \001(\003B\003\340A\001H\000\210\001\001B\016\n\014_data_crc32c"
185+
+ "B\355\001\n!com.google.cloud.secretmanager.v1B\016"
186+
+ "ResourcesProtoP\001ZJgoogle.golang.org/genp"
187+
+ "roto/googleapis/cloud/secretmanager/v1;s"
188+
+ "ecretmanager\370\001\001\242\002\003GSM\252\002\035Google.Cloud.Sec"
189+
+ "retManager.V1\312\002\035Google\\Cloud\\SecretManag"
190+
+ "er\\V1\352\002 Google::Cloud::SecretManager::V1"
191+
+ "b\006proto3"
184192
};
185193
descriptor =
186194
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -207,6 +215,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
207215
"Ttl",
208216
"Etag",
209217
"Rotation",
218+
"VersionAliases",
210219
"Expiration",
211220
});
212221
internal_static_google_cloud_secretmanager_v1_Secret_LabelsEntry_descriptor =
@@ -217,6 +226,14 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
217226
new java.lang.String[] {
218227
"Key", "Value",
219228
});
229+
internal_static_google_cloud_secretmanager_v1_Secret_VersionAliasesEntry_descriptor =
230+
internal_static_google_cloud_secretmanager_v1_Secret_descriptor.getNestedTypes().get(1);
231+
internal_static_google_cloud_secretmanager_v1_Secret_VersionAliasesEntry_fieldAccessorTable =
232+
new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
233+
internal_static_google_cloud_secretmanager_v1_Secret_VersionAliasesEntry_descriptor,
234+
new java.lang.String[] {
235+
"Key", "Value",
236+
});
220237
internal_static_google_cloud_secretmanager_v1_SecretVersion_descriptor =
221238
getDescriptor().getMessageTypes().get(1);
222239
internal_static_google_cloud_secretmanager_v1_SecretVersion_fieldAccessorTable =

0 commit comments

Comments
 (0)