Skip to content

Commit 456866b

Browse files
Google APIscopybara-github
authored andcommitted
feat: [Memorystore for Valkey] Add support for Flexible CA feature
PiperOrigin-RevId: 892004368
1 parent 0eb2a36 commit 456866b

1 file changed

Lines changed: 113 additions & 1 deletion

File tree

google/cloud/memorystore/v1/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.
@@ -56,6 +56,10 @@ option (google.api.resource_definition) = {
5656
type: "cloudkms.googleapis.com/CryptoKeyVersion"
5757
pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}"
5858
};
59+
option (google.api.resource_definition) = {
60+
type: "privateca.googleapis.com/CaPool"
61+
pattern: "projects/{project}/locations/{location}/caPools/{ca_pool}"
62+
};
5963

6064
// Service describing handlers for resources
6165
service Memorystore {
@@ -129,6 +133,17 @@ service Memorystore {
129133
option (google.api.method_signature) = "name";
130134
}
131135

136+
// Gets the details of shared regional certificate authority information for
137+
// Memorystore instance.
138+
rpc GetSharedRegionalCertificateAuthority(
139+
GetSharedRegionalCertificateAuthorityRequest)
140+
returns (SharedRegionalCertificateAuthority) {
141+
option (google.api.http) = {
142+
get: "/v1/{name=projects/*/locations/*/sharedRegionalCertificateAuthority}"
143+
};
144+
option (google.api.method_signature) = "name";
145+
}
146+
132147
// Reschedules upcoming maintenance event.
133148
rpc RescheduleMaintenance(RescheduleMaintenanceRequest)
134149
returns (google.longrunning.Operation) {
@@ -415,6 +430,32 @@ message Instance {
415430
CLUSTER_DISABLED = 4;
416431
}
417432

433+
// The Server CA mode for the instance.
434+
enum ServerCaMode {
435+
option allow_alias = true;
436+
437+
// Server CA mode not specified.
438+
SERVER_CA_MODE_UNSPECIFIED = 0;
439+
440+
// Each instance has its own Google-managed CA.
441+
GOOGLE_MANAGED_PER_INSTANCE_CA = 1;
442+
443+
// The instance uses a Google-managed shared CA for the instance's region.
444+
GOOGLE_MANAGED_SHARED_CA = 2;
445+
446+
// The instance uses a customer-managed CA from CAS.
447+
CUSTOMER_MANAGED_CAS_CA = 3;
448+
449+
// Deprecated: Use GOOGLE_MANAGED_PER_INSTANCE_CA instead.
450+
SERVER_CA_MODE_GOOGLE_MANAGED_PER_INSTANCE_CA = 1 [deprecated = true];
451+
452+
// Deprecated: Use GOOGLE_MANAGED_SHARED_CA instead.
453+
SERVER_CA_MODE_GOOGLE_MANAGED_SHARED_CA = 2 [deprecated = true];
454+
455+
// Deprecated: Use CUSTOMER_MANAGED_CAS_CA instead.
456+
SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA = 3 [deprecated = true];
457+
}
458+
418459
// The source to import from.
419460
oneof import_sources {
420461
// Optional. Immutable. Backups that stored in Cloud Storage buckets.
@@ -629,6 +670,29 @@ message Instance {
629670
(google.api.field_behavior) = OPTIONAL,
630671
(google.api.field_behavior) = IMMUTABLE
631672
];
673+
674+
// Optional. Immutable. The Server CA mode for the instance.
675+
optional ServerCaMode server_ca_mode = 56 [
676+
(google.api.field_behavior) = OPTIONAL,
677+
(google.api.field_behavior) = IMMUTABLE
678+
];
679+
680+
// Optional. Immutable. The customer-managed CA pool for the instance. Only
681+
// applicable if the Server CA mode is CUSTOMER_MANAGED_CAS_CA. Format:
682+
// "projects/{project}/locations/{region}/caPools/{ca_pool}".
683+
optional string server_ca_pool = 57 [
684+
(google.api.field_behavior) = OPTIONAL,
685+
(google.api.field_behavior) = IMMUTABLE,
686+
(google.api.resource_reference) = {
687+
type: "privateca.googleapis.com/CaPool"
688+
}
689+
];
690+
691+
// Optional. Input only. Rotate the server certificates.
692+
optional bool rotate_server_certificate = 58 [
693+
(google.api.field_behavior) = OPTIONAL,
694+
(google.api.field_behavior) = INPUT_ONLY
695+
];
632696
}
633697

634698
// The automated backup config for an instance.
@@ -1650,6 +1714,54 @@ message CertificateAuthority {
16501714
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
16511715
}
16521716

1717+
// Shared regional certificate authority for an instance.
1718+
message SharedRegionalCertificateAuthority {
1719+
option (google.api.resource) = {
1720+
type: "memorystore.googleapis.com/SharedRegionalCertificateAuthority"
1721+
pattern: "projects/{project}/locations/{location}/sharedRegionalCertificateAuthority"
1722+
plural: "sharedRegionalCertificateAuthorities"
1723+
singular: "sharedRegionalCertificateAuthority"
1724+
};
1725+
1726+
// CA certificate chains for memorystore managed server authentication.
1727+
message RegionalManagedCertificateAuthority {
1728+
// The certificates that form the CA chain, from leaf to root order.
1729+
message RegionalCertChain {
1730+
// The certificates that form the CA chain, from leaf to root order.
1731+
repeated string certificates = 1;
1732+
}
1733+
1734+
// The PEM encoded CA certificate chains for memorystore managed
1735+
// server authentication
1736+
repeated RegionalCertChain ca_certs = 1;
1737+
}
1738+
1739+
// Server ca information.
1740+
oneof server_ca {
1741+
// CA certificate chains for memorystore managed server authentication.
1742+
RegionalManagedCertificateAuthority managed_server_ca = 2;
1743+
}
1744+
1745+
// Identifier. Unique name of the resource in this scope including project and
1746+
// location using the form:
1747+
// `projects/{project}/locations/{location}/sharedRegionalCertificateAuthority`
1748+
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
1749+
}
1750+
1751+
// Request for
1752+
// [GetSharedRegionalCertificateAuthority][google.cloud.memorystore.v1.Memorystore.GetSharedRegionalCertificateAuthority].
1753+
message GetSharedRegionalCertificateAuthorityRequest {
1754+
// Required. Regional certificate authority resource name using the form:
1755+
// `projects/{project}/locations/{location}/sharedRegionalCertificateAuthority`
1756+
// where `location_id` refers to a Google Cloud region.
1757+
string name = 1 [
1758+
(google.api.field_behavior) = REQUIRED,
1759+
(google.api.resource_reference) = {
1760+
type: "memorystore.googleapis.com/SharedRegionalCertificateAuthority"
1761+
}
1762+
];
1763+
}
1764+
16531765
// Represents the metadata of a long-running operation.
16541766
message OperationMetadata {
16551767
// Output only. The time the operation was created.

0 commit comments

Comments
 (0)