Skip to content

Commit 96eea0c

Browse files
Google APIscopybara-github
authored andcommitted
feat: [Memorystore for Redis Cluster] Add support for Flexible CA feature
PiperOrigin-RevId: 891891848
1 parent 0673555 commit 96eea0c

1 file changed

Lines changed: 99 additions & 1 deletion

File tree

google/cloud/redis/cluster/v1/cloud_redis_cluster.proto

Lines changed: 99 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.
@@ -55,6 +55,10 @@ option (google.api.resource_definition) = {
5555
type: "cloudkms.googleapis.com/CryptoKeyVersion"
5656
pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}"
5757
};
58+
option (google.api.resource_definition) = {
59+
type: "privateca.googleapis.com/CaPool"
60+
pattern: "projects/{project}/locations/{location}/caPools/{ca_pool}"
61+
};
5862

5963
// Configures and manages Cloud Memorystore for Redis clusters
6064
//
@@ -162,6 +166,17 @@ service CloudRedisCluster {
162166
option (google.api.method_signature) = "name";
163167
}
164168

169+
// Gets the details of regional certificate authority information for Redis
170+
// cluster.
171+
rpc GetSharedRegionalCertificateAuthority(
172+
GetSharedRegionalCertificateAuthorityRequest)
173+
returns (SharedRegionalCertificateAuthority) {
174+
option (google.api.http) = {
175+
get: "/v1/{name=projects/*/locations/*/sharedRegionalCertificateAuthority}"
176+
};
177+
option (google.api.method_signature) = "name";
178+
}
179+
165180
// Reschedules upcoming maintenance event.
166181
rpc RescheduleClusterMaintenance(RescheduleClusterMaintenanceRequest)
167182
returns (google.longrunning.Operation) {
@@ -318,6 +333,21 @@ enum TransitEncryptionMode {
318333
TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION = 2;
319334
}
320335

336+
// Server CA mode for the cluster.
337+
enum ServerCaMode {
338+
// Server CA mode not specified.
339+
SERVER_CA_MODE_UNSPECIFIED = 0;
340+
341+
// Each cluster has its own Google managed CA.
342+
SERVER_CA_MODE_GOOGLE_MANAGED_PER_INSTANCE_CA = 1;
343+
344+
// The cluster uses Google managed shared CA in the region.
345+
SERVER_CA_MODE_GOOGLE_MANAGED_SHARED_CA = 2;
346+
347+
// The cluster uses customer managed CA from CAS.
348+
SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA = 3;
349+
}
350+
321351
// Type of a PSC connection, for cluster access purpose.
322352
enum ConnectionType {
323353
// Cluster endpoint Type is not set
@@ -836,6 +866,26 @@ message Cluster {
836866
// Output only. Encryption information of the data at rest of the cluster.
837867
EncryptionInfo encryption_info = 43
838868
[(google.api.field_behavior) = OUTPUT_ONLY];
869+
870+
// Optional. Server CA mode for the cluster.
871+
optional ServerCaMode server_ca_mode = 53
872+
[(google.api.field_behavior) = OPTIONAL];
873+
874+
// Optional. Customer-managed CA pool for the cluster. Only applicable for
875+
// BYOCA i.e. if server_ca_mode is SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA.
876+
// Format: "projects/{project}/locations/{region}/caPools/{ca_pool}".
877+
optional string server_ca_pool = 54 [
878+
(google.api.field_behavior) = OPTIONAL,
879+
(google.api.resource_reference) = {
880+
type: "privateca.googleapis.com/CaPool"
881+
}
882+
];
883+
884+
// Optional. Input only. Rotate the server certificates.
885+
optional bool rotate_server_certificate = 55 [
886+
(google.api.field_behavior) = OPTIONAL,
887+
(google.api.field_behavior) = INPUT_ONLY
888+
];
839889
}
840890

841891
// The automated backup config for a cluster.
@@ -1327,6 +1377,54 @@ message PscAutoConnection {
13271377
[(google.api.field_behavior) = OUTPUT_ONLY];
13281378
}
13291379

1380+
// Shared regional certificate authority
1381+
message SharedRegionalCertificateAuthority {
1382+
option (google.api.resource) = {
1383+
type: "redis.googleapis.com/SharedRegionalCertificateAuthority"
1384+
pattern: "projects/{project}/locations/{location}/sharedRegionalCertificateAuthority"
1385+
plural: "sharedRegionalCertificateAuthorities"
1386+
singular: "sharedRegionalCertificateAuthority"
1387+
};
1388+
1389+
// CA certificate chains for redis managed server authentication.
1390+
message RegionalManagedCertificateAuthority {
1391+
// The certificates that form the CA chain, from leaf to root order.
1392+
message RegionalCertChain {
1393+
// The certificates that form the CA chain, from leaf to root order.
1394+
repeated string certificates = 1;
1395+
}
1396+
1397+
// The PEM encoded CA certificate chains for redis managed
1398+
// server authentication
1399+
repeated RegionalCertChain ca_certs = 1;
1400+
}
1401+
1402+
// Server ca information.
1403+
oneof server_ca {
1404+
// CA certificate chains for redis managed server authentication.
1405+
RegionalManagedCertificateAuthority managed_server_ca = 2;
1406+
}
1407+
1408+
// Identifier. Unique name of the resource in this scope including project and
1409+
// location using the form:
1410+
// `projects/{project}/locations/{location}/sharedRegionalCertificateAuthority`
1411+
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
1412+
}
1413+
1414+
// Request for
1415+
// [GetSharedRegionalCertificateAuthority][CloudRedis.GetSharedRegionalCertificateAuthority].
1416+
message GetSharedRegionalCertificateAuthorityRequest {
1417+
// Required. Regional certificate authority resource name using the form:
1418+
// `projects/{project_id}/locations/{location_id}/sharedRegionalCertificateAuthority`
1419+
// where `location_id` refers to a Google Cloud region.
1420+
string name = 1 [
1421+
(google.api.field_behavior) = REQUIRED,
1422+
(google.api.resource_reference) = {
1423+
type: "redis.googleapis.com/SharedRegionalCertificateAuthority"
1424+
}
1425+
];
1426+
}
1427+
13301428
// Pre-defined metadata fields.
13311429
message OperationMetadata {
13321430
// Output only. The time the operation was created.

0 commit comments

Comments
 (0)