Skip to content

Commit 1568178

Browse files
Google APIscopybara-github
authored andcommitted
feat: [Memorystore for Valkey] Add support for Flexible CA feature
PiperOrigin-RevId: 893211666
1 parent 582172d commit 1568178

1 file changed

Lines changed: 113 additions & 1 deletion

File tree

google/cloud/memorystore/v1beta/memorystore.proto

Lines changed: 113 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2025 Google LLC
1+
// Copyright 2026 Google LLC
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.
@@ -45,6 +45,10 @@ option (google.api.resource_definition) = {
4545
type: "compute.googleapis.com/ServiceAttachment"
4646
pattern: "projects/{project}/regions/{region}/serviceAttachments/{service_attachment}"
4747
};
48+
option (google.api.resource_definition) = {
49+
type: "privateca.googleapis.com/CaPool"
50+
pattern: "projects/{project}/locations/{location}/caPools/{ca_pool}"
51+
};
4852

4953
// Service describing handlers for resources
5054
service Memorystore {
@@ -117,6 +121,17 @@ service Memorystore {
117121
};
118122
option (google.api.method_signature) = "name";
119123
}
124+
125+
// Gets the details of shared regional certificate authority information for
126+
// Memorystore instance.
127+
rpc GetSharedRegionalCertificateAuthority(
128+
GetSharedRegionalCertificateAuthorityRequest)
129+
returns (SharedRegionalCertificateAuthority) {
130+
option (google.api.http) = {
131+
get: "/v1beta/{name=projects/*/locations/*/sharedRegionalCertificateAuthority}"
132+
};
133+
option (google.api.method_signature) = "name";
134+
}
120135
}
121136

122137
// Status of the PSC connection.
@@ -276,6 +291,32 @@ message Instance {
276291
CLUSTER_DISABLED = 4;
277292
}
278293

294+
// The Server CA mode for the instance.
295+
enum ServerCaMode {
296+
option allow_alias = true;
297+
298+
// Server CA mode not specified.
299+
SERVER_CA_MODE_UNSPECIFIED = 0;
300+
301+
// Each instance has its own Google-managed CA.
302+
GOOGLE_MANAGED_PER_INSTANCE_CA = 1;
303+
304+
// The instance uses a Google-managed shared CA for the instance's region.
305+
GOOGLE_MANAGED_SHARED_CA = 2;
306+
307+
// The instance uses a customer-managed CA from CAS.
308+
CUSTOMER_MANAGED_CAS_CA = 3;
309+
310+
// Deprecated: Use GOOGLE_MANAGED_PER_INSTANCE_CA instead.
311+
SERVER_CA_MODE_GOOGLE_MANAGED_PER_INSTANCE_CA = 1 [deprecated = true];
312+
313+
// Deprecated: Use GOOGLE_MANAGED_SHARED_CA instead.
314+
SERVER_CA_MODE_GOOGLE_MANAGED_SHARED_CA = 2 [deprecated = true];
315+
316+
// Deprecated: Use CUSTOMER_MANAGED_CAS_CA instead.
317+
SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA = 3 [deprecated = true];
318+
}
319+
279320
// Identifier. Unique name of the instance.
280321
// Format: projects/{project}/locations/{location}/instances/{instance}
281322
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
@@ -374,6 +415,29 @@ message Instance {
374415

375416
// Optional. The mode config for the instance.
376417
Mode mode = 26 [(google.api.field_behavior) = OPTIONAL];
418+
419+
// Optional. Immutable. The Server CA mode for the instance.
420+
optional ServerCaMode server_ca_mode = 56 [
421+
(google.api.field_behavior) = OPTIONAL,
422+
(google.api.field_behavior) = IMMUTABLE
423+
];
424+
425+
// Optional. Immutable. The customer-managed CA pool for the instance. Only
426+
// applicable if the Server CA mode is CUSTOMER_MANAGED_CAS_CA. Format:
427+
// "projects/{project}/locations/{region}/caPools/{ca_pool}".
428+
optional string server_ca_pool = 57 [
429+
(google.api.field_behavior) = OPTIONAL,
430+
(google.api.field_behavior) = IMMUTABLE,
431+
(google.api.resource_reference) = {
432+
type: "privateca.googleapis.com/CaPool"
433+
}
434+
];
435+
436+
// Optional. Input only. Rotate the server certificates.
437+
optional bool rotate_server_certificate = 58 [
438+
(google.api.field_behavior) = OPTIONAL,
439+
(google.api.field_behavior) = INPUT_ONLY
440+
];
377441
}
378442

379443
// Details of consumer resources in a PSC connection.
@@ -829,6 +893,54 @@ message CertificateAuthority {
829893
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
830894
}
831895

896+
// Shared regional certificate authority for an instance.
897+
message SharedRegionalCertificateAuthority {
898+
option (google.api.resource) = {
899+
type: "memorystore.googleapis.com/SharedRegionalCertificateAuthority"
900+
pattern: "projects/{project}/locations/{location}/sharedRegionalCertificateAuthority"
901+
plural: "sharedRegionalCertificateAuthorities"
902+
singular: "sharedRegionalCertificateAuthority"
903+
};
904+
905+
// CA certificate chains for memorystore managed server authentication.
906+
message RegionalManagedCertificateAuthority {
907+
// The certificates that form the CA chain, from leaf to root order.
908+
message RegionalCertChain {
909+
// The certificates that form the CA chain, from leaf to root order.
910+
repeated string certificates = 1;
911+
}
912+
913+
// The PEM encoded CA certificate chains for memorystore managed
914+
// server authentication
915+
repeated RegionalCertChain ca_certs = 1;
916+
}
917+
918+
// Server ca information.
919+
oneof server_ca {
920+
// CA certificate chains for memorystore managed server authentication.
921+
RegionalManagedCertificateAuthority managed_server_ca = 2;
922+
}
923+
924+
// Identifier. Unique name of the resource in this scope including project and
925+
// location using the form:
926+
// `projects/{project}/locations/{location}/sharedRegionalCertificateAuthority`
927+
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
928+
}
929+
930+
// Request for
931+
// [GetSharedRegionalCertificateAuthority][google.cloud.memorystore.v1beta.Memorystore.GetSharedRegionalCertificateAuthority].
932+
message GetSharedRegionalCertificateAuthorityRequest {
933+
// Required. Regional certificate authority resource name using the form:
934+
// `projects/{project}/locations/{location}/sharedRegionalCertificateAuthority`
935+
// where `location_id` refers to a Google Cloud region.
936+
string name = 1 [
937+
(google.api.field_behavior) = REQUIRED,
938+
(google.api.resource_reference) = {
939+
type: "memorystore.googleapis.com/SharedRegionalCertificateAuthority"
940+
}
941+
];
942+
}
943+
832944
// Represents the metadata of a long-running operation.
833945
message OperationMetadata {
834946
// Output only. The time the operation was created.

0 commit comments

Comments
 (0)