@@ -52,6 +52,10 @@ option (google.api.resource_definition) = {
5252type :"cloudkms.googleapis.com/CryptoKey"
5353pattern :"projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}"
5454};
55+ option (google.api.resource_definition ) = {
56+ type :"cloudkms.googleapis.com/CryptoKeyVersion"
57+ pattern :"projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}"
58+ };
5559
5660// Service describing handlers for resources
5761service Memorystore {
@@ -476,8 +480,12 @@ message Instance {
476480// Optional. Number of shards for the instance.
477481int32 shard_count = 11 [(google.api.field_behavior ) =OPTIONAL ];
478482
479- // Output only. Deprecated: Use the endpoints.connections.psc_auto_connection
480- // or endpoints.connections.psc_connection values instead.
483+ // Output only. Deprecated: The discovery_endpoints parameter is deprecated.
484+ // As a result, it will not be populated if the connections are created using
485+ // endpoints parameter. Instead of this parameter, for discovery, use
486+ // endpoints.connections.pscConnection and
487+ // endpoints.connections.pscAutoConnection
488+ // with connectionType CONNECTION_TYPE_DISCOVERY.
481489repeated DiscoveryEndpoint discovery_endpoints = 12
482490 [deprecated =true ,(google.api.field_behavior ) =OUTPUT_ONLY ];
483491
@@ -528,12 +536,31 @@ message Instance {
528536// Optional. The mode config for the instance.
529537Mode mode = 26 [(google.api.field_behavior ) =OPTIONAL ];
530538
539+ // Optional. Input only. Simulate a maintenance event.
540+ optional bool simulate_maintenance_event = 27 [
541+ (google.api.field_behavior ) =OPTIONAL ,
542+ (google.api.field_behavior ) =INPUT_ONLY
543+ ];
544+
531545// Optional. Input only. Ondemand maintenance for the instance.
532546optional bool ondemand_maintenance = 28 [
547+ deprecated =true ,
533548(google.api.field_behavior ) =OPTIONAL ,
534549(google.api.field_behavior ) =INPUT_ONLY
535550 ];
536551
552+ // Optional. Output only. Reserved for future use.
553+ optional bool satisfies_pzs = 29 [
554+ (google.api.field_behavior ) =OUTPUT_ONLY ,
555+ (google.api.field_behavior ) =OPTIONAL
556+ ];
557+
558+ // Optional. Output only. Reserved for future use.
559+ optional bool satisfies_pzi = 30 [
560+ (google.api.field_behavior ) =OUTPUT_ONLY ,
561+ (google.api.field_behavior ) =OPTIONAL
562+ ];
563+
537564// Optional. The maintenance policy for the instance. If not provided,
538565// the maintenance event will be performed based on Memorystore
539566// internal rollout schedule.
@@ -555,6 +582,18 @@ message Instance {
555582optional bool async_instance_endpoints_deletion_enabled = 44
556583 [(google.api.field_behavior ) =OPTIONAL ];
557584
585+ // Optional. The KMS key used to encrypt the at-rest data of the cluster.
586+ optional string kms_key = 45 [
587+ (google.api.field_behavior ) =OPTIONAL ,
588+ (google.api.resource_reference ) = {
589+ type :"cloudkms.googleapis.com/CryptoKey"
590+ }
591+ ];
592+
593+ // Output only. Encryption information of the data at rest of the cluster.
594+ EncryptionInfo encryption_info = 46
595+ [(google.api.field_behavior ) =OUTPUT_ONLY ];
596+
558597// Output only. The backup collection full resource name. Example:
559598// projects/{project}/locations/{location}/backupCollections/{collection}
560599optional string backup_collection = 47 [
@@ -567,6 +606,29 @@ message Instance {
567606// Optional. The automated backup config for the instance.
568607AutomatedBackupConfig automated_backup_config = 48
569608 [(google.api.field_behavior ) =OPTIONAL ];
609+
610+ // Optional. This field can be used to trigger self service update to indicate
611+ // the desired maintenance version. The input to this field can be determined
612+ // by the available_maintenance_versions field.
613+ optional string maintenance_version = 49
614+ [(google.api.field_behavior ) =OPTIONAL ];
615+
616+ // Output only. This field represents the actual maintenance version of the
617+ // instance.
618+ optional string effective_maintenance_version = 50
619+ [(google.api.field_behavior ) =OUTPUT_ONLY ];
620+
621+ // Output only. This field is used to determine the available maintenance
622+ // versions for the self service update.
623+ repeated string available_maintenance_versions = 51
624+ [(google.api.field_behavior ) =OUTPUT_ONLY ];
625+
626+ // Optional. Immutable. Deprecated, do not use.
627+ bool allow_fewer_zones_deployment = 54 [
628+ deprecated =true ,
629+ (google.api.field_behavior ) =OPTIONAL ,
630+ (google.api.field_behavior ) =IMMUTABLE
631+ ];
570632}
571633
572634// The automated backup config for an instance.
@@ -657,6 +719,16 @@ message BackupCollection {
657719// Output only. The time when the backup collection was created.
658720google.protobuf.Timestamp create_time = 7
659721 [(google.api.field_behavior ) =OUTPUT_ONLY ];
722+
723+ // Output only. Total size of all backups in the backup collection.
724+ int64 total_backup_size_bytes = 8 [(google.api.field_behavior ) =OUTPUT_ONLY ];
725+
726+ // Output only. Total number of backups in the backup collection.
727+ int64 total_backup_count = 10 [(google.api.field_behavior ) =OUTPUT_ONLY ];
728+
729+ // Output only. The last time a backup was created in the backup collection.
730+ google.protobuf.Timestamp last_backup_time = 11
731+ [(google.api.field_behavior ) =OUTPUT_ONLY ];
660732}
661733
662734// Backup of an instance.
@@ -752,6 +824,10 @@ message Backup {
752824// Output only. State of the backup.
753825State state = 13 [(google.api.field_behavior ) =OUTPUT_ONLY ];
754826
827+ // Output only. Encryption information of the backup.
828+ EncryptionInfo encryption_info = 14
829+ [(google.api.field_behavior ) =OUTPUT_ONLY ];
830+
755831// Output only. System assigned unique identifier of the backup.
756832string uid = 15 [
757833(google.api.field_info ).format =UUID4 ,
@@ -1603,3 +1679,72 @@ message OperationMetadata {
16031679// Output only. API version used to start the operation.
16041680string api_version = 7 [(google.api.field_behavior ) =OUTPUT_ONLY ];
16051681}
1682+
1683+ // EncryptionInfo describes the encryption information of a cluster.
1684+ message EncryptionInfo {
1685+ // Possible encryption types.
1686+ enum Type {
1687+ // Encryption type not specified. Defaults to GOOGLE_DEFAULT_ENCRYPTION.
1688+ TYPE_UNSPECIFIED = 0 ;
1689+
1690+ // The data is encrypted at rest with a key that is fully managed by Google.
1691+ // No key version will be populated. This is the default state.
1692+ GOOGLE_DEFAULT_ENCRYPTION = 1 ;
1693+
1694+ // The data is encrypted at rest with a key that is managed by the customer.
1695+ // KMS key versions will be populated.
1696+ CUSTOMER_MANAGED_ENCRYPTION = 2 ;
1697+ }
1698+
1699+ // The state of the KMS key perceived by the system. Refer to the public
1700+ // documentation for the impact of each state.
1701+ enum KmsKeyState {
1702+ // The default value. This value is unused.
1703+ KMS_KEY_STATE_UNSPECIFIED = 0 ;
1704+
1705+ // The KMS key is enabled and correctly configured.
1706+ ENABLED = 1 ;
1707+
1708+ // Permission denied on the KMS key.
1709+ PERMISSION_DENIED = 2 ;
1710+
1711+ // The KMS key is disabled.
1712+ DISABLED = 3 ;
1713+
1714+ // The KMS key is destroyed.
1715+ DESTROYED = 4 ;
1716+
1717+ // The KMS key is scheduled to be destroyed.
1718+ DESTROY_SCHEDULED = 5 ;
1719+
1720+ // The EKM key is unreachable.
1721+ EKM_KEY_UNREACHABLE_DETECTED = 6 ;
1722+
1723+ // Billing is disabled for the project.
1724+ BILLING_DISABLED = 7 ;
1725+
1726+ // All other unknown failures.
1727+ UNKNOWN_FAILURE = 8 ;
1728+ }
1729+
1730+ // Output only. Type of encryption.
1731+ Type encryption_type = 1 [(google.api.field_behavior ) =OUTPUT_ONLY ];
1732+
1733+ // Output only. KMS key versions that are being used to protect the data
1734+ // at-rest.
1735+ repeated string kms_key_versions = 2 [
1736+ (google.api.field_behavior ) =OUTPUT_ONLY ,
1737+ (google.api.resource_reference ) = {
1738+ type :"cloudkms.googleapis.com/CryptoKeyVersion"
1739+ }
1740+ ];
1741+
1742+ // Output only. The state of the primary version of the KMS key perceived by
1743+ // the system. This field is not populated in backups.
1744+ KmsKeyState kms_key_primary_state = 3
1745+ [(google.api.field_behavior ) =OUTPUT_ONLY ];
1746+
1747+ // Output only. The most recent time when the encryption info was updated.
1748+ google.protobuf.Timestamp last_update_time = 4
1749+ [(google.api.field_behavior ) =OUTPUT_ONLY ];
1750+ }