diff --git a/packages/google-cloud-redis-cluster/README.md b/packages/google-cloud-redis-cluster/README.md index cf76ad0a0d6..0193dada4c7 100644 --- a/packages/google-cloud-redis-cluster/README.md +++ b/packages/google-cloud-redis-cluster/README.md @@ -115,17 +115,33 @@ Samples are in the [`samples/`](https://github.com/googleapis/google-cloud-node/ | Sample | Source Code | Try it | | --------------------------- | --------------------------------- | ------ | +| Cloud_redis_cluster.backup_cluster | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.backup_cluster.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.backup_cluster.js,packages/google-cloud-redis-cluster/samples/README.md) | | Cloud_redis_cluster.create_cluster | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.create_cluster.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.create_cluster.js,packages/google-cloud-redis-cluster/samples/README.md) | +| Cloud_redis_cluster.delete_backup | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.delete_backup.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.delete_backup.js,packages/google-cloud-redis-cluster/samples/README.md) | | Cloud_redis_cluster.delete_cluster | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.delete_cluster.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.delete_cluster.js,packages/google-cloud-redis-cluster/samples/README.md) | +| Cloud_redis_cluster.export_backup | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.export_backup.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.export_backup.js,packages/google-cloud-redis-cluster/samples/README.md) | +| Cloud_redis_cluster.get_backup | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_backup.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_backup.js,packages/google-cloud-redis-cluster/samples/README.md) | +| Cloud_redis_cluster.get_backup_collection | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_backup_collection.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_backup_collection.js,packages/google-cloud-redis-cluster/samples/README.md) | | Cloud_redis_cluster.get_cluster | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_cluster.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_cluster.js,packages/google-cloud-redis-cluster/samples/README.md) | | Cloud_redis_cluster.get_cluster_certificate_authority | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_cluster_certificate_authority.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_cluster_certificate_authority.js,packages/google-cloud-redis-cluster/samples/README.md) | +| Cloud_redis_cluster.list_backup_collections | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_backup_collections.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_backup_collections.js,packages/google-cloud-redis-cluster/samples/README.md) | +| Cloud_redis_cluster.list_backups | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_backups.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_backups.js,packages/google-cloud-redis-cluster/samples/README.md) | | Cloud_redis_cluster.list_clusters | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_clusters.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_clusters.js,packages/google-cloud-redis-cluster/samples/README.md) | +| Cloud_redis_cluster.reschedule_cluster_maintenance | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.reschedule_cluster_maintenance.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.reschedule_cluster_maintenance.js,packages/google-cloud-redis-cluster/samples/README.md) | | Cloud_redis_cluster.update_cluster | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.update_cluster.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.update_cluster.js,packages/google-cloud-redis-cluster/samples/README.md) | +| Cloud_redis_cluster.backup_cluster | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.backup_cluster.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.backup_cluster.js,packages/google-cloud-redis-cluster/samples/README.md) | | Cloud_redis_cluster.create_cluster | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.create_cluster.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.create_cluster.js,packages/google-cloud-redis-cluster/samples/README.md) | +| Cloud_redis_cluster.delete_backup | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.delete_backup.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.delete_backup.js,packages/google-cloud-redis-cluster/samples/README.md) | | Cloud_redis_cluster.delete_cluster | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.delete_cluster.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.delete_cluster.js,packages/google-cloud-redis-cluster/samples/README.md) | +| Cloud_redis_cluster.export_backup | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.export_backup.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.export_backup.js,packages/google-cloud-redis-cluster/samples/README.md) | +| Cloud_redis_cluster.get_backup | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_backup.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_backup.js,packages/google-cloud-redis-cluster/samples/README.md) | +| Cloud_redis_cluster.get_backup_collection | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_backup_collection.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_backup_collection.js,packages/google-cloud-redis-cluster/samples/README.md) | | Cloud_redis_cluster.get_cluster | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_cluster.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_cluster.js,packages/google-cloud-redis-cluster/samples/README.md) | | Cloud_redis_cluster.get_cluster_certificate_authority | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_cluster_certificate_authority.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_cluster_certificate_authority.js,packages/google-cloud-redis-cluster/samples/README.md) | +| Cloud_redis_cluster.list_backup_collections | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_backup_collections.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_backup_collections.js,packages/google-cloud-redis-cluster/samples/README.md) | +| Cloud_redis_cluster.list_backups | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_backups.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_backups.js,packages/google-cloud-redis-cluster/samples/README.md) | | Cloud_redis_cluster.list_clusters | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_clusters.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_clusters.js,packages/google-cloud-redis-cluster/samples/README.md) | +| Cloud_redis_cluster.reschedule_cluster_maintenance | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.reschedule_cluster_maintenance.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.reschedule_cluster_maintenance.js,packages/google-cloud-redis-cluster/samples/README.md) | | Cloud_redis_cluster.update_cluster | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.update_cluster.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.update_cluster.js,packages/google-cloud-redis-cluster/samples/README.md) | | Quickstart | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/quickstart.js,packages/google-cloud-redis-cluster/samples/README.md) | diff --git a/packages/google-cloud-redis-cluster/protos/google/cloud/redis/cluster/v1/cloud_redis_cluster.proto b/packages/google-cloud-redis-cluster/protos/google/cloud/redis/cluster/v1/cloud_redis_cluster.proto index b89fe889eb8..d73fef42055 100644 --- a/packages/google-cloud-redis-cluster/protos/google/cloud/redis/cluster/v1/cloud_redis_cluster.proto +++ b/packages/google-cloud-redis-cluster/protos/google/cloud/redis/cluster/v1/cloud_redis_cluster.proto @@ -19,18 +19,42 @@ package google.cloud.redis.cluster.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; import "google/api/resource.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; +import "google/type/dayofweek.proto"; +import "google/type/timeofday.proto"; option go_package = "cloud.google.com/go/redis/cluster/apiv1/clusterpb;clusterpb"; option java_multiple_files = true; option java_outer_classname = "CloudRedisClusterProto"; option java_package = "com.google.cloud.redis.cluster.v1"; option ruby_package = "Google::Cloud::Redis::Cluster::V1"; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/ForwardingRule" + pattern: "projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}" +}; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/Network" + pattern: "projects/{project}/global/networks/{network}" +}; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/ServiceAttachment" + pattern: "projects/{project}/regions/{region}/serviceAttachments/{service_attachment}" +}; +option (google.api.resource_definition) = { + type: "cloudkms.googleapis.com/CryptoKey" + pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}" +}; +option (google.api.resource_definition) = { + type: "cloudkms.googleapis.com/CryptoKeyVersion" + pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}" +}; // Configures and manages Cloud Memorystore for Redis clusters // @@ -47,12 +71,6 @@ option ruby_package = "Google::Cloud::Redis::Cluster::V1"; // // Note that location_id must be a GCP `region`; for example: // * `projects/redpepper-1290/locations/us-central1/clusters/my-redis` -// -// We use API version selector for Flex APIs -// * The versioning strategy is release-based versioning -// * Our backend CLH only deals with the superset version (called v1main) -// * Existing backend for Redis Gen1 and MRR is not touched. -// * More details in go/redis-flex-api-versioning service CloudRedisCluster { option (google.api.default_host) = "redis.googleapis.com"; option (google.api.oauth_scopes) = @@ -143,6 +161,119 @@ service CloudRedisCluster { }; option (google.api.method_signature) = "name"; } + + // Reschedules upcoming maintenance event. + rpc RescheduleClusterMaintenance(RescheduleClusterMaintenanceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/clusters/*}:rescheduleClusterMaintenance" + body: "*" + }; + option (google.api.method_signature) = "name,reschedule_type,schedule_time"; + option (google.longrunning.operation_info) = { + response_type: "Cluster" + metadata_type: "google.protobuf.Any" + }; + } + + // Lists all backup collections owned by a consumer project in either the + // specified location (region) or all locations. + // + // If `location_id` is specified as `-` (wildcard), then all regions + // available to the project are queried, and the results are aggregated. + rpc ListBackupCollections(ListBackupCollectionsRequest) + returns (ListBackupCollectionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/backupCollections" + }; + option (google.api.method_signature) = "parent"; + } + + // Get a backup collection. + rpc GetBackupCollection(GetBackupCollectionRequest) + returns (BackupCollection) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/backupCollections/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all backups owned by a backup collection. + rpc ListBackups(ListBackupsRequest) returns (ListBackupsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/backupCollections/*}/backups" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets the details of a specific backup. + rpc GetBackup(GetBackupRequest) returns (Backup) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes a specific backup. + rpc DeleteBackup(DeleteBackupRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.protobuf.Any" + }; + } + + // Exports a specific backup to a customer target Cloud Storage URI. + rpc ExportBackup(ExportBackupRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}:export" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "Backup" + metadata_type: "google.protobuf.Any" + }; + } + + // Backup Redis Cluster. + // If this is the first time a backup is being created, a backup collection + // will be created at the backend, and this backup belongs to this collection. + // Both collection and backup will have a resource name. Backup will be + // executed for each shard. A replica (primary if nonHA) will be selected to + // perform the execution. Backup call will be rejected if there is an ongoing + // backup or update operation. Be aware that during preview, if the cluster's + // internal software version is too old, critical update will be performed + // before actual backup. Once the internal software version is updated to the + // minimum version required by the backup feature, subsequent backups will not + // require critical update. After preview, there will be no critical update + // needed for backup. + rpc BackupCluster(BackupClusterRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/clusters/*}:backup" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Cluster" + metadata_type: "google.protobuf.Any" + }; + } +} + +// Status of the PSC connection. +enum PscConnectionStatus { + // PSC connection status is not specified. + PSC_CONNECTION_STATUS_UNSPECIFIED = 0; + + // The connection is active + PSC_CONNECTION_STATUS_ACTIVE = 1; + + // Connection not found + PSC_CONNECTION_STATUS_NOT_FOUND = 2; } // Available authorization mode of a Redis cluster. @@ -159,6 +290,7 @@ enum AuthorizationMode { // NodeType of a redis cluster node, enum NodeType { + // Node type unspecified NODE_TYPE_UNSPECIFIED = 0; // Redis shared core nano node_type. @@ -186,6 +318,21 @@ enum TransitEncryptionMode { TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION = 2; } +// Type of a PSC connection, for cluster access purpose. +enum ConnectionType { + // Cluster endpoint Type is not set + CONNECTION_TYPE_UNSPECIFIED = 0; + + // Cluster endpoint that will be used as for cluster topology discovery. + CONNECTION_TYPE_DISCOVERY = 1; + + // Cluster endpoint that will be used as primary endpoint to access primary. + CONNECTION_TYPE_PRIMARY = 2; + + // Cluster endpoint that will be used as reader endpoint to access replicas. + CONNECTION_TYPE_READER = 3; +} + // Request for [CreateCluster][CloudRedis.CreateCluster]. message CreateClusterRequest { // Required. The resource name of the cluster location using the form: @@ -322,11 +469,174 @@ message GetClusterCertificateAuthorityRequest { ]; } +// Request for [ListBackupCollections] +message ListBackupCollectionsRequest { + // Required. The resource name of the backupCollection location using the + // form: + // `projects/{project_id}/locations/{location_id}` + // where `location_id` refers to a GCP region. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "redis.googleapis.com/BackupCollection" + } + ]; + + // Optional. The maximum number of items to return. + // + // If not specified, a default value of 1000 will be used by the service. + // Regardless of the page_size value, the response may include a partial list + // and a caller should only rely on response's + // [`next_page_token`][google.cloud.redis.cluster.v1.ListBackupCollectionsResponse.next_page_token] + // to determine if there are more clusters left to be queried. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The `next_page_token` value returned from a previous + // [ListBackupCollections] request, if any. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for [ListBackupCollections]. +message ListBackupCollectionsResponse { + // A list of backupCollections in the project. + // + // If the `location_id` in the parent field of the request is "-", all regions + // available to the project are queried, and the results aggregated. + // If in such an aggregated query a location is unavailable, a placeholder + // backupCollection entry is included in the response with the `name` field + // set to a value of the form + // `projects/{project_id}/locations/{location_id}/backupCollections/`- and the + // `status` field set to ERROR and `status_message` field set to "location not + // available for ListBackupCollections". + repeated BackupCollection backup_collections = 1; + + // Token to retrieve the next page of results, or empty if there are no more + // results in the list. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request for [GetBackupCollection]. +message GetBackupCollectionRequest { + // Required. Redis backupCollection resource name using the form: + // `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}` + // where `location_id` refers to a GCP region. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "redis.googleapis.com/BackupCollection" + } + ]; +} + +// Request for [ListBackups]. +message ListBackupsRequest { + // Required. The resource name of the backupCollection using the form: + // `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "redis.googleapis.com/Backup" + } + ]; + + // Optional. The maximum number of items to return. + // + // If not specified, a default value of 1000 will be used by the service. + // Regardless of the page_size value, the response may include a partial list + // and a caller should only rely on response's + // [`next_page_token`][google.cloud.redis.cluster.v1.ListBackupsResponse.next_page_token] + // to determine if there are more clusters left to be queried. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The `next_page_token` value returned from a previous + // [ListBackupCollections] request, if any. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for [ListBackups]. +message ListBackupsResponse { + // A list of backups in the project. + repeated Backup backups = 1; + + // Token to retrieve the next page of results, or empty if there are no more + // results in the list. + string next_page_token = 2; + + // Backups that could not be reached. + repeated string unreachable = 3; +} + +// Request for [GetBackup]. +message GetBackupRequest { + // Required. Redis backup resource name using the form: + // `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "redis.googleapis.com/Backup" } + ]; +} + +// Request for [DeleteBackup]. +message DeleteBackupRequest { + // Required. Redis backup resource name using the form: + // `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "redis.googleapis.com/Backup" } + ]; + + // Optional. Idempotent request UUID. + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Request for [ExportBackup]. +message ExportBackupRequest { + // Required. Specify destination to export a backup. + oneof destination { + // Google Cloud Storage bucket, like "my-bucket". + string gcs_bucket = 3; + } + + // Required. Redis backup resource name using the form: + // `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "redis.googleapis.com/Backup" } + ]; +} + +// Request for [BackupCluster]. +message BackupClusterRequest { + // Required. Redis cluster resource name using the form: + // `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` + // where `location_id` refers to a GCP region. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "redis.googleapis.com/Cluster" } + ]; + + // Optional. TTL for the backup to expire. Value range is 1 day to 100 years. + // If not specified, the default value is 100 years. + google.protobuf.Duration ttl = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The id of the backup to be created. If not specified, the + // default value ([YYYYMMDDHHMMSS]_[Shortened Cluster UID] is used. + optional string backup_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + // A cluster instance. message Cluster { option (google.api.resource) = { type: "redis.googleapis.com/Cluster" pattern: "projects/{project}/locations/{location}/clusters/{cluster}" + plural: "clusters" + singular: "cluster" }; // Represents additional information about the state of the cluster. @@ -346,6 +656,25 @@ message Cluster { } } + // Backups stored in Cloud Storage buckets. + // The Cloud Storage buckets need to be the same region as the clusters. + message GcsBackupSource { + // Optional. URIs of the GCS objects to import. + // Example: gs://bucket1/object1, gs://bucket2/folder2/object2 + repeated string uris = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // Backups that generated and managed by memorystore. + message ManagedBackupSource { + // Optional. Example: + // //redis.googleapis.com/projects/{project}/locations/{location}/backupCollections/{collection}/backups/{backup} + // A shorter version (without the prefix) of the backup name is also + // supported, like + // projects/{project}/locations/{location}/backupCollections/{collection}/backups/{backup_id} + // In this case, it assumes the backup is under redis.googleapis.com. + string backup = 1 [(google.api.field_behavior) = OPTIONAL]; + } + // Represents the different states of a Redis cluster. enum State { // Not set. @@ -364,10 +693,26 @@ message Cluster { DELETING = 4; } - // Required. Unique name of the resource in this scope including project and - // location using the form: + // The source to import from. + oneof import_sources { + // Optional. Backups stored in Cloud Storage buckets. + // The Cloud Storage buckets need to be the same region as the clusters. + // Read permission is required to import from the provided Cloud Storage + // objects. + GcsBackupSource gcs_source = 34 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Backups generated and managed by memorystore service. + ManagedBackupSource managed_backup_source = 35 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. Identifier. Unique name of the resource in this scope including + // project and location using the form: // `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER + ]; // Output only. The timestamp associated with the cluster creation request. google.protobuf.Timestamp create_time = 3 @@ -397,21 +742,21 @@ message Cluster { // the next integer. optional int32 size_gb = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Required. Number of shards for the Redis cluster. - optional int32 shard_count = 14 [(google.api.field_behavior) = REQUIRED]; + // Optional. Number of shards for the Redis cluster. + optional int32 shard_count = 14 [(google.api.field_behavior) = OPTIONAL]; - // Required. Each PscConfig configures the consumer network where IPs will + // Optional. Each PscConfig configures the consumer network where IPs will // be designated to the cluster for client access through Private Service // Connect Automation. Currently, only one PscConfig is supported. - repeated PscConfig psc_configs = 15 [(google.api.field_behavior) = REQUIRED]; + repeated PscConfig psc_configs = 15 [(google.api.field_behavior) = OPTIONAL]; // Output only. Endpoints created on each given network, for Redis clients to // connect to the cluster. Currently only one discovery endpoint is supported. repeated DiscoveryEndpoint discovery_endpoints = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. PSC connections for discovery of the cluster topology and - // accessing the cluster. + // Output only. The list of PSC connections that are auto-created through + // service connectivity automation. repeated PscConnection psc_connections = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -440,9 +785,387 @@ message Cluster { ZoneDistributionConfig zone_distribution_config = 23 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Cross cluster replication config. + CrossClusterReplicationConfig cross_cluster_replication_config = 24 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. The delete operation will fail when the value is set to true. optional bool deletion_protection_enabled = 25 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. ClusterMaintenancePolicy determines when to allow or deny + // updates. + optional ClusterMaintenancePolicy maintenance_policy = 26 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. ClusterMaintenanceSchedule Output only Published maintenance + // schedule. + optional ClusterMaintenanceSchedule maintenance_schedule = 27 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Service attachment details to configure Psc connections + repeated PscServiceAttachment psc_service_attachments = 30 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. A list of cluster enpoints. + repeated ClusterEndpoint cluster_endpoints = 36 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Output only. The backup collection full resource name. Example: + // projects/{project}/locations/{location}/backupCollections/{collection} + optional string backup_collection = 39 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "redis.googleapis.com/BackupCollection" + } + ]; + + // Optional. The KMS key used to encrypt the at-rest data of the cluster. + optional string kms_key = 40 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; + + // Optional. The automated backup config for the cluster. + AutomatedBackupConfig automated_backup_config = 42 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Encryption information of the data at rest of the cluster. + EncryptionInfo encryption_info = 43 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The automated backup config for a cluster. +message AutomatedBackupConfig { + // This schedule allows the backup to be triggered at a fixed frequency + // (currently only daily is supported). + message FixedFrequencySchedule { + // Required. The start time of every automated backup in UTC. It must be set + // to the start of an hour. This field is required. + optional google.type.TimeOfDay start_time = 2 + [(google.api.field_behavior) = REQUIRED]; + } + + // The automated backup mode. + enum AutomatedBackupMode { + // Default value. Automated backup config is not specified. + AUTOMATED_BACKUP_MODE_UNSPECIFIED = 0; + + // Automated backup config disabled. + DISABLED = 1; + + // Automated backup config enabled. + ENABLED = 2; + } + + // The schedule of automated backups. + oneof schedule { + // Optional. Trigger automated backups at a fixed frequency. + FixedFrequencySchedule fixed_frequency_schedule = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. The automated backup mode. If the mode is disabled, the other + // fields will be ignored. + AutomatedBackupMode automated_backup_mode = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. How long to keep automated backups before the backups are + // deleted. The value should be between 1 day and 365 days. If not specified, + // the default value is 35 days. + optional google.protobuf.Duration retention = 3 + [(google.api.field_behavior) = OPTIONAL]; +} + +// BackupCollection of a cluster. +message BackupCollection { + option (google.api.resource) = { + type: "redis.googleapis.com/BackupCollection" + pattern: "projects/{project}/locations/{location}/backupCollections/{backup_collection}" + plural: "backupCollections" + singular: "backupCollection" + }; + + // Identifier. Full resource path of the backup collection. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The cluster uid of the backup collection. + string cluster_uid = 3 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Output only. The full resource path of the cluster the backup collection + // belongs to. Example: + // projects/{project}/locations/{location}/clusters/{cluster} + string cluster = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "redis.googleapis.com/Cluster" } + ]; + + // Output only. The KMS key used to encrypt the backups under this backup + // collection. + string kms_key = 5 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; + + // Output only. System assigned unique identifier of the backup collection. + string uid = 6 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; +} + +// Backup of a cluster. +message Backup { + option (google.api.resource) = { + type: "redis.googleapis.com/Backup" + pattern: "projects/{project}/locations/{location}/backupCollections/{backup_collection}/backups/{backup}" + plural: "backups" + singular: "backup" + }; + + // Type of the backup. + enum BackupType { + // The default value, not set. + BACKUP_TYPE_UNSPECIFIED = 0; + + // On-demand backup. + ON_DEMAND = 1; + + // Automated backup. + AUTOMATED = 2; + } + + // State of the backup. + enum State { + // The default value, not set. + STATE_UNSPECIFIED = 0; + + // The backup is being created. + CREATING = 1; + + // The backup is active to be used. + ACTIVE = 2; + + // The backup is being deleted. + DELETING = 3; + + // The backup is currently suspended due to reasons like project deletion, + // billing account closure, etc. + SUSPENDED = 4; + } + + // Identifier. Full resource path of the backup. the last part of the name is + // the backup id with the following format: [YYYYMMDDHHMMSS]_[Shorted Cluster + // UID] OR customer specified while backup cluster. Example: + // 20240515123000_1234 + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The time when the backup was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Cluster resource path of this backup. + string cluster = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "redis.googleapis.com/Cluster" } + ]; + + // Output only. Cluster uid of this backup. + string cluster_uid = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Output only. Total size of the backup in bytes. + int64 total_size_bytes = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the backup will expire. + google.protobuf.Timestamp expire_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. redis-7.2, valkey-7.5 + string engine_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of backup files of the backup. + repeated BackupFile backup_files = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Node type of the cluster. + NodeType node_type = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of replicas for the cluster. + int32 replica_count = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of shards for the cluster. + int32 shard_count = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of the backup. + BackupType backup_type = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. State of the backup. + State state = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Encryption information of the backup. + EncryptionInfo encryption_info = 14 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. System assigned unique identifier of the backup. + string uid = 15 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; +} + +// Backup is consisted of multiple backup files. +message BackupFile { + // Output only. e.g: .rdb + string file_name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Size of the backup file in bytes. + int64 size_bytes = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the backup file was created. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Configuration of a service attachment of the cluster, for creating PSC +// connections. +message PscServiceAttachment { + // Output only. Service attachment URI which your self-created PscConnection + // should use as target + string service_attachment = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of a PSC connection targeting this service attachment. + ConnectionType connection_type = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Cross cluster replication config. +message CrossClusterReplicationConfig { + // Details of the remote cluster associated with this cluster in a cross + // cluster replication setup. + message RemoteCluster { + // The full resource path of the remote cluster in + // the format: projects//locations//clusters/ + string cluster = 1 [ + (google.api.resource_reference) = { type: "redis.googleapis.com/Cluster" } + ]; + + // Output only. The unique identifier of the remote cluster. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // An output only view of all the member clusters participating in the cross + // cluster replication. + message Membership { + // Output only. The primary cluster that acts as the source of replication + // for the secondary clusters. + RemoteCluster primary_cluster = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The list of secondary clusters replicating from the primary + // cluster. + repeated RemoteCluster secondary_clusters = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The role of the cluster in cross cluster replication. + enum ClusterRole { + // Cluster role is not set. + // The behavior is equivalent to NONE. + CLUSTER_ROLE_UNSPECIFIED = 0; + + // This cluster does not participate in cross cluster replication. It is an + // independent cluster and does not replicate to or from any other clusters. + NONE = 1; + + // A cluster that allows both reads and writes. Any data written to this + // cluster is also replicated to the attached secondary clusters. + PRIMARY = 2; + + // A cluster that allows only reads and replicates data from a primary + // cluster. + SECONDARY = 3; + } + + // The role of the cluster in cross cluster replication. + ClusterRole cluster_role = 1; + + // Details of the primary cluster that is used as the replication source for + // this secondary cluster. + // + // This field is only set for a secondary cluster. + RemoteCluster primary_cluster = 2; + + // List of secondary clusters that are replicating from this primary cluster. + // + // This field is only set for a primary cluster. + repeated RemoteCluster secondary_clusters = 3; + + // Output only. The last time cross cluster replication config was updated. + google.protobuf.Timestamp update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. An output only view of all the member clusters participating + // in the cross cluster replication. This view will be provided by every + // member cluster irrespective of its cluster role(primary or secondary). + // + // A primary cluster can provide information about all the secondary clusters + // replicating from it. However, a secondary cluster only knows about the + // primary cluster from which it is replicating. However, for scenarios, where + // the primary cluster is unavailable(e.g. regional outage), a GetCluster + // request can be sent to any other member cluster and this field will list + // all the member clusters participating in cross cluster replication. + Membership membership = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Maintenance policy per cluster. +message ClusterMaintenancePolicy { + // Output only. The time when the policy was created i.e. Maintenance Window + // or Deny Period was assigned. + google.protobuf.Timestamp create_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the policy was updated i.e. Maintenance Window + // or Deny Period was updated. + google.protobuf.Timestamp update_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Maintenance window that is applied to resources covered by this + // policy. Minimum 1. For the current version, the maximum number of + // weekly_maintenance_window is expected to be one. + repeated ClusterWeeklyMaintenanceWindow weekly_maintenance_window = 3; +} + +// Time window specified for weekly operations. +message ClusterWeeklyMaintenanceWindow { + // Allows to define schedule that runs specified day of the week. + google.type.DayOfWeek day = 1; + + // Start time of the window in UTC. + google.type.TimeOfDay start_time = 2; +} + +// Upcoming maitenance schedule. +message ClusterMaintenanceSchedule { + // Output only. The start time of any upcoming scheduled maintenance for this + // instance. + google.protobuf.Timestamp start_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The end time of any upcoming scheduled maintenance for this + // instance. + google.protobuf.Timestamp end_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; } message PscConfig { @@ -468,26 +1191,140 @@ message DiscoveryEndpoint { // Details of consumer resources in a PSC connection. message PscConnection { + // Required. The PSC connection id of the forwarding rule connected to the + // service attachment. + string psc_connection_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The IP allocated on the consumer network for the PSC forwarding + // rule. + string address = 2 [ + (google.api.field_info).format = IPV4, + (google.api.field_behavior) = REQUIRED + ]; + + // Required. The URI of the consumer side forwarding rule. + // Example: + // projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}. + string forwarding_rule = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "compute.googleapis.com/ForwardingRule" + } + ]; + + // Optional. Project ID of the consumer project where the forwarding rule is + // created in. + string project_id = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The consumer network where the IP address resides, in the form of + // projects/{project_id}/global/networks/{network_id}. + string network = 5 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } + ]; + + // Required. The service attachment which is the target of the PSC connection, + // in the form of + // projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}. + string service_attachment = 6 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "compute.googleapis.com/ServiceAttachment" + } + ]; + + // Output only. The status of the PSC connection. + // Please note that this value is updated periodically. + // To get the latest status of a PSC connection, follow + // https://cloud.google.com/vpc/docs/configure-private-service-connect-services#endpoint-details. + PscConnectionStatus psc_connection_status = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of the PSC connection. + ConnectionType connection_type = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// ClusterEndpoint consists of PSC connections that are created +// as a group in each VPC network for accessing the cluster. In each group, +// there shall be one connection for each service attachment in the cluster. +message ClusterEndpoint { + // A group of PSC connections. They are created in the same VPC network, one + // for each service attachment in the cluster. + repeated ConnectionDetail connections = 1; +} + +// Detailed information of each PSC connection. +message ConnectionDetail { + // A PSC connection to a cluster could either be created through Service + // Connectivity Automation (auto-registered connection) during the cluster + // creation, or it could be created by customer themselves (user-registered + // connection). + oneof connection { + // Detailed information of a PSC connection that is created through + // service connectivity automation. + PscAutoConnection psc_auto_connection = 1; + + // Detailed information of a PSC connection that is created by the customer + // who owns the cluster. + PscConnection psc_connection = 2; + } +} + +// Details of consumer resources in a PSC connection that is created through +// Service Connectivity Automation. +message PscAutoConnection { // Output only. The PSC connection id of the forwarding rule connected to the // service attachment. string psc_connection_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The IP allocated on the consumer network for the PSC // forwarding rule. - string address = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + string address = 2 [ + (google.api.field_info).format = IPV4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; // Output only. The URI of the consumer side forwarding rule. // Example: // projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}. - string forwarding_rule = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + string forwarding_rule = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "compute.googleapis.com/ForwardingRule" + } + ]; - // Output only. The consumer project_id where the forwarding rule is created + // Required. The consumer project_id where the forwarding rule is created // from. - string project_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + string project_id = 4 [(google.api.field_behavior) = REQUIRED]; - // The consumer network where the IP address resides, in the form of + // Required. The consumer network where the IP address resides, in the form of // projects/{project_id}/global/networks/{network_id}. - string network = 5; + string network = 5 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } + ]; + + // Output only. The service attachment which is the target of the PSC + // connection, in the form of + // projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}. + string service_attachment = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "compute.googleapis.com/ServiceAttachment" + } + ]; + + // Output only. The status of the PSC connection. + // Please note that this value is updated periodically. + // Please use Private Service Connect APIs for the latest status. + PscConnectionStatus psc_connection_status = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of the PSC connection. + ConnectionType connection_type = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Pre-defined metadata fields. @@ -525,6 +1362,8 @@ message CertificateAuthority { option (google.api.resource) = { type: "redis.googleapis.com/CertificateAuthority" pattern: "projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority" + plural: "certificateAuthorities" + singular: "certificateAuthority" }; message ManagedCertificateAuthority { @@ -597,8 +1436,8 @@ message ClusterPersistenceConfig { // there is a disaster EVERYSEC = 2; - // fsync every time new commands are appended to the AOF. It has the best - // data loss protection at the cost of performance + // fsync every time new write commands are appended to the AOF. It has the + // best data loss protection at the cost of performance ALWAYS = 3; } @@ -634,9 +1473,6 @@ message ClusterPersistenceConfig { // Zone distribution config for allocation of cluster resources. message ZoneDistributionConfig { // Defines various modes of zone distribution. - // Currently supports two modes, can be expanded in future to support more - // types of distribution modes. - // design doc: go/same-zone-cluster enum ZoneDistributionMode { // Not Set. Default: MULTI_ZONE ZONE_DISTRIBUTION_MODE_UNSPECIFIED = 0; @@ -659,3 +1495,105 @@ message ZoneDistributionConfig { // MULTI_ZONE, and would be ignored for MULTI_ZONE clusters. string zone = 2 [(google.api.field_behavior) = OPTIONAL]; } + +// Request for rescheduling a cluster maintenance. +message RescheduleClusterMaintenanceRequest { + // Reschedule options. + enum RescheduleType { + // Not set. + RESCHEDULE_TYPE_UNSPECIFIED = 0; + + // If the user wants to schedule the maintenance to happen now. + IMMEDIATE = 1; + + // If the user wants to reschedule the maintenance to a specific time. + SPECIFIC_TIME = 3; + } + + // Required. Redis Cluster instance resource name using the form: + // `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` + // where `location_id` refers to a GCP region. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "redis.googleapis.com/Cluster" } + ]; + + // Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as + // well. + RescheduleType reschedule_type = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Timestamp when the maintenance shall be rescheduled to if + // reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for + // example `2012-11-15T16:19:00.094Z`. + google.protobuf.Timestamp schedule_time = 3 + [(google.api.field_behavior) = OPTIONAL]; +} + +// EncryptionInfo describes the encryption information of a cluster or a backup. +message EncryptionInfo { + // Possible encryption types. + enum Type { + // Encryption type not specified. Defaults to GOOGLE_DEFAULT_ENCRYPTION. + TYPE_UNSPECIFIED = 0; + + // The data is encrypted at rest with a key that is fully managed by Google. + // No key version will be populated. This is the default state. + GOOGLE_DEFAULT_ENCRYPTION = 1; + + // The data is encrypted at rest with a key that is managed by the customer. + // KMS key versions will be populated. + CUSTOMER_MANAGED_ENCRYPTION = 2; + } + + // The state of the KMS key perceived by the system. Refer to the public + // documentation for the impact of each state. + enum KmsKeyState { + // The default value. This value is unused. + KMS_KEY_STATE_UNSPECIFIED = 0; + + // The KMS key is enabled and correctly configured. + ENABLED = 1; + + // Permission denied on the KMS key. + PERMISSION_DENIED = 2; + + // The KMS key is disabled. + DISABLED = 3; + + // The KMS key is destroyed. + DESTROYED = 4; + + // The KMS key is scheduled to be destroyed. + DESTROY_SCHEDULED = 5; + + // The EKM key is unreachable. + EKM_KEY_UNREACHABLE_DETECTED = 6; + + // Billing is disabled for the project. + BILLING_DISABLED = 7; + + // All other unknown failures. + UNKNOWN_FAILURE = 8; + } + + // Output only. Type of encryption. + Type encryption_type = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. KMS key versions that are being used to protect the data + // at-rest. + repeated string kms_key_versions = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKeyVersion" + } + ]; + + // Output only. The state of the primary version of the KMS key perceived by + // the system. This field is not populated in backups. + KmsKeyState kms_key_primary_state = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The most recent time when the encryption info was updated. + google.protobuf.Timestamp last_update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/packages/google-cloud-redis-cluster/protos/google/cloud/redis/cluster/v1beta1/cloud_redis_cluster.proto b/packages/google-cloud-redis-cluster/protos/google/cloud/redis/cluster/v1beta1/cloud_redis_cluster.proto index 8114ac01606..16767bab268 100644 --- a/packages/google-cloud-redis-cluster/protos/google/cloud/redis/cluster/v1beta1/cloud_redis_cluster.proto +++ b/packages/google-cloud-redis-cluster/protos/google/cloud/redis/cluster/v1beta1/cloud_redis_cluster.proto @@ -19,18 +19,42 @@ package google.cloud.redis.cluster.v1beta1; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; import "google/api/resource.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; +import "google/type/dayofweek.proto"; +import "google/type/timeofday.proto"; option go_package = "cloud.google.com/go/redis/cluster/apiv1beta1/clusterpb;clusterpb"; option java_multiple_files = true; option java_outer_classname = "CloudRedisClusterProto"; option java_package = "com.google.cloud.redis.cluster.v1beta1"; option ruby_package = "Google::Cloud::Redis::Cluster::V1beta1"; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/ForwardingRule" + pattern: "projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}" +}; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/Network" + pattern: "projects/{project}/global/networks/{network}" +}; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/ServiceAttachment" + pattern: "projects/{project}/regions/{region}/serviceAttachments/{service_attachment}" +}; +option (google.api.resource_definition) = { + type: "cloudkms.googleapis.com/CryptoKey" + pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}" +}; +option (google.api.resource_definition) = { + type: "cloudkms.googleapis.com/CryptoKeyVersion" + pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}" +}; // Configures and manages Cloud Memorystore for Redis clusters // @@ -47,12 +71,6 @@ option ruby_package = "Google::Cloud::Redis::Cluster::V1beta1"; // // Note that location_id must be a GCP `region`; for example: // * `projects/redpepper-1290/locations/us-central1/clusters/my-redis` -// -// We use API version selector for Flex APIs -// * The versioning strategy is release-based versioning -// * Our backend CLH only deals with the superset version (called v1main) -// * Existing backend for Redis Gen1 and MRR is not touched. -// * More details in go/redis-flex-api-versioning service CloudRedisCluster { option (google.api.default_host) = "redis.googleapis.com"; option (google.api.oauth_scopes) = @@ -143,6 +161,119 @@ service CloudRedisCluster { }; option (google.api.method_signature) = "name"; } + + // Reschedules upcoming maintenance event. + rpc RescheduleClusterMaintenance(RescheduleClusterMaintenanceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/clusters/*}:rescheduleClusterMaintenance" + body: "*" + }; + option (google.api.method_signature) = "name,reschedule_type,schedule_time"; + option (google.longrunning.operation_info) = { + response_type: "Cluster" + metadata_type: "google.protobuf.Any" + }; + } + + // Lists all backup collections owned by a consumer project in either the + // specified location (region) or all locations. + // + // If `location_id` is specified as `-` (wildcard), then all regions + // available to the project are queried, and the results are aggregated. + rpc ListBackupCollections(ListBackupCollectionsRequest) + returns (ListBackupCollectionsResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*}/backupCollections" + }; + option (google.api.method_signature) = "parent"; + } + + // Get a backup collection. + rpc GetBackupCollection(GetBackupCollectionRequest) + returns (BackupCollection) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/backupCollections/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all backups owned by a backup collection. + rpc ListBackups(ListBackupsRequest) returns (ListBackupsResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*/backupCollections/*}/backups" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets the details of a specific backup. + rpc GetBackup(GetBackupRequest) returns (Backup) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/backupCollections/*/backups/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes a specific backup. + rpc DeleteBackup(DeleteBackupRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/backupCollections/*/backups/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.protobuf.Any" + }; + } + + // Exports a specific backup to a customer target Cloud Storage URI. + rpc ExportBackup(ExportBackupRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/backupCollections/*/backups/*}:export" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "Backup" + metadata_type: "google.protobuf.Any" + }; + } + + // Backup Redis Cluster. + // If this is the first time a backup is being created, a backup collection + // will be created at the backend, and this backup belongs to this collection. + // Both collection and backup will have a resource name. Backup will be + // executed for each shard. A replica (primary if nonHA) will be selected to + // perform the execution. Backup call will be rejected if there is an ongoing + // backup or update operation. Be aware that during preview, if the cluster's + // internal software version is too old, critical update will be performed + // before actual backup. Once the internal software version is updated to the + // minimum version required by the backup feature, subsequent backups will not + // require critical update. After preview, there will be no critical update + // needed for backup. + rpc BackupCluster(BackupClusterRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/clusters/*}:backup" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Cluster" + metadata_type: "google.protobuf.Any" + }; + } +} + +// Status of the PSC connection. +enum PscConnectionStatus { + // PSC connection status is not specified. + PSC_CONNECTION_STATUS_UNSPECIFIED = 0; + + // The connection is active + PSC_CONNECTION_STATUS_ACTIVE = 1; + + // Connection not found + PSC_CONNECTION_STATUS_NOT_FOUND = 2; } // Available authorization mode of a Redis cluster. @@ -159,6 +290,7 @@ enum AuthorizationMode { // NodeType of a redis cluster node, enum NodeType { + // Node type unspecified NODE_TYPE_UNSPECIFIED = 0; // Redis shared core nano node_type. @@ -186,6 +318,21 @@ enum TransitEncryptionMode { TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION = 2; } +// Type of a PSC connection, for cluster access purpose. +enum ConnectionType { + // Cluster endpoint Type is not set + CONNECTION_TYPE_UNSPECIFIED = 0; + + // Cluster endpoint that will be used as for cluster topology discovery. + CONNECTION_TYPE_DISCOVERY = 1; + + // Cluster endpoint that will be used as primary endpoint to access primary. + CONNECTION_TYPE_PRIMARY = 2; + + // Cluster endpoint that will be used as reader endpoint to access replicas. + CONNECTION_TYPE_READER = 3; +} + // Request for [CreateCluster][CloudRedis.CreateCluster]. message CreateClusterRequest { // Required. The resource name of the cluster location using the form: @@ -322,11 +469,174 @@ message GetClusterCertificateAuthorityRequest { ]; } +// Request for [ListBackupCollections] +message ListBackupCollectionsRequest { + // Required. The resource name of the backupCollection location using the + // form: + // `projects/{project_id}/locations/{location_id}` + // where `location_id` refers to a GCP region. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "redis.googleapis.com/BackupCollection" + } + ]; + + // Optional. The maximum number of items to return. + // + // If not specified, a default value of 1000 will be used by the service. + // Regardless of the page_size value, the response may include a partial list + // and a caller should only rely on response's + // [`next_page_token`][google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse.next_page_token] + // to determine if there are more clusters left to be queried. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The `next_page_token` value returned from a previous + // [ListBackupCollections] request, if any. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for [ListBackupCollections]. +message ListBackupCollectionsResponse { + // A list of backupCollections in the project. + // + // If the `location_id` in the parent field of the request is "-", all regions + // available to the project are queried, and the results aggregated. + // If in such an aggregated query a location is unavailable, a placeholder + // backupCollection entry is included in the response with the `name` field + // set to a value of the form + // `projects/{project_id}/locations/{location_id}/backupCollections/`- and the + // `status` field set to ERROR and `status_message` field set to "location not + // available for ListBackupCollections". + repeated BackupCollection backup_collections = 1; + + // Token to retrieve the next page of results, or empty if there are no more + // results in the list. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request for [GetBackupCollection]. +message GetBackupCollectionRequest { + // Required. Redis backupCollection resource name using the form: + // `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}` + // where `location_id` refers to a GCP region. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "redis.googleapis.com/BackupCollection" + } + ]; +} + +// Request for [ListBackups]. +message ListBackupsRequest { + // Required. The resource name of the backupCollection using the form: + // `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "redis.googleapis.com/Backup" + } + ]; + + // Optional. The maximum number of items to return. + // + // If not specified, a default value of 1000 will be used by the service. + // Regardless of the page_size value, the response may include a partial list + // and a caller should only rely on response's + // [`next_page_token`][google.cloud.redis.cluster.v1beta1.ListBackupsResponse.next_page_token] + // to determine if there are more clusters left to be queried. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The `next_page_token` value returned from a previous + // [ListBackupCollections] request, if any. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for [ListBackups]. +message ListBackupsResponse { + // A list of backups in the project. + repeated Backup backups = 1; + + // Token to retrieve the next page of results, or empty if there are no more + // results in the list. + string next_page_token = 2; + + // Backups that could not be reached. + repeated string unreachable = 3; +} + +// Request for [GetBackup]. +message GetBackupRequest { + // Required. Redis backup resource name using the form: + // `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "redis.googleapis.com/Backup" } + ]; +} + +// Request for [DeleteBackup]. +message DeleteBackupRequest { + // Required. Redis backup resource name using the form: + // `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "redis.googleapis.com/Backup" } + ]; + + // Optional. Idempotent request UUID. + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Request for [ExportBackup]. +message ExportBackupRequest { + // Required. Specify destination to export a backup. + oneof destination { + // Google Cloud Storage bucket, like "my-bucket". + string gcs_bucket = 3; + } + + // Required. Redis backup resource name using the form: + // `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "redis.googleapis.com/Backup" } + ]; +} + +// Request for [BackupCluster]. +message BackupClusterRequest { + // Required. Redis cluster resource name using the form: + // `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` + // where `location_id` refers to a GCP region. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "redis.googleapis.com/Cluster" } + ]; + + // Optional. TTL for the backup to expire. Value range is 1 day to 100 years. + // If not specified, the default value is 100 years. + google.protobuf.Duration ttl = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The id of the backup to be created. If not specified, the + // default value ([YYYYMMDDHHMMSS]_[Shortened Cluster UID] is used. + optional string backup_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + // A cluster instance. message Cluster { option (google.api.resource) = { type: "redis.googleapis.com/Cluster" pattern: "projects/{project}/locations/{location}/clusters/{cluster}" + plural: "clusters" + singular: "cluster" }; // Represents additional information about the state of the cluster. @@ -346,6 +656,25 @@ message Cluster { } } + // Backups stored in Cloud Storage buckets. + // The Cloud Storage buckets need to be the same region as the clusters. + message GcsBackupSource { + // Optional. URIs of the GCS objects to import. + // Example: gs://bucket1/object1, gs://bucket2/folder2/object2 + repeated string uris = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // Backups that generated and managed by memorystore. + message ManagedBackupSource { + // Optional. Example: + // //redis.googleapis.com/projects/{project}/locations/{location}/backupCollections/{collection}/backups/{backup} + // A shorter version (without the prefix) of the backup name is also + // supported, like + // projects/{project}/locations/{location}/backupCollections/{collection}/backups/{backup_id} + // In this case, it assumes the backup is under redis.googleapis.com. + string backup = 1 [(google.api.field_behavior) = OPTIONAL]; + } + // Represents the different states of a Redis cluster. enum State { // Not set. @@ -364,10 +693,26 @@ message Cluster { DELETING = 4; } - // Required. Unique name of the resource in this scope including project and - // location using the form: + // The source to import from. + oneof import_sources { + // Optional. Backups stored in Cloud Storage buckets. + // The Cloud Storage buckets need to be the same region as the clusters. + // Read permission is required to import from the provided Cloud Storage + // objects. + GcsBackupSource gcs_source = 34 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Backups generated and managed by memorystore service. + ManagedBackupSource managed_backup_source = 35 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. Identifier. Unique name of the resource in this scope including + // project and location using the form: // `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER + ]; // Output only. The timestamp associated with the cluster creation request. google.protobuf.Timestamp create_time = 3 @@ -397,21 +742,21 @@ message Cluster { // the next integer. optional int32 size_gb = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Required. Number of shards for the Redis cluster. - optional int32 shard_count = 14 [(google.api.field_behavior) = REQUIRED]; + // Optional. Number of shards for the Redis cluster. + optional int32 shard_count = 14 [(google.api.field_behavior) = OPTIONAL]; - // Required. Each PscConfig configures the consumer network where IPs will + // Optional. Each PscConfig configures the consumer network where IPs will // be designated to the cluster for client access through Private Service // Connect Automation. Currently, only one PscConfig is supported. - repeated PscConfig psc_configs = 15 [(google.api.field_behavior) = REQUIRED]; + repeated PscConfig psc_configs = 15 [(google.api.field_behavior) = OPTIONAL]; // Output only. Endpoints created on each given network, for Redis clients to // connect to the cluster. Currently only one discovery endpoint is supported. repeated DiscoveryEndpoint discovery_endpoints = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. PSC connections for discovery of the cluster topology and - // accessing the cluster. + // Output only. The list of PSC connections that are auto-created through + // service connectivity automation. repeated PscConnection psc_connections = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -440,9 +785,387 @@ message Cluster { ZoneDistributionConfig zone_distribution_config = 23 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Cross cluster replication config. + CrossClusterReplicationConfig cross_cluster_replication_config = 24 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. The delete operation will fail when the value is set to true. optional bool deletion_protection_enabled = 25 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. ClusterMaintenancePolicy determines when to allow or deny + // updates. + optional ClusterMaintenancePolicy maintenance_policy = 26 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. ClusterMaintenanceSchedule Output only Published maintenance + // schedule. + optional ClusterMaintenanceSchedule maintenance_schedule = 27 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Service attachment details to configure Psc connections + repeated PscServiceAttachment psc_service_attachments = 30 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. A list of cluster enpoints. + repeated ClusterEndpoint cluster_endpoints = 36 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Output only. The backup collection full resource name. Example: + // projects/{project}/locations/{location}/backupCollections/{collection} + optional string backup_collection = 39 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "redis.googleapis.com/BackupCollection" + } + ]; + + // Optional. The KMS key used to encrypt the at-rest data of the cluster. + optional string kms_key = 40 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; + + // Optional. The automated backup config for the cluster. + AutomatedBackupConfig automated_backup_config = 42 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Encryption information of the data at rest of the cluster. + EncryptionInfo encryption_info = 43 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The automated backup config for a cluster. +message AutomatedBackupConfig { + // This schedule allows the backup to be triggered at a fixed frequency + // (currently only daily is supported). + message FixedFrequencySchedule { + // Required. The start time of every automated backup in UTC. It must be set + // to the start of an hour. This field is required. + optional google.type.TimeOfDay start_time = 2 + [(google.api.field_behavior) = REQUIRED]; + } + + // The automated backup mode. + enum AutomatedBackupMode { + // Default value. Automated backup config is not specified. + AUTOMATED_BACKUP_MODE_UNSPECIFIED = 0; + + // Automated backup config disabled. + DISABLED = 1; + + // Automated backup config enabled. + ENABLED = 2; + } + + // The schedule of automated backups. + oneof schedule { + // Optional. Trigger automated backups at a fixed frequency. + FixedFrequencySchedule fixed_frequency_schedule = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. The automated backup mode. If the mode is disabled, the other + // fields will be ignored. + AutomatedBackupMode automated_backup_mode = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. How long to keep automated backups before the backups are + // deleted. The value should be between 1 day and 365 days. If not specified, + // the default value is 35 days. + optional google.protobuf.Duration retention = 3 + [(google.api.field_behavior) = OPTIONAL]; +} + +// BackupCollection of a cluster. +message BackupCollection { + option (google.api.resource) = { + type: "redis.googleapis.com/BackupCollection" + pattern: "projects/{project}/locations/{location}/backupCollections/{backup_collection}" + plural: "backupCollections" + singular: "backupCollection" + }; + + // Identifier. Full resource path of the backup collection. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The cluster uid of the backup collection. + string cluster_uid = 3 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Output only. The full resource path of the cluster the backup collection + // belongs to. Example: + // projects/{project}/locations/{location}/clusters/{cluster} + string cluster = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "redis.googleapis.com/Cluster" } + ]; + + // Output only. The KMS key used to encrypt the backups under this backup + // collection. + string kms_key = 5 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; + + // Output only. System assigned unique identifier of the backup collection. + string uid = 6 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; +} + +// Backup of a cluster. +message Backup { + option (google.api.resource) = { + type: "redis.googleapis.com/Backup" + pattern: "projects/{project}/locations/{location}/backupCollections/{backup_collection}/backups/{backup}" + plural: "backups" + singular: "backup" + }; + + // Type of the backup. + enum BackupType { + // The default value, not set. + BACKUP_TYPE_UNSPECIFIED = 0; + + // On-demand backup. + ON_DEMAND = 1; + + // Automated backup. + AUTOMATED = 2; + } + + // State of the backup. + enum State { + // The default value, not set. + STATE_UNSPECIFIED = 0; + + // The backup is being created. + CREATING = 1; + + // The backup is active to be used. + ACTIVE = 2; + + // The backup is being deleted. + DELETING = 3; + + // The backup is currently suspended due to reasons like project deletion, + // billing account closure, etc. + SUSPENDED = 4; + } + + // Identifier. Full resource path of the backup. the last part of the name is + // the backup id with the following format: [YYYYMMDDHHMMSS]_[Shorted Cluster + // UID] OR customer specified while backup cluster. Example: + // 20240515123000_1234 + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The time when the backup was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Cluster resource path of this backup. + string cluster = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "redis.googleapis.com/Cluster" } + ]; + + // Output only. Cluster uid of this backup. + string cluster_uid = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Output only. Total size of the backup in bytes. + int64 total_size_bytes = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the backup will expire. + google.protobuf.Timestamp expire_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. redis-7.2, valkey-7.5 + string engine_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of backup files of the backup. + repeated BackupFile backup_files = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Node type of the cluster. + NodeType node_type = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of replicas for the cluster. + int32 replica_count = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of shards for the cluster. + int32 shard_count = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of the backup. + BackupType backup_type = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. State of the backup. + State state = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Encryption information of the backup. + EncryptionInfo encryption_info = 14 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. System assigned unique identifier of the backup. + string uid = 15 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; +} + +// Backup is consisted of multiple backup files. +message BackupFile { + // Output only. e.g: .rdb + string file_name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Size of the backup file in bytes. + int64 size_bytes = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the backup file was created. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Configuration of a service attachment of the cluster, for creating PSC +// connections. +message PscServiceAttachment { + // Output only. Service attachment URI which your self-created PscConnection + // should use as target + string service_attachment = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of a PSC connection targeting this service attachment. + ConnectionType connection_type = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Cross cluster replication config. +message CrossClusterReplicationConfig { + // Details of the remote cluster associated with this cluster in a cross + // cluster replication setup. + message RemoteCluster { + // The full resource path of the remote cluster in + // the format: projects//locations//clusters/ + string cluster = 1 [ + (google.api.resource_reference) = { type: "redis.googleapis.com/Cluster" } + ]; + + // Output only. The unique identifier of the remote cluster. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // An output only view of all the member clusters participating in the cross + // cluster replication. + message Membership { + // Output only. The primary cluster that acts as the source of replication + // for the secondary clusters. + RemoteCluster primary_cluster = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The list of secondary clusters replicating from the primary + // cluster. + repeated RemoteCluster secondary_clusters = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The role of the cluster in cross cluster replication. + enum ClusterRole { + // Cluster role is not set. + // The behavior is equivalent to NONE. + CLUSTER_ROLE_UNSPECIFIED = 0; + + // This cluster does not participate in cross cluster replication. It is an + // independent cluster and does not replicate to or from any other clusters. + NONE = 1; + + // A cluster that allows both reads and writes. Any data written to this + // cluster is also replicated to the attached secondary clusters. + PRIMARY = 2; + + // A cluster that allows only reads and replicates data from a primary + // cluster. + SECONDARY = 3; + } + + // The role of the cluster in cross cluster replication. + ClusterRole cluster_role = 1; + + // Details of the primary cluster that is used as the replication source for + // this secondary cluster. + // + // This field is only set for a secondary cluster. + RemoteCluster primary_cluster = 2; + + // List of secondary clusters that are replicating from this primary cluster. + // + // This field is only set for a primary cluster. + repeated RemoteCluster secondary_clusters = 3; + + // Output only. The last time cross cluster replication config was updated. + google.protobuf.Timestamp update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. An output only view of all the member clusters participating + // in the cross cluster replication. This view will be provided by every + // member cluster irrespective of its cluster role(primary or secondary). + // + // A primary cluster can provide information about all the secondary clusters + // replicating from it. However, a secondary cluster only knows about the + // primary cluster from which it is replicating. However, for scenarios, where + // the primary cluster is unavailable(e.g. regional outage), a GetCluster + // request can be sent to any other member cluster and this field will list + // all the member clusters participating in cross cluster replication. + Membership membership = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Maintenance policy per cluster. +message ClusterMaintenancePolicy { + // Output only. The time when the policy was created i.e. Maintenance Window + // or Deny Period was assigned. + google.protobuf.Timestamp create_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the policy was updated i.e. Maintenance Window + // or Deny Period was updated. + google.protobuf.Timestamp update_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Maintenance window that is applied to resources covered by this + // policy. Minimum 1. For the current version, the maximum number of + // weekly_maintenance_window is expected to be one. + repeated ClusterWeeklyMaintenanceWindow weekly_maintenance_window = 3; +} + +// Time window specified for weekly operations. +message ClusterWeeklyMaintenanceWindow { + // Allows to define schedule that runs specified day of the week. + google.type.DayOfWeek day = 1; + + // Start time of the window in UTC. + google.type.TimeOfDay start_time = 2; +} + +// Upcoming maitenance schedule. +message ClusterMaintenanceSchedule { + // Output only. The start time of any upcoming scheduled maintenance for this + // instance. + google.protobuf.Timestamp start_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The end time of any upcoming scheduled maintenance for this + // instance. + google.protobuf.Timestamp end_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; } message PscConfig { @@ -468,26 +1191,140 @@ message DiscoveryEndpoint { // Details of consumer resources in a PSC connection. message PscConnection { + // Required. The PSC connection id of the forwarding rule connected to the + // service attachment. + string psc_connection_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The IP allocated on the consumer network for the PSC forwarding + // rule. + string address = 2 [ + (google.api.field_info).format = IPV4, + (google.api.field_behavior) = REQUIRED + ]; + + // Required. The URI of the consumer side forwarding rule. + // Example: + // projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}. + string forwarding_rule = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "compute.googleapis.com/ForwardingRule" + } + ]; + + // Optional. Project ID of the consumer project where the forwarding rule is + // created in. + string project_id = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The consumer network where the IP address resides, in the form of + // projects/{project_id}/global/networks/{network_id}. + string network = 5 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } + ]; + + // Required. The service attachment which is the target of the PSC connection, + // in the form of + // projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}. + string service_attachment = 6 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "compute.googleapis.com/ServiceAttachment" + } + ]; + + // Output only. The status of the PSC connection. + // Please note that this value is updated periodically. + // To get the latest status of a PSC connection, follow + // https://cloud.google.com/vpc/docs/configure-private-service-connect-services#endpoint-details. + PscConnectionStatus psc_connection_status = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of the PSC connection. + ConnectionType connection_type = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// ClusterEndpoint consists of PSC connections that are created +// as a group in each VPC network for accessing the cluster. In each group, +// there shall be one connection for each service attachment in the cluster. +message ClusterEndpoint { + // A group of PSC connections. They are created in the same VPC network, one + // for each service attachment in the cluster. + repeated ConnectionDetail connections = 1; +} + +// Detailed information of each PSC connection. +message ConnectionDetail { + // A PSC connection to a cluster could either be created through Service + // Connectivity Automation (auto-registered connection) during the cluster + // creation, or it could be created by customer themselves (user-registered + // connection). + oneof connection { + // Detailed information of a PSC connection that is created through + // service connectivity automation. + PscAutoConnection psc_auto_connection = 1; + + // Detailed information of a PSC connection that is created by the customer + // who owns the cluster. + PscConnection psc_connection = 2; + } +} + +// Details of consumer resources in a PSC connection that is created through +// Service Connectivity Automation. +message PscAutoConnection { // Output only. The PSC connection id of the forwarding rule connected to the // service attachment. string psc_connection_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The IP allocated on the consumer network for the PSC // forwarding rule. - string address = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + string address = 2 [ + (google.api.field_info).format = IPV4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; // Output only. The URI of the consumer side forwarding rule. // Example: // projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}. - string forwarding_rule = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + string forwarding_rule = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "compute.googleapis.com/ForwardingRule" + } + ]; - // Output only. The consumer project_id where the forwarding rule is created + // Required. The consumer project_id where the forwarding rule is created // from. - string project_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + string project_id = 4 [(google.api.field_behavior) = REQUIRED]; - // The consumer network where the IP address resides, in the form of + // Required. The consumer network where the IP address resides, in the form of // projects/{project_id}/global/networks/{network_id}. - string network = 5; + string network = 5 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } + ]; + + // Output only. The service attachment which is the target of the PSC + // connection, in the form of + // projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}. + string service_attachment = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "compute.googleapis.com/ServiceAttachment" + } + ]; + + // Output only. The status of the PSC connection. + // Please note that this value is updated periodically. + // Please use Private Service Connect APIs for the latest status. + PscConnectionStatus psc_connection_status = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of the PSC connection. + ConnectionType connection_type = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Pre-defined metadata fields. @@ -525,6 +1362,8 @@ message CertificateAuthority { option (google.api.resource) = { type: "redis.googleapis.com/CertificateAuthority" pattern: "projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority" + plural: "certificateAuthorities" + singular: "certificateAuthority" }; message ManagedCertificateAuthority { @@ -597,8 +1436,8 @@ message ClusterPersistenceConfig { // there is a disaster EVERYSEC = 2; - // fsync every time new commands are appended to the AOF. It has the best - // data loss protection at the cost of performance + // fsync every time new write commands are appended to the AOF. It has the + // best data loss protection at the cost of performance ALWAYS = 3; } @@ -634,9 +1473,6 @@ message ClusterPersistenceConfig { // Zone distribution config for allocation of cluster resources. message ZoneDistributionConfig { // Defines various modes of zone distribution. - // Currently supports two modes, can be expanded in future to support more - // types of distribution modes. - // design doc: go/same-zone-cluster enum ZoneDistributionMode { // Not Set. Default: MULTI_ZONE ZONE_DISTRIBUTION_MODE_UNSPECIFIED = 0; @@ -659,3 +1495,105 @@ message ZoneDistributionConfig { // MULTI_ZONE, and would be ignored for MULTI_ZONE clusters. string zone = 2 [(google.api.field_behavior) = OPTIONAL]; } + +// Request for rescheduling a cluster maintenance. +message RescheduleClusterMaintenanceRequest { + // Reschedule options. + enum RescheduleType { + // Not set. + RESCHEDULE_TYPE_UNSPECIFIED = 0; + + // If the user wants to schedule the maintenance to happen now. + IMMEDIATE = 1; + + // If the user wants to reschedule the maintenance to a specific time. + SPECIFIC_TIME = 3; + } + + // Required. Redis Cluster instance resource name using the form: + // `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` + // where `location_id` refers to a GCP region. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "redis.googleapis.com/Cluster" } + ]; + + // Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as + // well. + RescheduleType reschedule_type = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Timestamp when the maintenance shall be rescheduled to if + // reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for + // example `2012-11-15T16:19:00.094Z`. + google.protobuf.Timestamp schedule_time = 3 + [(google.api.field_behavior) = OPTIONAL]; +} + +// EncryptionInfo describes the encryption information of a cluster or a backup. +message EncryptionInfo { + // Possible encryption types. + enum Type { + // Encryption type not specified. Defaults to GOOGLE_DEFAULT_ENCRYPTION. + TYPE_UNSPECIFIED = 0; + + // The data is encrypted at rest with a key that is fully managed by Google. + // No key version will be populated. This is the default state. + GOOGLE_DEFAULT_ENCRYPTION = 1; + + // The data is encrypted at rest with a key that is managed by the customer. + // KMS key versions will be populated. + CUSTOMER_MANAGED_ENCRYPTION = 2; + } + + // The state of the KMS key perceived by the system. Refer to the public + // documentation for the impact of each state. + enum KmsKeyState { + // The default value. This value is unused. + KMS_KEY_STATE_UNSPECIFIED = 0; + + // The KMS key is enabled and correctly configured. + ENABLED = 1; + + // Permission denied on the KMS key. + PERMISSION_DENIED = 2; + + // The KMS key is disabled. + DISABLED = 3; + + // The KMS key is destroyed. + DESTROYED = 4; + + // The KMS key is scheduled to be destroyed. + DESTROY_SCHEDULED = 5; + + // The EKM key is unreachable. + EKM_KEY_UNREACHABLE_DETECTED = 6; + + // Billing is disabled for the project. + BILLING_DISABLED = 7; + + // All other unknown failures. + UNKNOWN_FAILURE = 8; + } + + // Output only. Type of encryption. + Type encryption_type = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. KMS key versions that are being used to protect the data + // at-rest. + repeated string kms_key_versions = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKeyVersion" + } + ]; + + // Output only. The state of the primary version of the KMS key perceived by + // the system. This field is not populated in backups. + KmsKeyState kms_key_primary_state = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The most recent time when the encryption info was updated. + google.protobuf.Timestamp last_update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/packages/google-cloud-redis-cluster/protos/protos.d.ts b/packages/google-cloud-redis-cluster/protos/protos.d.ts index c2c92c7dcfe..20e04f1460f 100644 --- a/packages/google-cloud-redis-cluster/protos/protos.d.ts +++ b/packages/google-cloud-redis-cluster/protos/protos.d.ts @@ -132,6 +132,118 @@ export namespace google { * @returns Promise */ public getClusterCertificateAuthority(request: google.cloud.redis.cluster.v1.IGetClusterCertificateAuthorityRequest): Promise; + + /** + * Calls RescheduleClusterMaintenance. + * @param request RescheduleClusterMaintenanceRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Operation + */ + public rescheduleClusterMaintenance(request: google.cloud.redis.cluster.v1.IRescheduleClusterMaintenanceRequest, callback: google.cloud.redis.cluster.v1.CloudRedisCluster.RescheduleClusterMaintenanceCallback): void; + + /** + * Calls RescheduleClusterMaintenance. + * @param request RescheduleClusterMaintenanceRequest message or plain object + * @returns Promise + */ + public rescheduleClusterMaintenance(request: google.cloud.redis.cluster.v1.IRescheduleClusterMaintenanceRequest): Promise; + + /** + * Calls ListBackupCollections. + * @param request ListBackupCollectionsRequest message or plain object + * @param callback Node-style callback called with the error, if any, and ListBackupCollectionsResponse + */ + public listBackupCollections(request: google.cloud.redis.cluster.v1.IListBackupCollectionsRequest, callback: google.cloud.redis.cluster.v1.CloudRedisCluster.ListBackupCollectionsCallback): void; + + /** + * Calls ListBackupCollections. + * @param request ListBackupCollectionsRequest message or plain object + * @returns Promise + */ + public listBackupCollections(request: google.cloud.redis.cluster.v1.IListBackupCollectionsRequest): Promise; + + /** + * Calls GetBackupCollection. + * @param request GetBackupCollectionRequest message or plain object + * @param callback Node-style callback called with the error, if any, and BackupCollection + */ + public getBackupCollection(request: google.cloud.redis.cluster.v1.IGetBackupCollectionRequest, callback: google.cloud.redis.cluster.v1.CloudRedisCluster.GetBackupCollectionCallback): void; + + /** + * Calls GetBackupCollection. + * @param request GetBackupCollectionRequest message or plain object + * @returns Promise + */ + public getBackupCollection(request: google.cloud.redis.cluster.v1.IGetBackupCollectionRequest): Promise; + + /** + * Calls ListBackups. + * @param request ListBackupsRequest message or plain object + * @param callback Node-style callback called with the error, if any, and ListBackupsResponse + */ + public listBackups(request: google.cloud.redis.cluster.v1.IListBackupsRequest, callback: google.cloud.redis.cluster.v1.CloudRedisCluster.ListBackupsCallback): void; + + /** + * Calls ListBackups. + * @param request ListBackupsRequest message or plain object + * @returns Promise + */ + public listBackups(request: google.cloud.redis.cluster.v1.IListBackupsRequest): Promise; + + /** + * Calls GetBackup. + * @param request GetBackupRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Backup + */ + public getBackup(request: google.cloud.redis.cluster.v1.IGetBackupRequest, callback: google.cloud.redis.cluster.v1.CloudRedisCluster.GetBackupCallback): void; + + /** + * Calls GetBackup. + * @param request GetBackupRequest message or plain object + * @returns Promise + */ + public getBackup(request: google.cloud.redis.cluster.v1.IGetBackupRequest): Promise; + + /** + * Calls DeleteBackup. + * @param request DeleteBackupRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Operation + */ + public deleteBackup(request: google.cloud.redis.cluster.v1.IDeleteBackupRequest, callback: google.cloud.redis.cluster.v1.CloudRedisCluster.DeleteBackupCallback): void; + + /** + * Calls DeleteBackup. + * @param request DeleteBackupRequest message or plain object + * @returns Promise + */ + public deleteBackup(request: google.cloud.redis.cluster.v1.IDeleteBackupRequest): Promise; + + /** + * Calls ExportBackup. + * @param request ExportBackupRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Operation + */ + public exportBackup(request: google.cloud.redis.cluster.v1.IExportBackupRequest, callback: google.cloud.redis.cluster.v1.CloudRedisCluster.ExportBackupCallback): void; + + /** + * Calls ExportBackup. + * @param request ExportBackupRequest message or plain object + * @returns Promise + */ + public exportBackup(request: google.cloud.redis.cluster.v1.IExportBackupRequest): Promise; + + /** + * Calls BackupCluster. + * @param request BackupClusterRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Operation + */ + public backupCluster(request: google.cloud.redis.cluster.v1.IBackupClusterRequest, callback: google.cloud.redis.cluster.v1.CloudRedisCluster.BackupClusterCallback): void; + + /** + * Calls BackupCluster. + * @param request BackupClusterRequest message or plain object + * @returns Promise + */ + public backupCluster(request: google.cloud.redis.cluster.v1.IBackupClusterRequest): Promise; } namespace CloudRedisCluster { @@ -177,6 +289,69 @@ export namespace google { * @param [response] CertificateAuthority */ type GetClusterCertificateAuthorityCallback = (error: (Error|null), response?: google.cloud.redis.cluster.v1.CertificateAuthority) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1.CloudRedisCluster|rescheduleClusterMaintenance}. + * @param error Error, if any + * @param [response] Operation + */ + type RescheduleClusterMaintenanceCallback = (error: (Error|null), response?: google.longrunning.Operation) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1.CloudRedisCluster|listBackupCollections}. + * @param error Error, if any + * @param [response] ListBackupCollectionsResponse + */ + type ListBackupCollectionsCallback = (error: (Error|null), response?: google.cloud.redis.cluster.v1.ListBackupCollectionsResponse) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1.CloudRedisCluster|getBackupCollection}. + * @param error Error, if any + * @param [response] BackupCollection + */ + type GetBackupCollectionCallback = (error: (Error|null), response?: google.cloud.redis.cluster.v1.BackupCollection) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1.CloudRedisCluster|listBackups}. + * @param error Error, if any + * @param [response] ListBackupsResponse + */ + type ListBackupsCallback = (error: (Error|null), response?: google.cloud.redis.cluster.v1.ListBackupsResponse) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1.CloudRedisCluster|getBackup}. + * @param error Error, if any + * @param [response] Backup + */ + type GetBackupCallback = (error: (Error|null), response?: google.cloud.redis.cluster.v1.Backup) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1.CloudRedisCluster|deleteBackup}. + * @param error Error, if any + * @param [response] Operation + */ + type DeleteBackupCallback = (error: (Error|null), response?: google.longrunning.Operation) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1.CloudRedisCluster|exportBackup}. + * @param error Error, if any + * @param [response] Operation + */ + type ExportBackupCallback = (error: (Error|null), response?: google.longrunning.Operation) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1.CloudRedisCluster|backupCluster}. + * @param error Error, if any + * @param [response] Operation + */ + type BackupClusterCallback = (error: (Error|null), response?: google.longrunning.Operation) => void; + } + + /** PscConnectionStatus enum. */ + enum PscConnectionStatus { + PSC_CONNECTION_STATUS_UNSPECIFIED = 0, + PSC_CONNECTION_STATUS_ACTIVE = 1, + PSC_CONNECTION_STATUS_NOT_FOUND = 2 } /** AuthorizationMode enum. */ @@ -202,6 +377,14 @@ export namespace google { TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION = 2 } + /** ConnectionType enum. */ + enum ConnectionType { + CONNECTION_TYPE_UNSPECIFIED = 0, + CONNECTION_TYPE_DISCOVERY = 1, + CONNECTION_TYPE_PRIMARY = 2, + CONNECTION_TYPE_READER = 3 + } + /** Properties of a CreateClusterRequest. */ interface ICreateClusterRequest { @@ -941,3353 +1124,9787 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a Cluster. */ - interface ICluster { - - /** Cluster name */ - name?: (string|null); - - /** Cluster createTime */ - createTime?: (google.protobuf.ITimestamp|null); - - /** Cluster state */ - state?: (google.cloud.redis.cluster.v1.Cluster.State|keyof typeof google.cloud.redis.cluster.v1.Cluster.State|null); - - /** Cluster uid */ - uid?: (string|null); - - /** Cluster replicaCount */ - replicaCount?: (number|null); - - /** Cluster authorizationMode */ - authorizationMode?: (google.cloud.redis.cluster.v1.AuthorizationMode|keyof typeof google.cloud.redis.cluster.v1.AuthorizationMode|null); - - /** Cluster transitEncryptionMode */ - transitEncryptionMode?: (google.cloud.redis.cluster.v1.TransitEncryptionMode|keyof typeof google.cloud.redis.cluster.v1.TransitEncryptionMode|null); - - /** Cluster sizeGb */ - sizeGb?: (number|null); - - /** Cluster shardCount */ - shardCount?: (number|null); - - /** Cluster pscConfigs */ - pscConfigs?: (google.cloud.redis.cluster.v1.IPscConfig[]|null); - - /** Cluster discoveryEndpoints */ - discoveryEndpoints?: (google.cloud.redis.cluster.v1.IDiscoveryEndpoint[]|null); - - /** Cluster pscConnections */ - pscConnections?: (google.cloud.redis.cluster.v1.IPscConnection[]|null); - - /** Cluster stateInfo */ - stateInfo?: (google.cloud.redis.cluster.v1.Cluster.IStateInfo|null); - - /** Cluster nodeType */ - nodeType?: (google.cloud.redis.cluster.v1.NodeType|keyof typeof google.cloud.redis.cluster.v1.NodeType|null); - - /** Cluster persistenceConfig */ - persistenceConfig?: (google.cloud.redis.cluster.v1.IClusterPersistenceConfig|null); - - /** Cluster redisConfigs */ - redisConfigs?: ({ [k: string]: string }|null); + /** Properties of a ListBackupCollectionsRequest. */ + interface IListBackupCollectionsRequest { - /** Cluster preciseSizeGb */ - preciseSizeGb?: (number|null); + /** ListBackupCollectionsRequest parent */ + parent?: (string|null); - /** Cluster zoneDistributionConfig */ - zoneDistributionConfig?: (google.cloud.redis.cluster.v1.IZoneDistributionConfig|null); + /** ListBackupCollectionsRequest pageSize */ + pageSize?: (number|null); - /** Cluster deletionProtectionEnabled */ - deletionProtectionEnabled?: (boolean|null); + /** ListBackupCollectionsRequest pageToken */ + pageToken?: (string|null); } - /** Represents a Cluster. */ - class Cluster implements ICluster { + /** Represents a ListBackupCollectionsRequest. */ + class ListBackupCollectionsRequest implements IListBackupCollectionsRequest { /** - * Constructs a new Cluster. + * Constructs a new ListBackupCollectionsRequest. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1.ICluster); - - /** Cluster name. */ - public name: string; - - /** Cluster createTime. */ - public createTime?: (google.protobuf.ITimestamp|null); - - /** Cluster state. */ - public state: (google.cloud.redis.cluster.v1.Cluster.State|keyof typeof google.cloud.redis.cluster.v1.Cluster.State); - - /** Cluster uid. */ - public uid: string; - - /** Cluster replicaCount. */ - public replicaCount?: (number|null); - - /** Cluster authorizationMode. */ - public authorizationMode: (google.cloud.redis.cluster.v1.AuthorizationMode|keyof typeof google.cloud.redis.cluster.v1.AuthorizationMode); - - /** Cluster transitEncryptionMode. */ - public transitEncryptionMode: (google.cloud.redis.cluster.v1.TransitEncryptionMode|keyof typeof google.cloud.redis.cluster.v1.TransitEncryptionMode); - - /** Cluster sizeGb. */ - public sizeGb?: (number|null); - - /** Cluster shardCount. */ - public shardCount?: (number|null); - - /** Cluster pscConfigs. */ - public pscConfigs: google.cloud.redis.cluster.v1.IPscConfig[]; - - /** Cluster discoveryEndpoints. */ - public discoveryEndpoints: google.cloud.redis.cluster.v1.IDiscoveryEndpoint[]; - - /** Cluster pscConnections. */ - public pscConnections: google.cloud.redis.cluster.v1.IPscConnection[]; - - /** Cluster stateInfo. */ - public stateInfo?: (google.cloud.redis.cluster.v1.Cluster.IStateInfo|null); - - /** Cluster nodeType. */ - public nodeType: (google.cloud.redis.cluster.v1.NodeType|keyof typeof google.cloud.redis.cluster.v1.NodeType); - - /** Cluster persistenceConfig. */ - public persistenceConfig?: (google.cloud.redis.cluster.v1.IClusterPersistenceConfig|null); - - /** Cluster redisConfigs. */ - public redisConfigs: { [k: string]: string }; - - /** Cluster preciseSizeGb. */ - public preciseSizeGb?: (number|null); - - /** Cluster zoneDistributionConfig. */ - public zoneDistributionConfig?: (google.cloud.redis.cluster.v1.IZoneDistributionConfig|null); - - /** Cluster deletionProtectionEnabled. */ - public deletionProtectionEnabled?: (boolean|null); - - /** Cluster _replicaCount. */ - public _replicaCount?: "replicaCount"; - - /** Cluster _sizeGb. */ - public _sizeGb?: "sizeGb"; + constructor(properties?: google.cloud.redis.cluster.v1.IListBackupCollectionsRequest); - /** Cluster _shardCount. */ - public _shardCount?: "shardCount"; + /** ListBackupCollectionsRequest parent. */ + public parent: string; - /** Cluster _preciseSizeGb. */ - public _preciseSizeGb?: "preciseSizeGb"; + /** ListBackupCollectionsRequest pageSize. */ + public pageSize: number; - /** Cluster _deletionProtectionEnabled. */ - public _deletionProtectionEnabled?: "deletionProtectionEnabled"; + /** ListBackupCollectionsRequest pageToken. */ + public pageToken: string; /** - * Creates a new Cluster instance using the specified properties. + * Creates a new ListBackupCollectionsRequest instance using the specified properties. * @param [properties] Properties to set - * @returns Cluster instance + * @returns ListBackupCollectionsRequest instance */ - public static create(properties?: google.cloud.redis.cluster.v1.ICluster): google.cloud.redis.cluster.v1.Cluster; + public static create(properties?: google.cloud.redis.cluster.v1.IListBackupCollectionsRequest): google.cloud.redis.cluster.v1.ListBackupCollectionsRequest; /** - * Encodes the specified Cluster message. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.verify|verify} messages. - * @param message Cluster message or plain object to encode + * Encodes the specified ListBackupCollectionsRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1.ListBackupCollectionsRequest.verify|verify} messages. + * @param message ListBackupCollectionsRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1.ICluster, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1.IListBackupCollectionsRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Cluster message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.verify|verify} messages. - * @param message Cluster message or plain object to encode + * Encodes the specified ListBackupCollectionsRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ListBackupCollectionsRequest.verify|verify} messages. + * @param message ListBackupCollectionsRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1.ICluster, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IListBackupCollectionsRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Cluster message from the specified reader or buffer. + * Decodes a ListBackupCollectionsRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Cluster + * @returns ListBackupCollectionsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.Cluster; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.ListBackupCollectionsRequest; /** - * Decodes a Cluster message from the specified reader or buffer, length delimited. + * Decodes a ListBackupCollectionsRequest message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Cluster + * @returns ListBackupCollectionsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.Cluster; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.ListBackupCollectionsRequest; /** - * Verifies a Cluster message. + * Verifies a ListBackupCollectionsRequest message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a Cluster message from a plain object. Also converts values to their respective internal types. + * Creates a ListBackupCollectionsRequest message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Cluster + * @returns ListBackupCollectionsRequest */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.Cluster; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.ListBackupCollectionsRequest; /** - * Creates a plain object from a Cluster message. Also converts values to other types if specified. - * @param message Cluster + * Creates a plain object from a ListBackupCollectionsRequest message. Also converts values to other types if specified. + * @param message ListBackupCollectionsRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.ListBackupCollectionsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ListBackupCollectionsRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ListBackupCollectionsRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a ListBackupCollectionsResponse. */ + interface IListBackupCollectionsResponse { + + /** ListBackupCollectionsResponse backupCollections */ + backupCollections?: (google.cloud.redis.cluster.v1.IBackupCollection[]|null); + + /** ListBackupCollectionsResponse nextPageToken */ + nextPageToken?: (string|null); + + /** ListBackupCollectionsResponse unreachable */ + unreachable?: (string[]|null); + } + + /** Represents a ListBackupCollectionsResponse. */ + class ListBackupCollectionsResponse implements IListBackupCollectionsResponse { + + /** + * Constructs a new ListBackupCollectionsResponse. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IListBackupCollectionsResponse); + + /** ListBackupCollectionsResponse backupCollections. */ + public backupCollections: google.cloud.redis.cluster.v1.IBackupCollection[]; + + /** ListBackupCollectionsResponse nextPageToken. */ + public nextPageToken: string; + + /** ListBackupCollectionsResponse unreachable. */ + public unreachable: string[]; + + /** + * Creates a new ListBackupCollectionsResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns ListBackupCollectionsResponse instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IListBackupCollectionsResponse): google.cloud.redis.cluster.v1.ListBackupCollectionsResponse; + + /** + * Encodes the specified ListBackupCollectionsResponse message. Does not implicitly {@link google.cloud.redis.cluster.v1.ListBackupCollectionsResponse.verify|verify} messages. + * @param message ListBackupCollectionsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IListBackupCollectionsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ListBackupCollectionsResponse message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ListBackupCollectionsResponse.verify|verify} messages. + * @param message ListBackupCollectionsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IListBackupCollectionsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListBackupCollectionsResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListBackupCollectionsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.ListBackupCollectionsResponse; + + /** + * Decodes a ListBackupCollectionsResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListBackupCollectionsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.ListBackupCollectionsResponse; + + /** + * Verifies a ListBackupCollectionsResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ListBackupCollectionsResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListBackupCollectionsResponse + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.ListBackupCollectionsResponse; + + /** + * Creates a plain object from a ListBackupCollectionsResponse message. Also converts values to other types if specified. + * @param message ListBackupCollectionsResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.ListBackupCollectionsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ListBackupCollectionsResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ListBackupCollectionsResponse + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a GetBackupCollectionRequest. */ + interface IGetBackupCollectionRequest { + + /** GetBackupCollectionRequest name */ + name?: (string|null); + } + + /** Represents a GetBackupCollectionRequest. */ + class GetBackupCollectionRequest implements IGetBackupCollectionRequest { + + /** + * Constructs a new GetBackupCollectionRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IGetBackupCollectionRequest); + + /** GetBackupCollectionRequest name. */ + public name: string; + + /** + * Creates a new GetBackupCollectionRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns GetBackupCollectionRequest instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IGetBackupCollectionRequest): google.cloud.redis.cluster.v1.GetBackupCollectionRequest; + + /** + * Encodes the specified GetBackupCollectionRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1.GetBackupCollectionRequest.verify|verify} messages. + * @param message GetBackupCollectionRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IGetBackupCollectionRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GetBackupCollectionRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.GetBackupCollectionRequest.verify|verify} messages. + * @param message GetBackupCollectionRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IGetBackupCollectionRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GetBackupCollectionRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GetBackupCollectionRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.GetBackupCollectionRequest; + + /** + * Decodes a GetBackupCollectionRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GetBackupCollectionRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.GetBackupCollectionRequest; + + /** + * Verifies a GetBackupCollectionRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a GetBackupCollectionRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GetBackupCollectionRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.GetBackupCollectionRequest; + + /** + * Creates a plain object from a GetBackupCollectionRequest message. Also converts values to other types if specified. + * @param message GetBackupCollectionRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.GetBackupCollectionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GetBackupCollectionRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for GetBackupCollectionRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a ListBackupsRequest. */ + interface IListBackupsRequest { + + /** ListBackupsRequest parent */ + parent?: (string|null); + + /** ListBackupsRequest pageSize */ + pageSize?: (number|null); + + /** ListBackupsRequest pageToken */ + pageToken?: (string|null); + } + + /** Represents a ListBackupsRequest. */ + class ListBackupsRequest implements IListBackupsRequest { + + /** + * Constructs a new ListBackupsRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IListBackupsRequest); + + /** ListBackupsRequest parent. */ + public parent: string; + + /** ListBackupsRequest pageSize. */ + public pageSize: number; + + /** ListBackupsRequest pageToken. */ + public pageToken: string; + + /** + * Creates a new ListBackupsRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns ListBackupsRequest instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IListBackupsRequest): google.cloud.redis.cluster.v1.ListBackupsRequest; + + /** + * Encodes the specified ListBackupsRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1.ListBackupsRequest.verify|verify} messages. + * @param message ListBackupsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IListBackupsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ListBackupsRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ListBackupsRequest.verify|verify} messages. + * @param message ListBackupsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IListBackupsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListBackupsRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListBackupsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.ListBackupsRequest; + + /** + * Decodes a ListBackupsRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListBackupsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.ListBackupsRequest; + + /** + * Verifies a ListBackupsRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ListBackupsRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListBackupsRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.ListBackupsRequest; + + /** + * Creates a plain object from a ListBackupsRequest message. Also converts values to other types if specified. + * @param message ListBackupsRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.ListBackupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ListBackupsRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ListBackupsRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a ListBackupsResponse. */ + interface IListBackupsResponse { + + /** ListBackupsResponse backups */ + backups?: (google.cloud.redis.cluster.v1.IBackup[]|null); + + /** ListBackupsResponse nextPageToken */ + nextPageToken?: (string|null); + + /** ListBackupsResponse unreachable */ + unreachable?: (string[]|null); + } + + /** Represents a ListBackupsResponse. */ + class ListBackupsResponse implements IListBackupsResponse { + + /** + * Constructs a new ListBackupsResponse. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IListBackupsResponse); + + /** ListBackupsResponse backups. */ + public backups: google.cloud.redis.cluster.v1.IBackup[]; + + /** ListBackupsResponse nextPageToken. */ + public nextPageToken: string; + + /** ListBackupsResponse unreachable. */ + public unreachable: string[]; + + /** + * Creates a new ListBackupsResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns ListBackupsResponse instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IListBackupsResponse): google.cloud.redis.cluster.v1.ListBackupsResponse; + + /** + * Encodes the specified ListBackupsResponse message. Does not implicitly {@link google.cloud.redis.cluster.v1.ListBackupsResponse.verify|verify} messages. + * @param message ListBackupsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IListBackupsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ListBackupsResponse message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ListBackupsResponse.verify|verify} messages. + * @param message ListBackupsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IListBackupsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListBackupsResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListBackupsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.ListBackupsResponse; + + /** + * Decodes a ListBackupsResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListBackupsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.ListBackupsResponse; + + /** + * Verifies a ListBackupsResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ListBackupsResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListBackupsResponse + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.ListBackupsResponse; + + /** + * Creates a plain object from a ListBackupsResponse message. Also converts values to other types if specified. + * @param message ListBackupsResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.ListBackupsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ListBackupsResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ListBackupsResponse + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a GetBackupRequest. */ + interface IGetBackupRequest { + + /** GetBackupRequest name */ + name?: (string|null); + } + + /** Represents a GetBackupRequest. */ + class GetBackupRequest implements IGetBackupRequest { + + /** + * Constructs a new GetBackupRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IGetBackupRequest); + + /** GetBackupRequest name. */ + public name: string; + + /** + * Creates a new GetBackupRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns GetBackupRequest instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IGetBackupRequest): google.cloud.redis.cluster.v1.GetBackupRequest; + + /** + * Encodes the specified GetBackupRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1.GetBackupRequest.verify|verify} messages. + * @param message GetBackupRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IGetBackupRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GetBackupRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.GetBackupRequest.verify|verify} messages. + * @param message GetBackupRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IGetBackupRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GetBackupRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GetBackupRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.GetBackupRequest; + + /** + * Decodes a GetBackupRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GetBackupRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.GetBackupRequest; + + /** + * Verifies a GetBackupRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a GetBackupRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GetBackupRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.GetBackupRequest; + + /** + * Creates a plain object from a GetBackupRequest message. Also converts values to other types if specified. + * @param message GetBackupRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.GetBackupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GetBackupRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for GetBackupRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a DeleteBackupRequest. */ + interface IDeleteBackupRequest { + + /** DeleteBackupRequest name */ + name?: (string|null); + + /** DeleteBackupRequest requestId */ + requestId?: (string|null); + } + + /** Represents a DeleteBackupRequest. */ + class DeleteBackupRequest implements IDeleteBackupRequest { + + /** + * Constructs a new DeleteBackupRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IDeleteBackupRequest); + + /** DeleteBackupRequest name. */ + public name: string; + + /** DeleteBackupRequest requestId. */ + public requestId: string; + + /** + * Creates a new DeleteBackupRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns DeleteBackupRequest instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IDeleteBackupRequest): google.cloud.redis.cluster.v1.DeleteBackupRequest; + + /** + * Encodes the specified DeleteBackupRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1.DeleteBackupRequest.verify|verify} messages. + * @param message DeleteBackupRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IDeleteBackupRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified DeleteBackupRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.DeleteBackupRequest.verify|verify} messages. + * @param message DeleteBackupRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IDeleteBackupRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DeleteBackupRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DeleteBackupRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.DeleteBackupRequest; + + /** + * Decodes a DeleteBackupRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DeleteBackupRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.DeleteBackupRequest; + + /** + * Verifies a DeleteBackupRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a DeleteBackupRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DeleteBackupRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.DeleteBackupRequest; + + /** + * Creates a plain object from a DeleteBackupRequest message. Also converts values to other types if specified. + * @param message DeleteBackupRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.DeleteBackupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DeleteBackupRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for DeleteBackupRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of an ExportBackupRequest. */ + interface IExportBackupRequest { + + /** ExportBackupRequest gcsBucket */ + gcsBucket?: (string|null); + + /** ExportBackupRequest name */ + name?: (string|null); + } + + /** Represents an ExportBackupRequest. */ + class ExportBackupRequest implements IExportBackupRequest { + + /** + * Constructs a new ExportBackupRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IExportBackupRequest); + + /** ExportBackupRequest gcsBucket. */ + public gcsBucket?: (string|null); + + /** ExportBackupRequest name. */ + public name: string; + + /** ExportBackupRequest destination. */ + public destination?: "gcsBucket"; + + /** + * Creates a new ExportBackupRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns ExportBackupRequest instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IExportBackupRequest): google.cloud.redis.cluster.v1.ExportBackupRequest; + + /** + * Encodes the specified ExportBackupRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1.ExportBackupRequest.verify|verify} messages. + * @param message ExportBackupRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IExportBackupRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ExportBackupRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ExportBackupRequest.verify|verify} messages. + * @param message ExportBackupRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IExportBackupRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an ExportBackupRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ExportBackupRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.ExportBackupRequest; + + /** + * Decodes an ExportBackupRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ExportBackupRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.ExportBackupRequest; + + /** + * Verifies an ExportBackupRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an ExportBackupRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ExportBackupRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.ExportBackupRequest; + + /** + * Creates a plain object from an ExportBackupRequest message. Also converts values to other types if specified. + * @param message ExportBackupRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.ExportBackupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ExportBackupRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ExportBackupRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a BackupClusterRequest. */ + interface IBackupClusterRequest { + + /** BackupClusterRequest name */ + name?: (string|null); + + /** BackupClusterRequest ttl */ + ttl?: (google.protobuf.IDuration|null); + + /** BackupClusterRequest backupId */ + backupId?: (string|null); + } + + /** Represents a BackupClusterRequest. */ + class BackupClusterRequest implements IBackupClusterRequest { + + /** + * Constructs a new BackupClusterRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IBackupClusterRequest); + + /** BackupClusterRequest name. */ + public name: string; + + /** BackupClusterRequest ttl. */ + public ttl?: (google.protobuf.IDuration|null); + + /** BackupClusterRequest backupId. */ + public backupId?: (string|null); + + /** BackupClusterRequest _backupId. */ + public _backupId?: "backupId"; + + /** + * Creates a new BackupClusterRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns BackupClusterRequest instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IBackupClusterRequest): google.cloud.redis.cluster.v1.BackupClusterRequest; + + /** + * Encodes the specified BackupClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1.BackupClusterRequest.verify|verify} messages. + * @param message BackupClusterRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IBackupClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BackupClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.BackupClusterRequest.verify|verify} messages. + * @param message BackupClusterRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IBackupClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BackupClusterRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BackupClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.BackupClusterRequest; + + /** + * Decodes a BackupClusterRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BackupClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.BackupClusterRequest; + + /** + * Verifies a BackupClusterRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BackupClusterRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BackupClusterRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.BackupClusterRequest; + + /** + * Creates a plain object from a BackupClusterRequest message. Also converts values to other types if specified. + * @param message BackupClusterRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.BackupClusterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BackupClusterRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for BackupClusterRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a Cluster. */ + interface ICluster { + + /** Cluster gcsSource */ + gcsSource?: (google.cloud.redis.cluster.v1.Cluster.IGcsBackupSource|null); + + /** Cluster managedBackupSource */ + managedBackupSource?: (google.cloud.redis.cluster.v1.Cluster.IManagedBackupSource|null); + + /** Cluster name */ + name?: (string|null); + + /** Cluster createTime */ + createTime?: (google.protobuf.ITimestamp|null); + + /** Cluster state */ + state?: (google.cloud.redis.cluster.v1.Cluster.State|keyof typeof google.cloud.redis.cluster.v1.Cluster.State|null); + + /** Cluster uid */ + uid?: (string|null); + + /** Cluster replicaCount */ + replicaCount?: (number|null); + + /** Cluster authorizationMode */ + authorizationMode?: (google.cloud.redis.cluster.v1.AuthorizationMode|keyof typeof google.cloud.redis.cluster.v1.AuthorizationMode|null); + + /** Cluster transitEncryptionMode */ + transitEncryptionMode?: (google.cloud.redis.cluster.v1.TransitEncryptionMode|keyof typeof google.cloud.redis.cluster.v1.TransitEncryptionMode|null); + + /** Cluster sizeGb */ + sizeGb?: (number|null); + + /** Cluster shardCount */ + shardCount?: (number|null); + + /** Cluster pscConfigs */ + pscConfigs?: (google.cloud.redis.cluster.v1.IPscConfig[]|null); + + /** Cluster discoveryEndpoints */ + discoveryEndpoints?: (google.cloud.redis.cluster.v1.IDiscoveryEndpoint[]|null); + + /** Cluster pscConnections */ + pscConnections?: (google.cloud.redis.cluster.v1.IPscConnection[]|null); + + /** Cluster stateInfo */ + stateInfo?: (google.cloud.redis.cluster.v1.Cluster.IStateInfo|null); + + /** Cluster nodeType */ + nodeType?: (google.cloud.redis.cluster.v1.NodeType|keyof typeof google.cloud.redis.cluster.v1.NodeType|null); + + /** Cluster persistenceConfig */ + persistenceConfig?: (google.cloud.redis.cluster.v1.IClusterPersistenceConfig|null); + + /** Cluster redisConfigs */ + redisConfigs?: ({ [k: string]: string }|null); + + /** Cluster preciseSizeGb */ + preciseSizeGb?: (number|null); + + /** Cluster zoneDistributionConfig */ + zoneDistributionConfig?: (google.cloud.redis.cluster.v1.IZoneDistributionConfig|null); + + /** Cluster crossClusterReplicationConfig */ + crossClusterReplicationConfig?: (google.cloud.redis.cluster.v1.ICrossClusterReplicationConfig|null); + + /** Cluster deletionProtectionEnabled */ + deletionProtectionEnabled?: (boolean|null); + + /** Cluster maintenancePolicy */ + maintenancePolicy?: (google.cloud.redis.cluster.v1.IClusterMaintenancePolicy|null); + + /** Cluster maintenanceSchedule */ + maintenanceSchedule?: (google.cloud.redis.cluster.v1.IClusterMaintenanceSchedule|null); + + /** Cluster pscServiceAttachments */ + pscServiceAttachments?: (google.cloud.redis.cluster.v1.IPscServiceAttachment[]|null); + + /** Cluster clusterEndpoints */ + clusterEndpoints?: (google.cloud.redis.cluster.v1.IClusterEndpoint[]|null); + + /** Cluster backupCollection */ + backupCollection?: (string|null); + + /** Cluster kmsKey */ + kmsKey?: (string|null); + + /** Cluster automatedBackupConfig */ + automatedBackupConfig?: (google.cloud.redis.cluster.v1.IAutomatedBackupConfig|null); + + /** Cluster encryptionInfo */ + encryptionInfo?: (google.cloud.redis.cluster.v1.IEncryptionInfo|null); + } + + /** Represents a Cluster. */ + class Cluster implements ICluster { + + /** + * Constructs a new Cluster. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.ICluster); + + /** Cluster gcsSource. */ + public gcsSource?: (google.cloud.redis.cluster.v1.Cluster.IGcsBackupSource|null); + + /** Cluster managedBackupSource. */ + public managedBackupSource?: (google.cloud.redis.cluster.v1.Cluster.IManagedBackupSource|null); + + /** Cluster name. */ + public name: string; + + /** Cluster createTime. */ + public createTime?: (google.protobuf.ITimestamp|null); + + /** Cluster state. */ + public state: (google.cloud.redis.cluster.v1.Cluster.State|keyof typeof google.cloud.redis.cluster.v1.Cluster.State); + + /** Cluster uid. */ + public uid: string; + + /** Cluster replicaCount. */ + public replicaCount?: (number|null); + + /** Cluster authorizationMode. */ + public authorizationMode: (google.cloud.redis.cluster.v1.AuthorizationMode|keyof typeof google.cloud.redis.cluster.v1.AuthorizationMode); + + /** Cluster transitEncryptionMode. */ + public transitEncryptionMode: (google.cloud.redis.cluster.v1.TransitEncryptionMode|keyof typeof google.cloud.redis.cluster.v1.TransitEncryptionMode); + + /** Cluster sizeGb. */ + public sizeGb?: (number|null); + + /** Cluster shardCount. */ + public shardCount?: (number|null); + + /** Cluster pscConfigs. */ + public pscConfigs: google.cloud.redis.cluster.v1.IPscConfig[]; + + /** Cluster discoveryEndpoints. */ + public discoveryEndpoints: google.cloud.redis.cluster.v1.IDiscoveryEndpoint[]; + + /** Cluster pscConnections. */ + public pscConnections: google.cloud.redis.cluster.v1.IPscConnection[]; + + /** Cluster stateInfo. */ + public stateInfo?: (google.cloud.redis.cluster.v1.Cluster.IStateInfo|null); + + /** Cluster nodeType. */ + public nodeType: (google.cloud.redis.cluster.v1.NodeType|keyof typeof google.cloud.redis.cluster.v1.NodeType); + + /** Cluster persistenceConfig. */ + public persistenceConfig?: (google.cloud.redis.cluster.v1.IClusterPersistenceConfig|null); + + /** Cluster redisConfigs. */ + public redisConfigs: { [k: string]: string }; + + /** Cluster preciseSizeGb. */ + public preciseSizeGb?: (number|null); + + /** Cluster zoneDistributionConfig. */ + public zoneDistributionConfig?: (google.cloud.redis.cluster.v1.IZoneDistributionConfig|null); + + /** Cluster crossClusterReplicationConfig. */ + public crossClusterReplicationConfig?: (google.cloud.redis.cluster.v1.ICrossClusterReplicationConfig|null); + + /** Cluster deletionProtectionEnabled. */ + public deletionProtectionEnabled?: (boolean|null); + + /** Cluster maintenancePolicy. */ + public maintenancePolicy?: (google.cloud.redis.cluster.v1.IClusterMaintenancePolicy|null); + + /** Cluster maintenanceSchedule. */ + public maintenanceSchedule?: (google.cloud.redis.cluster.v1.IClusterMaintenanceSchedule|null); + + /** Cluster pscServiceAttachments. */ + public pscServiceAttachments: google.cloud.redis.cluster.v1.IPscServiceAttachment[]; + + /** Cluster clusterEndpoints. */ + public clusterEndpoints: google.cloud.redis.cluster.v1.IClusterEndpoint[]; + + /** Cluster backupCollection. */ + public backupCollection?: (string|null); + + /** Cluster kmsKey. */ + public kmsKey?: (string|null); + + /** Cluster automatedBackupConfig. */ + public automatedBackupConfig?: (google.cloud.redis.cluster.v1.IAutomatedBackupConfig|null); + + /** Cluster encryptionInfo. */ + public encryptionInfo?: (google.cloud.redis.cluster.v1.IEncryptionInfo|null); + + /** Cluster importSources. */ + public importSources?: ("gcsSource"|"managedBackupSource"); + + /** Cluster _replicaCount. */ + public _replicaCount?: "replicaCount"; + + /** Cluster _sizeGb. */ + public _sizeGb?: "sizeGb"; + + /** Cluster _shardCount. */ + public _shardCount?: "shardCount"; + + /** Cluster _preciseSizeGb. */ + public _preciseSizeGb?: "preciseSizeGb"; + + /** Cluster _deletionProtectionEnabled. */ + public _deletionProtectionEnabled?: "deletionProtectionEnabled"; + + /** Cluster _maintenancePolicy. */ + public _maintenancePolicy?: "maintenancePolicy"; + + /** Cluster _maintenanceSchedule. */ + public _maintenanceSchedule?: "maintenanceSchedule"; + + /** Cluster _backupCollection. */ + public _backupCollection?: "backupCollection"; + + /** Cluster _kmsKey. */ + public _kmsKey?: "kmsKey"; + + /** + * Creates a new Cluster instance using the specified properties. + * @param [properties] Properties to set + * @returns Cluster instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.ICluster): google.cloud.redis.cluster.v1.Cluster; + + /** + * Encodes the specified Cluster message. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.verify|verify} messages. + * @param message Cluster message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.ICluster, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Cluster message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.verify|verify} messages. + * @param message Cluster message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.ICluster, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Cluster message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Cluster + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.Cluster; + + /** + * Decodes a Cluster message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Cluster + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.Cluster; + + /** + * Verifies a Cluster message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Cluster message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Cluster + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.Cluster; + + /** + * Creates a plain object from a Cluster message. Also converts values to other types if specified. + * @param message Cluster * @param [options] Conversion options * @returns Plain object */ public static toObject(message: google.cloud.redis.cluster.v1.Cluster, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Cluster to JSON. + * Converts this Cluster to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Cluster + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace Cluster { + + /** Properties of a StateInfo. */ + interface IStateInfo { + + /** StateInfo updateInfo */ + updateInfo?: (google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo|null); + } + + /** Represents a StateInfo. */ + class StateInfo implements IStateInfo { + + /** + * Constructs a new StateInfo. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.Cluster.IStateInfo); + + /** StateInfo updateInfo. */ + public updateInfo?: (google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo|null); + + /** StateInfo info. */ + public info?: "updateInfo"; + + /** + * Creates a new StateInfo instance using the specified properties. + * @param [properties] Properties to set + * @returns StateInfo instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.Cluster.IStateInfo): google.cloud.redis.cluster.v1.Cluster.StateInfo; + + /** + * Encodes the specified StateInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.StateInfo.verify|verify} messages. + * @param message StateInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.Cluster.IStateInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified StateInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.StateInfo.verify|verify} messages. + * @param message StateInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.Cluster.IStateInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a StateInfo message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns StateInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.Cluster.StateInfo; + + /** + * Decodes a StateInfo message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns StateInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.Cluster.StateInfo; + + /** + * Verifies a StateInfo message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a StateInfo message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns StateInfo + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.Cluster.StateInfo; + + /** + * Creates a plain object from a StateInfo message. Also converts values to other types if specified. + * @param message StateInfo + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.Cluster.StateInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this StateInfo to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for StateInfo + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace StateInfo { + + /** Properties of an UpdateInfo. */ + interface IUpdateInfo { + + /** UpdateInfo targetShardCount */ + targetShardCount?: (number|null); + + /** UpdateInfo targetReplicaCount */ + targetReplicaCount?: (number|null); + } + + /** Represents an UpdateInfo. */ + class UpdateInfo implements IUpdateInfo { + + /** + * Constructs a new UpdateInfo. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo); + + /** UpdateInfo targetShardCount. */ + public targetShardCount?: (number|null); + + /** UpdateInfo targetReplicaCount. */ + public targetReplicaCount?: (number|null); + + /** UpdateInfo _targetShardCount. */ + public _targetShardCount?: "targetShardCount"; + + /** UpdateInfo _targetReplicaCount. */ + public _targetReplicaCount?: "targetReplicaCount"; + + /** + * Creates a new UpdateInfo instance using the specified properties. + * @param [properties] Properties to set + * @returns UpdateInfo instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo): google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo; + + /** + * Encodes the specified UpdateInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo.verify|verify} messages. + * @param message UpdateInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified UpdateInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo.verify|verify} messages. + * @param message UpdateInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an UpdateInfo message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns UpdateInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo; + + /** + * Decodes an UpdateInfo message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns UpdateInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo; + + /** + * Verifies an UpdateInfo message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an UpdateInfo message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns UpdateInfo + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo; + + /** + * Creates a plain object from an UpdateInfo message. Also converts values to other types if specified. + * @param message UpdateInfo + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this UpdateInfo to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for UpdateInfo + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + } + + /** Properties of a GcsBackupSource. */ + interface IGcsBackupSource { + + /** GcsBackupSource uris */ + uris?: (string[]|null); + } + + /** Represents a GcsBackupSource. */ + class GcsBackupSource implements IGcsBackupSource { + + /** + * Constructs a new GcsBackupSource. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.Cluster.IGcsBackupSource); + + /** GcsBackupSource uris. */ + public uris: string[]; + + /** + * Creates a new GcsBackupSource instance using the specified properties. + * @param [properties] Properties to set + * @returns GcsBackupSource instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.Cluster.IGcsBackupSource): google.cloud.redis.cluster.v1.Cluster.GcsBackupSource; + + /** + * Encodes the specified GcsBackupSource message. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.GcsBackupSource.verify|verify} messages. + * @param message GcsBackupSource message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.Cluster.IGcsBackupSource, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GcsBackupSource message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.GcsBackupSource.verify|verify} messages. + * @param message GcsBackupSource message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.Cluster.IGcsBackupSource, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GcsBackupSource message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GcsBackupSource + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.Cluster.GcsBackupSource; + + /** + * Decodes a GcsBackupSource message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GcsBackupSource + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.Cluster.GcsBackupSource; + + /** + * Verifies a GcsBackupSource message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a GcsBackupSource message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GcsBackupSource + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.Cluster.GcsBackupSource; + + /** + * Creates a plain object from a GcsBackupSource message. Also converts values to other types if specified. + * @param message GcsBackupSource + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.Cluster.GcsBackupSource, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GcsBackupSource to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for GcsBackupSource + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a ManagedBackupSource. */ + interface IManagedBackupSource { + + /** ManagedBackupSource backup */ + backup?: (string|null); + } + + /** Represents a ManagedBackupSource. */ + class ManagedBackupSource implements IManagedBackupSource { + + /** + * Constructs a new ManagedBackupSource. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.Cluster.IManagedBackupSource); + + /** ManagedBackupSource backup. */ + public backup: string; + + /** + * Creates a new ManagedBackupSource instance using the specified properties. + * @param [properties] Properties to set + * @returns ManagedBackupSource instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.Cluster.IManagedBackupSource): google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource; + + /** + * Encodes the specified ManagedBackupSource message. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource.verify|verify} messages. + * @param message ManagedBackupSource message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.Cluster.IManagedBackupSource, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ManagedBackupSource message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource.verify|verify} messages. + * @param message ManagedBackupSource message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.Cluster.IManagedBackupSource, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ManagedBackupSource message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ManagedBackupSource + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource; + + /** + * Decodes a ManagedBackupSource message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ManagedBackupSource + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource; + + /** + * Verifies a ManagedBackupSource message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ManagedBackupSource message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ManagedBackupSource + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource; + + /** + * Creates a plain object from a ManagedBackupSource message. Also converts values to other types if specified. + * @param message ManagedBackupSource + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ManagedBackupSource to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ManagedBackupSource + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** State enum. */ + enum State { + STATE_UNSPECIFIED = 0, + CREATING = 1, + ACTIVE = 2, + UPDATING = 3, + DELETING = 4 + } + } + + /** Properties of an AutomatedBackupConfig. */ + interface IAutomatedBackupConfig { + + /** AutomatedBackupConfig fixedFrequencySchedule */ + fixedFrequencySchedule?: (google.cloud.redis.cluster.v1.AutomatedBackupConfig.IFixedFrequencySchedule|null); + + /** AutomatedBackupConfig automatedBackupMode */ + automatedBackupMode?: (google.cloud.redis.cluster.v1.AutomatedBackupConfig.AutomatedBackupMode|keyof typeof google.cloud.redis.cluster.v1.AutomatedBackupConfig.AutomatedBackupMode|null); + + /** AutomatedBackupConfig retention */ + retention?: (google.protobuf.IDuration|null); + } + + /** Represents an AutomatedBackupConfig. */ + class AutomatedBackupConfig implements IAutomatedBackupConfig { + + /** + * Constructs a new AutomatedBackupConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IAutomatedBackupConfig); + + /** AutomatedBackupConfig fixedFrequencySchedule. */ + public fixedFrequencySchedule?: (google.cloud.redis.cluster.v1.AutomatedBackupConfig.IFixedFrequencySchedule|null); + + /** AutomatedBackupConfig automatedBackupMode. */ + public automatedBackupMode: (google.cloud.redis.cluster.v1.AutomatedBackupConfig.AutomatedBackupMode|keyof typeof google.cloud.redis.cluster.v1.AutomatedBackupConfig.AutomatedBackupMode); + + /** AutomatedBackupConfig retention. */ + public retention?: (google.protobuf.IDuration|null); + + /** AutomatedBackupConfig schedule. */ + public schedule?: "fixedFrequencySchedule"; + + /** AutomatedBackupConfig _retention. */ + public _retention?: "retention"; + + /** + * Creates a new AutomatedBackupConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns AutomatedBackupConfig instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IAutomatedBackupConfig): google.cloud.redis.cluster.v1.AutomatedBackupConfig; + + /** + * Encodes the specified AutomatedBackupConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.AutomatedBackupConfig.verify|verify} messages. + * @param message AutomatedBackupConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IAutomatedBackupConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified AutomatedBackupConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.AutomatedBackupConfig.verify|verify} messages. + * @param message AutomatedBackupConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IAutomatedBackupConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an AutomatedBackupConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns AutomatedBackupConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.AutomatedBackupConfig; + + /** + * Decodes an AutomatedBackupConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns AutomatedBackupConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.AutomatedBackupConfig; + + /** + * Verifies an AutomatedBackupConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an AutomatedBackupConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns AutomatedBackupConfig + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.AutomatedBackupConfig; + + /** + * Creates a plain object from an AutomatedBackupConfig message. Also converts values to other types if specified. + * @param message AutomatedBackupConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.AutomatedBackupConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this AutomatedBackupConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for AutomatedBackupConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace AutomatedBackupConfig { + + /** Properties of a FixedFrequencySchedule. */ + interface IFixedFrequencySchedule { + + /** FixedFrequencySchedule startTime */ + startTime?: (google.type.ITimeOfDay|null); + } + + /** Represents a FixedFrequencySchedule. */ + class FixedFrequencySchedule implements IFixedFrequencySchedule { + + /** + * Constructs a new FixedFrequencySchedule. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.AutomatedBackupConfig.IFixedFrequencySchedule); + + /** FixedFrequencySchedule startTime. */ + public startTime?: (google.type.ITimeOfDay|null); + + /** FixedFrequencySchedule _startTime. */ + public _startTime?: "startTime"; + + /** + * Creates a new FixedFrequencySchedule instance using the specified properties. + * @param [properties] Properties to set + * @returns FixedFrequencySchedule instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.AutomatedBackupConfig.IFixedFrequencySchedule): google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule; + + /** + * Encodes the specified FixedFrequencySchedule message. Does not implicitly {@link google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule.verify|verify} messages. + * @param message FixedFrequencySchedule message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.AutomatedBackupConfig.IFixedFrequencySchedule, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified FixedFrequencySchedule message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule.verify|verify} messages. + * @param message FixedFrequencySchedule message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.AutomatedBackupConfig.IFixedFrequencySchedule, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a FixedFrequencySchedule message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FixedFrequencySchedule + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule; + + /** + * Decodes a FixedFrequencySchedule message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FixedFrequencySchedule + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule; + + /** + * Verifies a FixedFrequencySchedule message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a FixedFrequencySchedule message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FixedFrequencySchedule + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule; + + /** + * Creates a plain object from a FixedFrequencySchedule message. Also converts values to other types if specified. + * @param message FixedFrequencySchedule + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this FixedFrequencySchedule to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for FixedFrequencySchedule + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** AutomatedBackupMode enum. */ + enum AutomatedBackupMode { + AUTOMATED_BACKUP_MODE_UNSPECIFIED = 0, + DISABLED = 1, + ENABLED = 2 + } + } + + /** Properties of a BackupCollection. */ + interface IBackupCollection { + + /** BackupCollection name */ + name?: (string|null); + + /** BackupCollection clusterUid */ + clusterUid?: (string|null); + + /** BackupCollection cluster */ + cluster?: (string|null); + + /** BackupCollection kmsKey */ + kmsKey?: (string|null); + + /** BackupCollection uid */ + uid?: (string|null); + } + + /** Represents a BackupCollection. */ + class BackupCollection implements IBackupCollection { + + /** + * Constructs a new BackupCollection. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IBackupCollection); + + /** BackupCollection name. */ + public name: string; + + /** BackupCollection clusterUid. */ + public clusterUid: string; + + /** BackupCollection cluster. */ + public cluster: string; + + /** BackupCollection kmsKey. */ + public kmsKey: string; + + /** BackupCollection uid. */ + public uid: string; + + /** + * Creates a new BackupCollection instance using the specified properties. + * @param [properties] Properties to set + * @returns BackupCollection instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IBackupCollection): google.cloud.redis.cluster.v1.BackupCollection; + + /** + * Encodes the specified BackupCollection message. Does not implicitly {@link google.cloud.redis.cluster.v1.BackupCollection.verify|verify} messages. + * @param message BackupCollection message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IBackupCollection, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BackupCollection message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.BackupCollection.verify|verify} messages. + * @param message BackupCollection message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IBackupCollection, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BackupCollection message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BackupCollection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.BackupCollection; + + /** + * Decodes a BackupCollection message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BackupCollection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.BackupCollection; + + /** + * Verifies a BackupCollection message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BackupCollection message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BackupCollection + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.BackupCollection; + + /** + * Creates a plain object from a BackupCollection message. Also converts values to other types if specified. + * @param message BackupCollection + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.BackupCollection, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BackupCollection to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for BackupCollection + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a Backup. */ + interface IBackup { + + /** Backup name */ + name?: (string|null); + + /** Backup createTime */ + createTime?: (google.protobuf.ITimestamp|null); + + /** Backup cluster */ + cluster?: (string|null); + + /** Backup clusterUid */ + clusterUid?: (string|null); + + /** Backup totalSizeBytes */ + totalSizeBytes?: (number|Long|string|null); + + /** Backup expireTime */ + expireTime?: (google.protobuf.ITimestamp|null); + + /** Backup engineVersion */ + engineVersion?: (string|null); + + /** Backup backupFiles */ + backupFiles?: (google.cloud.redis.cluster.v1.IBackupFile[]|null); + + /** Backup nodeType */ + nodeType?: (google.cloud.redis.cluster.v1.NodeType|keyof typeof google.cloud.redis.cluster.v1.NodeType|null); + + /** Backup replicaCount */ + replicaCount?: (number|null); + + /** Backup shardCount */ + shardCount?: (number|null); + + /** Backup backupType */ + backupType?: (google.cloud.redis.cluster.v1.Backup.BackupType|keyof typeof google.cloud.redis.cluster.v1.Backup.BackupType|null); + + /** Backup state */ + state?: (google.cloud.redis.cluster.v1.Backup.State|keyof typeof google.cloud.redis.cluster.v1.Backup.State|null); + + /** Backup encryptionInfo */ + encryptionInfo?: (google.cloud.redis.cluster.v1.IEncryptionInfo|null); + + /** Backup uid */ + uid?: (string|null); + } + + /** Represents a Backup. */ + class Backup implements IBackup { + + /** + * Constructs a new Backup. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IBackup); + + /** Backup name. */ + public name: string; + + /** Backup createTime. */ + public createTime?: (google.protobuf.ITimestamp|null); + + /** Backup cluster. */ + public cluster: string; + + /** Backup clusterUid. */ + public clusterUid: string; + + /** Backup totalSizeBytes. */ + public totalSizeBytes: (number|Long|string); + + /** Backup expireTime. */ + public expireTime?: (google.protobuf.ITimestamp|null); + + /** Backup engineVersion. */ + public engineVersion: string; + + /** Backup backupFiles. */ + public backupFiles: google.cloud.redis.cluster.v1.IBackupFile[]; + + /** Backup nodeType. */ + public nodeType: (google.cloud.redis.cluster.v1.NodeType|keyof typeof google.cloud.redis.cluster.v1.NodeType); + + /** Backup replicaCount. */ + public replicaCount: number; + + /** Backup shardCount. */ + public shardCount: number; + + /** Backup backupType. */ + public backupType: (google.cloud.redis.cluster.v1.Backup.BackupType|keyof typeof google.cloud.redis.cluster.v1.Backup.BackupType); + + /** Backup state. */ + public state: (google.cloud.redis.cluster.v1.Backup.State|keyof typeof google.cloud.redis.cluster.v1.Backup.State); + + /** Backup encryptionInfo. */ + public encryptionInfo?: (google.cloud.redis.cluster.v1.IEncryptionInfo|null); + + /** Backup uid. */ + public uid: string; + + /** + * Creates a new Backup instance using the specified properties. + * @param [properties] Properties to set + * @returns Backup instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IBackup): google.cloud.redis.cluster.v1.Backup; + + /** + * Encodes the specified Backup message. Does not implicitly {@link google.cloud.redis.cluster.v1.Backup.verify|verify} messages. + * @param message Backup message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IBackup, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Backup message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.Backup.verify|verify} messages. + * @param message Backup message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IBackup, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Backup message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Backup + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.Backup; + + /** + * Decodes a Backup message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Backup + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.Backup; + + /** + * Verifies a Backup message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Backup message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Backup + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.Backup; + + /** + * Creates a plain object from a Backup message. Also converts values to other types if specified. + * @param message Backup + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.Backup, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Backup to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Backup + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace Backup { + + /** BackupType enum. */ + enum BackupType { + BACKUP_TYPE_UNSPECIFIED = 0, + ON_DEMAND = 1, + AUTOMATED = 2 + } + + /** State enum. */ + enum State { + STATE_UNSPECIFIED = 0, + CREATING = 1, + ACTIVE = 2, + DELETING = 3, + SUSPENDED = 4 + } + } + + /** Properties of a BackupFile. */ + interface IBackupFile { + + /** BackupFile fileName */ + fileName?: (string|null); + + /** BackupFile sizeBytes */ + sizeBytes?: (number|Long|string|null); + + /** BackupFile createTime */ + createTime?: (google.protobuf.ITimestamp|null); + } + + /** Represents a BackupFile. */ + class BackupFile implements IBackupFile { + + /** + * Constructs a new BackupFile. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IBackupFile); + + /** BackupFile fileName. */ + public fileName: string; + + /** BackupFile sizeBytes. */ + public sizeBytes: (number|Long|string); + + /** BackupFile createTime. */ + public createTime?: (google.protobuf.ITimestamp|null); + + /** + * Creates a new BackupFile instance using the specified properties. + * @param [properties] Properties to set + * @returns BackupFile instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IBackupFile): google.cloud.redis.cluster.v1.BackupFile; + + /** + * Encodes the specified BackupFile message. Does not implicitly {@link google.cloud.redis.cluster.v1.BackupFile.verify|verify} messages. + * @param message BackupFile message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IBackupFile, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BackupFile message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.BackupFile.verify|verify} messages. + * @param message BackupFile message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IBackupFile, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BackupFile message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BackupFile + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.BackupFile; + + /** + * Decodes a BackupFile message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BackupFile + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.BackupFile; + + /** + * Verifies a BackupFile message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BackupFile message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BackupFile + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.BackupFile; + + /** + * Creates a plain object from a BackupFile message. Also converts values to other types if specified. + * @param message BackupFile + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.BackupFile, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BackupFile to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for BackupFile + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a PscServiceAttachment. */ + interface IPscServiceAttachment { + + /** PscServiceAttachment serviceAttachment */ + serviceAttachment?: (string|null); + + /** PscServiceAttachment connectionType */ + connectionType?: (google.cloud.redis.cluster.v1.ConnectionType|keyof typeof google.cloud.redis.cluster.v1.ConnectionType|null); + } + + /** Represents a PscServiceAttachment. */ + class PscServiceAttachment implements IPscServiceAttachment { + + /** + * Constructs a new PscServiceAttachment. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IPscServiceAttachment); + + /** PscServiceAttachment serviceAttachment. */ + public serviceAttachment: string; + + /** PscServiceAttachment connectionType. */ + public connectionType: (google.cloud.redis.cluster.v1.ConnectionType|keyof typeof google.cloud.redis.cluster.v1.ConnectionType); + + /** + * Creates a new PscServiceAttachment instance using the specified properties. + * @param [properties] Properties to set + * @returns PscServiceAttachment instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IPscServiceAttachment): google.cloud.redis.cluster.v1.PscServiceAttachment; + + /** + * Encodes the specified PscServiceAttachment message. Does not implicitly {@link google.cloud.redis.cluster.v1.PscServiceAttachment.verify|verify} messages. + * @param message PscServiceAttachment message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IPscServiceAttachment, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified PscServiceAttachment message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.PscServiceAttachment.verify|verify} messages. + * @param message PscServiceAttachment message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IPscServiceAttachment, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PscServiceAttachment message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PscServiceAttachment + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.PscServiceAttachment; + + /** + * Decodes a PscServiceAttachment message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PscServiceAttachment + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.PscServiceAttachment; + + /** + * Verifies a PscServiceAttachment message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a PscServiceAttachment message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PscServiceAttachment + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.PscServiceAttachment; + + /** + * Creates a plain object from a PscServiceAttachment message. Also converts values to other types if specified. + * @param message PscServiceAttachment + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.PscServiceAttachment, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this PscServiceAttachment to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for PscServiceAttachment + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a CrossClusterReplicationConfig. */ + interface ICrossClusterReplicationConfig { + + /** CrossClusterReplicationConfig clusterRole */ + clusterRole?: (google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.ClusterRole|keyof typeof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.ClusterRole|null); + + /** CrossClusterReplicationConfig primaryCluster */ + primaryCluster?: (google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster|null); + + /** CrossClusterReplicationConfig secondaryClusters */ + secondaryClusters?: (google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster[]|null); + + /** CrossClusterReplicationConfig updateTime */ + updateTime?: (google.protobuf.ITimestamp|null); + + /** CrossClusterReplicationConfig membership */ + membership?: (google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IMembership|null); + } + + /** Represents a CrossClusterReplicationConfig. */ + class CrossClusterReplicationConfig implements ICrossClusterReplicationConfig { + + /** + * Constructs a new CrossClusterReplicationConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.ICrossClusterReplicationConfig); + + /** CrossClusterReplicationConfig clusterRole. */ + public clusterRole: (google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.ClusterRole|keyof typeof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.ClusterRole); + + /** CrossClusterReplicationConfig primaryCluster. */ + public primaryCluster?: (google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster|null); + + /** CrossClusterReplicationConfig secondaryClusters. */ + public secondaryClusters: google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster[]; + + /** CrossClusterReplicationConfig updateTime. */ + public updateTime?: (google.protobuf.ITimestamp|null); + + /** CrossClusterReplicationConfig membership. */ + public membership?: (google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IMembership|null); + + /** + * Creates a new CrossClusterReplicationConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns CrossClusterReplicationConfig instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.ICrossClusterReplicationConfig): google.cloud.redis.cluster.v1.CrossClusterReplicationConfig; + + /** + * Encodes the specified CrossClusterReplicationConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.verify|verify} messages. + * @param message CrossClusterReplicationConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.ICrossClusterReplicationConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CrossClusterReplicationConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.verify|verify} messages. + * @param message CrossClusterReplicationConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.ICrossClusterReplicationConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CrossClusterReplicationConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CrossClusterReplicationConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.CrossClusterReplicationConfig; + + /** + * Decodes a CrossClusterReplicationConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CrossClusterReplicationConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.CrossClusterReplicationConfig; + + /** + * Verifies a CrossClusterReplicationConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CrossClusterReplicationConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CrossClusterReplicationConfig + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.CrossClusterReplicationConfig; + + /** + * Creates a plain object from a CrossClusterReplicationConfig message. Also converts values to other types if specified. + * @param message CrossClusterReplicationConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.CrossClusterReplicationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CrossClusterReplicationConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CrossClusterReplicationConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace CrossClusterReplicationConfig { + + /** Properties of a RemoteCluster. */ + interface IRemoteCluster { + + /** RemoteCluster cluster */ + cluster?: (string|null); + + /** RemoteCluster uid */ + uid?: (string|null); + } + + /** Represents a RemoteCluster. */ + class RemoteCluster implements IRemoteCluster { + + /** + * Constructs a new RemoteCluster. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster); + + /** RemoteCluster cluster. */ + public cluster: string; + + /** RemoteCluster uid. */ + public uid: string; + + /** + * Creates a new RemoteCluster instance using the specified properties. + * @param [properties] Properties to set + * @returns RemoteCluster instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster): google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster; + + /** + * Encodes the specified RemoteCluster message. Does not implicitly {@link google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.verify|verify} messages. + * @param message RemoteCluster message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified RemoteCluster message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.verify|verify} messages. + * @param message RemoteCluster message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RemoteCluster message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RemoteCluster + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster; + + /** + * Decodes a RemoteCluster message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RemoteCluster + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster; + + /** + * Verifies a RemoteCluster message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a RemoteCluster message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RemoteCluster + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster; + + /** + * Creates a plain object from a RemoteCluster message. Also converts values to other types if specified. + * @param message RemoteCluster + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this RemoteCluster to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for RemoteCluster + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a Membership. */ + interface IMembership { + + /** Membership primaryCluster */ + primaryCluster?: (google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster|null); + + /** Membership secondaryClusters */ + secondaryClusters?: (google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster[]|null); + } + + /** Represents a Membership. */ + class Membership implements IMembership { + + /** + * Constructs a new Membership. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IMembership); + + /** Membership primaryCluster. */ + public primaryCluster?: (google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster|null); + + /** Membership secondaryClusters. */ + public secondaryClusters: google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster[]; + + /** + * Creates a new Membership instance using the specified properties. + * @param [properties] Properties to set + * @returns Membership instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IMembership): google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership; + + /** + * Encodes the specified Membership message. Does not implicitly {@link google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership.verify|verify} messages. + * @param message Membership message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IMembership, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Membership message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership.verify|verify} messages. + * @param message Membership message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IMembership, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Membership message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Membership + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership; + + /** + * Decodes a Membership message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Membership + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership; + + /** + * Verifies a Membership message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Membership message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Membership + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership; + + /** + * Creates a plain object from a Membership message. Also converts values to other types if specified. + * @param message Membership + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Membership to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Membership + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** ClusterRole enum. */ + enum ClusterRole { + CLUSTER_ROLE_UNSPECIFIED = 0, + NONE = 1, + PRIMARY = 2, + SECONDARY = 3 + } + } + + /** Properties of a ClusterMaintenancePolicy. */ + interface IClusterMaintenancePolicy { + + /** ClusterMaintenancePolicy createTime */ + createTime?: (google.protobuf.ITimestamp|null); + + /** ClusterMaintenancePolicy updateTime */ + updateTime?: (google.protobuf.ITimestamp|null); + + /** ClusterMaintenancePolicy weeklyMaintenanceWindow */ + weeklyMaintenanceWindow?: (google.cloud.redis.cluster.v1.IClusterWeeklyMaintenanceWindow[]|null); + } + + /** Represents a ClusterMaintenancePolicy. */ + class ClusterMaintenancePolicy implements IClusterMaintenancePolicy { + + /** + * Constructs a new ClusterMaintenancePolicy. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IClusterMaintenancePolicy); + + /** ClusterMaintenancePolicy createTime. */ + public createTime?: (google.protobuf.ITimestamp|null); + + /** ClusterMaintenancePolicy updateTime. */ + public updateTime?: (google.protobuf.ITimestamp|null); + + /** ClusterMaintenancePolicy weeklyMaintenanceWindow. */ + public weeklyMaintenanceWindow: google.cloud.redis.cluster.v1.IClusterWeeklyMaintenanceWindow[]; + + /** + * Creates a new ClusterMaintenancePolicy instance using the specified properties. + * @param [properties] Properties to set + * @returns ClusterMaintenancePolicy instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IClusterMaintenancePolicy): google.cloud.redis.cluster.v1.ClusterMaintenancePolicy; + + /** + * Encodes the specified ClusterMaintenancePolicy message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterMaintenancePolicy.verify|verify} messages. + * @param message ClusterMaintenancePolicy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IClusterMaintenancePolicy, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ClusterMaintenancePolicy message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterMaintenancePolicy.verify|verify} messages. + * @param message ClusterMaintenancePolicy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IClusterMaintenancePolicy, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ClusterMaintenancePolicy message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ClusterMaintenancePolicy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.ClusterMaintenancePolicy; + + /** + * Decodes a ClusterMaintenancePolicy message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ClusterMaintenancePolicy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.ClusterMaintenancePolicy; + + /** + * Verifies a ClusterMaintenancePolicy message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ClusterMaintenancePolicy message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ClusterMaintenancePolicy + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.ClusterMaintenancePolicy; + + /** + * Creates a plain object from a ClusterMaintenancePolicy message. Also converts values to other types if specified. + * @param message ClusterMaintenancePolicy + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.ClusterMaintenancePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ClusterMaintenancePolicy to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ClusterMaintenancePolicy + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a ClusterWeeklyMaintenanceWindow. */ + interface IClusterWeeklyMaintenanceWindow { + + /** ClusterWeeklyMaintenanceWindow day */ + day?: (google.type.DayOfWeek|keyof typeof google.type.DayOfWeek|null); + + /** ClusterWeeklyMaintenanceWindow startTime */ + startTime?: (google.type.ITimeOfDay|null); + } + + /** Represents a ClusterWeeklyMaintenanceWindow. */ + class ClusterWeeklyMaintenanceWindow implements IClusterWeeklyMaintenanceWindow { + + /** + * Constructs a new ClusterWeeklyMaintenanceWindow. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IClusterWeeklyMaintenanceWindow); + + /** ClusterWeeklyMaintenanceWindow day. */ + public day: (google.type.DayOfWeek|keyof typeof google.type.DayOfWeek); + + /** ClusterWeeklyMaintenanceWindow startTime. */ + public startTime?: (google.type.ITimeOfDay|null); + + /** + * Creates a new ClusterWeeklyMaintenanceWindow instance using the specified properties. + * @param [properties] Properties to set + * @returns ClusterWeeklyMaintenanceWindow instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IClusterWeeklyMaintenanceWindow): google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow; + + /** + * Encodes the specified ClusterWeeklyMaintenanceWindow message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow.verify|verify} messages. + * @param message ClusterWeeklyMaintenanceWindow message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IClusterWeeklyMaintenanceWindow, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ClusterWeeklyMaintenanceWindow message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow.verify|verify} messages. + * @param message ClusterWeeklyMaintenanceWindow message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IClusterWeeklyMaintenanceWindow, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ClusterWeeklyMaintenanceWindow message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ClusterWeeklyMaintenanceWindow + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow; + + /** + * Decodes a ClusterWeeklyMaintenanceWindow message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ClusterWeeklyMaintenanceWindow + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow; + + /** + * Verifies a ClusterWeeklyMaintenanceWindow message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ClusterWeeklyMaintenanceWindow message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ClusterWeeklyMaintenanceWindow + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow; + + /** + * Creates a plain object from a ClusterWeeklyMaintenanceWindow message. Also converts values to other types if specified. + * @param message ClusterWeeklyMaintenanceWindow + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ClusterWeeklyMaintenanceWindow to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ClusterWeeklyMaintenanceWindow + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a ClusterMaintenanceSchedule. */ + interface IClusterMaintenanceSchedule { + + /** ClusterMaintenanceSchedule startTime */ + startTime?: (google.protobuf.ITimestamp|null); + + /** ClusterMaintenanceSchedule endTime */ + endTime?: (google.protobuf.ITimestamp|null); + } + + /** Represents a ClusterMaintenanceSchedule. */ + class ClusterMaintenanceSchedule implements IClusterMaintenanceSchedule { + + /** + * Constructs a new ClusterMaintenanceSchedule. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IClusterMaintenanceSchedule); + + /** ClusterMaintenanceSchedule startTime. */ + public startTime?: (google.protobuf.ITimestamp|null); + + /** ClusterMaintenanceSchedule endTime. */ + public endTime?: (google.protobuf.ITimestamp|null); + + /** + * Creates a new ClusterMaintenanceSchedule instance using the specified properties. + * @param [properties] Properties to set + * @returns ClusterMaintenanceSchedule instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IClusterMaintenanceSchedule): google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule; + + /** + * Encodes the specified ClusterMaintenanceSchedule message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule.verify|verify} messages. + * @param message ClusterMaintenanceSchedule message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IClusterMaintenanceSchedule, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ClusterMaintenanceSchedule message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule.verify|verify} messages. + * @param message ClusterMaintenanceSchedule message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IClusterMaintenanceSchedule, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ClusterMaintenanceSchedule message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ClusterMaintenanceSchedule + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule; + + /** + * Decodes a ClusterMaintenanceSchedule message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ClusterMaintenanceSchedule + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule; + + /** + * Verifies a ClusterMaintenanceSchedule message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ClusterMaintenanceSchedule message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ClusterMaintenanceSchedule + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule; + + /** + * Creates a plain object from a ClusterMaintenanceSchedule message. Also converts values to other types if specified. + * @param message ClusterMaintenanceSchedule + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ClusterMaintenanceSchedule to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ClusterMaintenanceSchedule + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a PscConfig. */ + interface IPscConfig { + + /** PscConfig network */ + network?: (string|null); + } + + /** Represents a PscConfig. */ + class PscConfig implements IPscConfig { + + /** + * Constructs a new PscConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IPscConfig); + + /** PscConfig network. */ + public network: string; + + /** + * Creates a new PscConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns PscConfig instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IPscConfig): google.cloud.redis.cluster.v1.PscConfig; + + /** + * Encodes the specified PscConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.PscConfig.verify|verify} messages. + * @param message PscConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IPscConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified PscConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.PscConfig.verify|verify} messages. + * @param message PscConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IPscConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PscConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PscConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.PscConfig; + + /** + * Decodes a PscConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PscConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.PscConfig; + + /** + * Verifies a PscConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a PscConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PscConfig + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.PscConfig; + + /** + * Creates a plain object from a PscConfig message. Also converts values to other types if specified. + * @param message PscConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.PscConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this PscConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for PscConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a DiscoveryEndpoint. */ + interface IDiscoveryEndpoint { + + /** DiscoveryEndpoint address */ + address?: (string|null); + + /** DiscoveryEndpoint port */ + port?: (number|null); + + /** DiscoveryEndpoint pscConfig */ + pscConfig?: (google.cloud.redis.cluster.v1.IPscConfig|null); + } + + /** Represents a DiscoveryEndpoint. */ + class DiscoveryEndpoint implements IDiscoveryEndpoint { + + /** + * Constructs a new DiscoveryEndpoint. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IDiscoveryEndpoint); + + /** DiscoveryEndpoint address. */ + public address: string; + + /** DiscoveryEndpoint port. */ + public port: number; + + /** DiscoveryEndpoint pscConfig. */ + public pscConfig?: (google.cloud.redis.cluster.v1.IPscConfig|null); + + /** + * Creates a new DiscoveryEndpoint instance using the specified properties. + * @param [properties] Properties to set + * @returns DiscoveryEndpoint instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IDiscoveryEndpoint): google.cloud.redis.cluster.v1.DiscoveryEndpoint; + + /** + * Encodes the specified DiscoveryEndpoint message. Does not implicitly {@link google.cloud.redis.cluster.v1.DiscoveryEndpoint.verify|verify} messages. + * @param message DiscoveryEndpoint message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IDiscoveryEndpoint, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified DiscoveryEndpoint message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.DiscoveryEndpoint.verify|verify} messages. + * @param message DiscoveryEndpoint message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IDiscoveryEndpoint, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DiscoveryEndpoint message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DiscoveryEndpoint + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.DiscoveryEndpoint; + + /** + * Decodes a DiscoveryEndpoint message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DiscoveryEndpoint + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.DiscoveryEndpoint; + + /** + * Verifies a DiscoveryEndpoint message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a DiscoveryEndpoint message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DiscoveryEndpoint + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.DiscoveryEndpoint; + + /** + * Creates a plain object from a DiscoveryEndpoint message. Also converts values to other types if specified. + * @param message DiscoveryEndpoint + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.DiscoveryEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DiscoveryEndpoint to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for DiscoveryEndpoint + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a PscConnection. */ + interface IPscConnection { + + /** PscConnection pscConnectionId */ + pscConnectionId?: (string|null); + + /** PscConnection address */ + address?: (string|null); + + /** PscConnection forwardingRule */ + forwardingRule?: (string|null); + + /** PscConnection projectId */ + projectId?: (string|null); + + /** PscConnection network */ + network?: (string|null); + + /** PscConnection serviceAttachment */ + serviceAttachment?: (string|null); + + /** PscConnection pscConnectionStatus */ + pscConnectionStatus?: (google.cloud.redis.cluster.v1.PscConnectionStatus|keyof typeof google.cloud.redis.cluster.v1.PscConnectionStatus|null); + + /** PscConnection connectionType */ + connectionType?: (google.cloud.redis.cluster.v1.ConnectionType|keyof typeof google.cloud.redis.cluster.v1.ConnectionType|null); + } + + /** Represents a PscConnection. */ + class PscConnection implements IPscConnection { + + /** + * Constructs a new PscConnection. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IPscConnection); + + /** PscConnection pscConnectionId. */ + public pscConnectionId: string; + + /** PscConnection address. */ + public address: string; + + /** PscConnection forwardingRule. */ + public forwardingRule: string; + + /** PscConnection projectId. */ + public projectId: string; + + /** PscConnection network. */ + public network: string; + + /** PscConnection serviceAttachment. */ + public serviceAttachment: string; + + /** PscConnection pscConnectionStatus. */ + public pscConnectionStatus: (google.cloud.redis.cluster.v1.PscConnectionStatus|keyof typeof google.cloud.redis.cluster.v1.PscConnectionStatus); + + /** PscConnection connectionType. */ + public connectionType: (google.cloud.redis.cluster.v1.ConnectionType|keyof typeof google.cloud.redis.cluster.v1.ConnectionType); + + /** + * Creates a new PscConnection instance using the specified properties. + * @param [properties] Properties to set + * @returns PscConnection instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IPscConnection): google.cloud.redis.cluster.v1.PscConnection; + + /** + * Encodes the specified PscConnection message. Does not implicitly {@link google.cloud.redis.cluster.v1.PscConnection.verify|verify} messages. + * @param message PscConnection message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IPscConnection, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified PscConnection message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.PscConnection.verify|verify} messages. + * @param message PscConnection message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IPscConnection, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PscConnection message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PscConnection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.PscConnection; + + /** + * Decodes a PscConnection message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PscConnection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.PscConnection; + + /** + * Verifies a PscConnection message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a PscConnection message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PscConnection + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.PscConnection; + + /** + * Creates a plain object from a PscConnection message. Also converts values to other types if specified. + * @param message PscConnection + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.PscConnection, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this PscConnection to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for PscConnection + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a ClusterEndpoint. */ + interface IClusterEndpoint { + + /** ClusterEndpoint connections */ + connections?: (google.cloud.redis.cluster.v1.IConnectionDetail[]|null); + } + + /** Represents a ClusterEndpoint. */ + class ClusterEndpoint implements IClusterEndpoint { + + /** + * Constructs a new ClusterEndpoint. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IClusterEndpoint); + + /** ClusterEndpoint connections. */ + public connections: google.cloud.redis.cluster.v1.IConnectionDetail[]; + + /** + * Creates a new ClusterEndpoint instance using the specified properties. + * @param [properties] Properties to set + * @returns ClusterEndpoint instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IClusterEndpoint): google.cloud.redis.cluster.v1.ClusterEndpoint; + + /** + * Encodes the specified ClusterEndpoint message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterEndpoint.verify|verify} messages. + * @param message ClusterEndpoint message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IClusterEndpoint, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ClusterEndpoint message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterEndpoint.verify|verify} messages. + * @param message ClusterEndpoint message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IClusterEndpoint, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ClusterEndpoint message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ClusterEndpoint + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.ClusterEndpoint; + + /** + * Decodes a ClusterEndpoint message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ClusterEndpoint + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.ClusterEndpoint; + + /** + * Verifies a ClusterEndpoint message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ClusterEndpoint message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ClusterEndpoint + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.ClusterEndpoint; + + /** + * Creates a plain object from a ClusterEndpoint message. Also converts values to other types if specified. + * @param message ClusterEndpoint + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.ClusterEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ClusterEndpoint to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ClusterEndpoint + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a ConnectionDetail. */ + interface IConnectionDetail { + + /** ConnectionDetail pscAutoConnection */ + pscAutoConnection?: (google.cloud.redis.cluster.v1.IPscAutoConnection|null); + + /** ConnectionDetail pscConnection */ + pscConnection?: (google.cloud.redis.cluster.v1.IPscConnection|null); + } + + /** Represents a ConnectionDetail. */ + class ConnectionDetail implements IConnectionDetail { + + /** + * Constructs a new ConnectionDetail. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IConnectionDetail); + + /** ConnectionDetail pscAutoConnection. */ + public pscAutoConnection?: (google.cloud.redis.cluster.v1.IPscAutoConnection|null); + + /** ConnectionDetail pscConnection. */ + public pscConnection?: (google.cloud.redis.cluster.v1.IPscConnection|null); + + /** ConnectionDetail connection. */ + public connection?: ("pscAutoConnection"|"pscConnection"); + + /** + * Creates a new ConnectionDetail instance using the specified properties. + * @param [properties] Properties to set + * @returns ConnectionDetail instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IConnectionDetail): google.cloud.redis.cluster.v1.ConnectionDetail; + + /** + * Encodes the specified ConnectionDetail message. Does not implicitly {@link google.cloud.redis.cluster.v1.ConnectionDetail.verify|verify} messages. + * @param message ConnectionDetail message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IConnectionDetail, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ConnectionDetail message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ConnectionDetail.verify|verify} messages. + * @param message ConnectionDetail message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IConnectionDetail, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ConnectionDetail message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ConnectionDetail + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.ConnectionDetail; + + /** + * Decodes a ConnectionDetail message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ConnectionDetail + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.ConnectionDetail; + + /** + * Verifies a ConnectionDetail message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ConnectionDetail message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ConnectionDetail + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.ConnectionDetail; + + /** + * Creates a plain object from a ConnectionDetail message. Also converts values to other types if specified. + * @param message ConnectionDetail + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.ConnectionDetail, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ConnectionDetail to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ConnectionDetail + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a PscAutoConnection. */ + interface IPscAutoConnection { + + /** PscAutoConnection pscConnectionId */ + pscConnectionId?: (string|null); + + /** PscAutoConnection address */ + address?: (string|null); + + /** PscAutoConnection forwardingRule */ + forwardingRule?: (string|null); + + /** PscAutoConnection projectId */ + projectId?: (string|null); + + /** PscAutoConnection network */ + network?: (string|null); + + /** PscAutoConnection serviceAttachment */ + serviceAttachment?: (string|null); + + /** PscAutoConnection pscConnectionStatus */ + pscConnectionStatus?: (google.cloud.redis.cluster.v1.PscConnectionStatus|keyof typeof google.cloud.redis.cluster.v1.PscConnectionStatus|null); + + /** PscAutoConnection connectionType */ + connectionType?: (google.cloud.redis.cluster.v1.ConnectionType|keyof typeof google.cloud.redis.cluster.v1.ConnectionType|null); + } + + /** Represents a PscAutoConnection. */ + class PscAutoConnection implements IPscAutoConnection { + + /** + * Constructs a new PscAutoConnection. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IPscAutoConnection); + + /** PscAutoConnection pscConnectionId. */ + public pscConnectionId: string; + + /** PscAutoConnection address. */ + public address: string; + + /** PscAutoConnection forwardingRule. */ + public forwardingRule: string; + + /** PscAutoConnection projectId. */ + public projectId: string; + + /** PscAutoConnection network. */ + public network: string; + + /** PscAutoConnection serviceAttachment. */ + public serviceAttachment: string; + + /** PscAutoConnection pscConnectionStatus. */ + public pscConnectionStatus: (google.cloud.redis.cluster.v1.PscConnectionStatus|keyof typeof google.cloud.redis.cluster.v1.PscConnectionStatus); + + /** PscAutoConnection connectionType. */ + public connectionType: (google.cloud.redis.cluster.v1.ConnectionType|keyof typeof google.cloud.redis.cluster.v1.ConnectionType); + + /** + * Creates a new PscAutoConnection instance using the specified properties. + * @param [properties] Properties to set + * @returns PscAutoConnection instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IPscAutoConnection): google.cloud.redis.cluster.v1.PscAutoConnection; + + /** + * Encodes the specified PscAutoConnection message. Does not implicitly {@link google.cloud.redis.cluster.v1.PscAutoConnection.verify|verify} messages. + * @param message PscAutoConnection message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IPscAutoConnection, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified PscAutoConnection message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.PscAutoConnection.verify|verify} messages. + * @param message PscAutoConnection message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IPscAutoConnection, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PscAutoConnection message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PscAutoConnection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.PscAutoConnection; + + /** + * Decodes a PscAutoConnection message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PscAutoConnection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.PscAutoConnection; + + /** + * Verifies a PscAutoConnection message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a PscAutoConnection message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PscAutoConnection + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.PscAutoConnection; + + /** + * Creates a plain object from a PscAutoConnection message. Also converts values to other types if specified. + * @param message PscAutoConnection + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.PscAutoConnection, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this PscAutoConnection to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for PscAutoConnection + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of an OperationMetadata. */ + interface IOperationMetadata { + + /** OperationMetadata createTime */ + createTime?: (google.protobuf.ITimestamp|null); + + /** OperationMetadata endTime */ + endTime?: (google.protobuf.ITimestamp|null); + + /** OperationMetadata target */ + target?: (string|null); + + /** OperationMetadata verb */ + verb?: (string|null); + + /** OperationMetadata statusMessage */ + statusMessage?: (string|null); + + /** OperationMetadata requestedCancellation */ + requestedCancellation?: (boolean|null); + + /** OperationMetadata apiVersion */ + apiVersion?: (string|null); + } + + /** Represents an OperationMetadata. */ + class OperationMetadata implements IOperationMetadata { + + /** + * Constructs a new OperationMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IOperationMetadata); + + /** OperationMetadata createTime. */ + public createTime?: (google.protobuf.ITimestamp|null); + + /** OperationMetadata endTime. */ + public endTime?: (google.protobuf.ITimestamp|null); + + /** OperationMetadata target. */ + public target: string; + + /** OperationMetadata verb. */ + public verb: string; + + /** OperationMetadata statusMessage. */ + public statusMessage: string; + + /** OperationMetadata requestedCancellation. */ + public requestedCancellation: boolean; + + /** OperationMetadata apiVersion. */ + public apiVersion: string; + + /** + * Creates a new OperationMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns OperationMetadata instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IOperationMetadata): google.cloud.redis.cluster.v1.OperationMetadata; + + /** + * Encodes the specified OperationMetadata message. Does not implicitly {@link google.cloud.redis.cluster.v1.OperationMetadata.verify|verify} messages. + * @param message OperationMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified OperationMetadata message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.OperationMetadata.verify|verify} messages. + * @param message OperationMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an OperationMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns OperationMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.OperationMetadata; + + /** + * Decodes an OperationMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns OperationMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.OperationMetadata; + + /** + * Verifies an OperationMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an OperationMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns OperationMetadata + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.OperationMetadata; + + /** + * Creates a plain object from an OperationMetadata message. Also converts values to other types if specified. + * @param message OperationMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.OperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this OperationMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for OperationMetadata + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a CertificateAuthority. */ + interface ICertificateAuthority { + + /** CertificateAuthority managedServerCa */ + managedServerCa?: (google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority|null); + + /** CertificateAuthority name */ + name?: (string|null); + } + + /** Represents a CertificateAuthority. */ + class CertificateAuthority implements ICertificateAuthority { + + /** + * Constructs a new CertificateAuthority. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.ICertificateAuthority); + + /** CertificateAuthority managedServerCa. */ + public managedServerCa?: (google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority|null); + + /** CertificateAuthority name. */ + public name: string; + + /** CertificateAuthority serverCa. */ + public serverCa?: "managedServerCa"; + + /** + * Creates a new CertificateAuthority instance using the specified properties. + * @param [properties] Properties to set + * @returns CertificateAuthority instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.ICertificateAuthority): google.cloud.redis.cluster.v1.CertificateAuthority; + + /** + * Encodes the specified CertificateAuthority message. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.verify|verify} messages. + * @param message CertificateAuthority message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.ICertificateAuthority, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CertificateAuthority message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.verify|verify} messages. + * @param message CertificateAuthority message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.ICertificateAuthority, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CertificateAuthority message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CertificateAuthority + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.CertificateAuthority; + + /** + * Decodes a CertificateAuthority message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CertificateAuthority + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.CertificateAuthority; + + /** + * Verifies a CertificateAuthority message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CertificateAuthority message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CertificateAuthority + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.CertificateAuthority; + + /** + * Creates a plain object from a CertificateAuthority message. Also converts values to other types if specified. + * @param message CertificateAuthority + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.CertificateAuthority, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CertificateAuthority to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CertificateAuthority + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace CertificateAuthority { + + /** Properties of a ManagedCertificateAuthority. */ + interface IManagedCertificateAuthority { + + /** ManagedCertificateAuthority caCerts */ + caCerts?: (google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain[]|null); + } + + /** Represents a ManagedCertificateAuthority. */ + class ManagedCertificateAuthority implements IManagedCertificateAuthority { + + /** + * Constructs a new ManagedCertificateAuthority. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority); + + /** ManagedCertificateAuthority caCerts. */ + public caCerts: google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain[]; + + /** + * Creates a new ManagedCertificateAuthority instance using the specified properties. + * @param [properties] Properties to set + * @returns ManagedCertificateAuthority instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority): google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority; + + /** + * Encodes the specified ManagedCertificateAuthority message. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.verify|verify} messages. + * @param message ManagedCertificateAuthority message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ManagedCertificateAuthority message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.verify|verify} messages. + * @param message ManagedCertificateAuthority message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ManagedCertificateAuthority message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ManagedCertificateAuthority + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority; + + /** + * Decodes a ManagedCertificateAuthority message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ManagedCertificateAuthority + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority; + + /** + * Verifies a ManagedCertificateAuthority message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ManagedCertificateAuthority message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ManagedCertificateAuthority + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority; + + /** + * Creates a plain object from a ManagedCertificateAuthority message. Also converts values to other types if specified. + * @param message ManagedCertificateAuthority + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ManagedCertificateAuthority to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ManagedCertificateAuthority + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace ManagedCertificateAuthority { + + /** Properties of a CertChain. */ + interface ICertChain { + + /** CertChain certificates */ + certificates?: (string[]|null); + } + + /** Represents a CertChain. */ + class CertChain implements ICertChain { + + /** + * Constructs a new CertChain. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain); + + /** CertChain certificates. */ + public certificates: string[]; + + /** + * Creates a new CertChain instance using the specified properties. + * @param [properties] Properties to set + * @returns CertChain instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain): google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain; + + /** + * Encodes the specified CertChain message. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.verify|verify} messages. + * @param message CertChain message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CertChain message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.verify|verify} messages. + * @param message CertChain message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CertChain message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CertChain + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain; + + /** + * Decodes a CertChain message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CertChain + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain; + + /** + * Verifies a CertChain message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CertChain message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CertChain + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain; + + /** + * Creates a plain object from a CertChain message. Also converts values to other types if specified. + * @param message CertChain + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CertChain to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CertChain + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + } + } + + /** Properties of a ClusterPersistenceConfig. */ + interface IClusterPersistenceConfig { + + /** ClusterPersistenceConfig mode */ + mode?: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceMode|keyof typeof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceMode|null); + + /** ClusterPersistenceConfig rdbConfig */ + rdbConfig?: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig|null); + + /** ClusterPersistenceConfig aofConfig */ + aofConfig?: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig|null); + } + + /** Represents a ClusterPersistenceConfig. */ + class ClusterPersistenceConfig implements IClusterPersistenceConfig { + + /** + * Constructs a new ClusterPersistenceConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IClusterPersistenceConfig); + + /** ClusterPersistenceConfig mode. */ + public mode: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceMode|keyof typeof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceMode); + + /** ClusterPersistenceConfig rdbConfig. */ + public rdbConfig?: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig|null); + + /** ClusterPersistenceConfig aofConfig. */ + public aofConfig?: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig|null); + + /** + * Creates a new ClusterPersistenceConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns ClusterPersistenceConfig instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IClusterPersistenceConfig): google.cloud.redis.cluster.v1.ClusterPersistenceConfig; + + /** + * Encodes the specified ClusterPersistenceConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.verify|verify} messages. + * @param message ClusterPersistenceConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IClusterPersistenceConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ClusterPersistenceConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.verify|verify} messages. + * @param message ClusterPersistenceConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IClusterPersistenceConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ClusterPersistenceConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ClusterPersistenceConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.ClusterPersistenceConfig; + + /** + * Decodes a ClusterPersistenceConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ClusterPersistenceConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.ClusterPersistenceConfig; + + /** + * Verifies a ClusterPersistenceConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ClusterPersistenceConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ClusterPersistenceConfig + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.ClusterPersistenceConfig; + + /** + * Creates a plain object from a ClusterPersistenceConfig message. Also converts values to other types if specified. + * @param message ClusterPersistenceConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.ClusterPersistenceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ClusterPersistenceConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ClusterPersistenceConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace ClusterPersistenceConfig { + + /** Properties of a RDBConfig. */ + interface IRDBConfig { + + /** RDBConfig rdbSnapshotPeriod */ + rdbSnapshotPeriod?: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriod|keyof typeof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriod|null); + + /** RDBConfig rdbSnapshotStartTime */ + rdbSnapshotStartTime?: (google.protobuf.ITimestamp|null); + } + + /** Represents a RDBConfig. */ + class RDBConfig implements IRDBConfig { + + /** + * Constructs a new RDBConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig); + + /** RDBConfig rdbSnapshotPeriod. */ + public rdbSnapshotPeriod: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriod|keyof typeof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriod); + + /** RDBConfig rdbSnapshotStartTime. */ + public rdbSnapshotStartTime?: (google.protobuf.ITimestamp|null); + + /** + * Creates a new RDBConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns RDBConfig instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig): google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig; + + /** + * Encodes the specified RDBConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.verify|verify} messages. + * @param message RDBConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified RDBConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.verify|verify} messages. + * @param message RDBConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RDBConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RDBConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig; + + /** + * Decodes a RDBConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RDBConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig; + + /** + * Verifies a RDBConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a RDBConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RDBConfig + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig; + + /** + * Creates a plain object from a RDBConfig message. Also converts values to other types if specified. + * @param message RDBConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this RDBConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for RDBConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace RDBConfig { + + /** SnapshotPeriod enum. */ + enum SnapshotPeriod { + SNAPSHOT_PERIOD_UNSPECIFIED = 0, + ONE_HOUR = 1, + SIX_HOURS = 2, + TWELVE_HOURS = 3, + TWENTY_FOUR_HOURS = 4 + } + } + + /** Properties of a AOFConfig. */ + interface IAOFConfig { + + /** AOFConfig appendFsync */ + appendFsync?: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsync|keyof typeof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsync|null); + } + + /** Represents a AOFConfig. */ + class AOFConfig implements IAOFConfig { + + /** + * Constructs a new AOFConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig); + + /** AOFConfig appendFsync. */ + public appendFsync: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsync|keyof typeof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsync); + + /** + * Creates a new AOFConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns AOFConfig instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig): google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig; + + /** + * Encodes the specified AOFConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.verify|verify} messages. + * @param message AOFConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified AOFConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.verify|verify} messages. + * @param message AOFConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a AOFConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns AOFConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig; + + /** + * Decodes a AOFConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns AOFConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig; + + /** + * Verifies a AOFConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a AOFConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns AOFConfig + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig; + + /** + * Creates a plain object from a AOFConfig message. Also converts values to other types if specified. + * @param message AOFConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this AOFConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for AOFConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace AOFConfig { + + /** AppendFsync enum. */ + enum AppendFsync { + APPEND_FSYNC_UNSPECIFIED = 0, + NO = 1, + EVERYSEC = 2, + ALWAYS = 3 + } + } + + /** PersistenceMode enum. */ + enum PersistenceMode { + PERSISTENCE_MODE_UNSPECIFIED = 0, + DISABLED = 1, + RDB = 2, + AOF = 3 + } + } + + /** Properties of a ZoneDistributionConfig. */ + interface IZoneDistributionConfig { + + /** ZoneDistributionConfig mode */ + mode?: (google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionMode|keyof typeof google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionMode|null); + + /** ZoneDistributionConfig zone */ + zone?: (string|null); + } + + /** Represents a ZoneDistributionConfig. */ + class ZoneDistributionConfig implements IZoneDistributionConfig { + + /** + * Constructs a new ZoneDistributionConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IZoneDistributionConfig); + + /** ZoneDistributionConfig mode. */ + public mode: (google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionMode|keyof typeof google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionMode); + + /** ZoneDistributionConfig zone. */ + public zone: string; + + /** + * Creates a new ZoneDistributionConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns ZoneDistributionConfig instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IZoneDistributionConfig): google.cloud.redis.cluster.v1.ZoneDistributionConfig; + + /** + * Encodes the specified ZoneDistributionConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.ZoneDistributionConfig.verify|verify} messages. + * @param message ZoneDistributionConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IZoneDistributionConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ZoneDistributionConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ZoneDistributionConfig.verify|verify} messages. + * @param message ZoneDistributionConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IZoneDistributionConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ZoneDistributionConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ZoneDistributionConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.ZoneDistributionConfig; + + /** + * Decodes a ZoneDistributionConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ZoneDistributionConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.ZoneDistributionConfig; + + /** + * Verifies a ZoneDistributionConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ZoneDistributionConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ZoneDistributionConfig + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.ZoneDistributionConfig; + + /** + * Creates a plain object from a ZoneDistributionConfig message. Also converts values to other types if specified. + * @param message ZoneDistributionConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.ZoneDistributionConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ZoneDistributionConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ZoneDistributionConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace ZoneDistributionConfig { + + /** ZoneDistributionMode enum. */ + enum ZoneDistributionMode { + ZONE_DISTRIBUTION_MODE_UNSPECIFIED = 0, + MULTI_ZONE = 1, + SINGLE_ZONE = 2 + } + } + + /** Properties of a RescheduleClusterMaintenanceRequest. */ + interface IRescheduleClusterMaintenanceRequest { + + /** RescheduleClusterMaintenanceRequest name */ + name?: (string|null); + + /** RescheduleClusterMaintenanceRequest rescheduleType */ + rescheduleType?: (google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.RescheduleType|keyof typeof google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.RescheduleType|null); + + /** RescheduleClusterMaintenanceRequest scheduleTime */ + scheduleTime?: (google.protobuf.ITimestamp|null); + } + + /** Represents a RescheduleClusterMaintenanceRequest. */ + class RescheduleClusterMaintenanceRequest implements IRescheduleClusterMaintenanceRequest { + + /** + * Constructs a new RescheduleClusterMaintenanceRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IRescheduleClusterMaintenanceRequest); + + /** RescheduleClusterMaintenanceRequest name. */ + public name: string; + + /** RescheduleClusterMaintenanceRequest rescheduleType. */ + public rescheduleType: (google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.RescheduleType|keyof typeof google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.RescheduleType); + + /** RescheduleClusterMaintenanceRequest scheduleTime. */ + public scheduleTime?: (google.protobuf.ITimestamp|null); + + /** + * Creates a new RescheduleClusterMaintenanceRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns RescheduleClusterMaintenanceRequest instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IRescheduleClusterMaintenanceRequest): google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest; + + /** + * Encodes the specified RescheduleClusterMaintenanceRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.verify|verify} messages. + * @param message RescheduleClusterMaintenanceRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IRescheduleClusterMaintenanceRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified RescheduleClusterMaintenanceRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.verify|verify} messages. + * @param message RescheduleClusterMaintenanceRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IRescheduleClusterMaintenanceRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RescheduleClusterMaintenanceRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RescheduleClusterMaintenanceRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest; + + /** + * Decodes a RescheduleClusterMaintenanceRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RescheduleClusterMaintenanceRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest; + + /** + * Verifies a RescheduleClusterMaintenanceRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a RescheduleClusterMaintenanceRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RescheduleClusterMaintenanceRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest; + + /** + * Creates a plain object from a RescheduleClusterMaintenanceRequest message. Also converts values to other types if specified. + * @param message RescheduleClusterMaintenanceRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this RescheduleClusterMaintenanceRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for RescheduleClusterMaintenanceRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace RescheduleClusterMaintenanceRequest { + + /** RescheduleType enum. */ + enum RescheduleType { + RESCHEDULE_TYPE_UNSPECIFIED = 0, + IMMEDIATE = 1, + SPECIFIC_TIME = 3 + } + } + + /** Properties of an EncryptionInfo. */ + interface IEncryptionInfo { + + /** EncryptionInfo encryptionType */ + encryptionType?: (google.cloud.redis.cluster.v1.EncryptionInfo.Type|keyof typeof google.cloud.redis.cluster.v1.EncryptionInfo.Type|null); + + /** EncryptionInfo kmsKeyVersions */ + kmsKeyVersions?: (string[]|null); + + /** EncryptionInfo kmsKeyPrimaryState */ + kmsKeyPrimaryState?: (google.cloud.redis.cluster.v1.EncryptionInfo.KmsKeyState|keyof typeof google.cloud.redis.cluster.v1.EncryptionInfo.KmsKeyState|null); + + /** EncryptionInfo lastUpdateTime */ + lastUpdateTime?: (google.protobuf.ITimestamp|null); + } + + /** Represents an EncryptionInfo. */ + class EncryptionInfo implements IEncryptionInfo { + + /** + * Constructs a new EncryptionInfo. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1.IEncryptionInfo); + + /** EncryptionInfo encryptionType. */ + public encryptionType: (google.cloud.redis.cluster.v1.EncryptionInfo.Type|keyof typeof google.cloud.redis.cluster.v1.EncryptionInfo.Type); + + /** EncryptionInfo kmsKeyVersions. */ + public kmsKeyVersions: string[]; + + /** EncryptionInfo kmsKeyPrimaryState. */ + public kmsKeyPrimaryState: (google.cloud.redis.cluster.v1.EncryptionInfo.KmsKeyState|keyof typeof google.cloud.redis.cluster.v1.EncryptionInfo.KmsKeyState); + + /** EncryptionInfo lastUpdateTime. */ + public lastUpdateTime?: (google.protobuf.ITimestamp|null); + + /** + * Creates a new EncryptionInfo instance using the specified properties. + * @param [properties] Properties to set + * @returns EncryptionInfo instance + */ + public static create(properties?: google.cloud.redis.cluster.v1.IEncryptionInfo): google.cloud.redis.cluster.v1.EncryptionInfo; + + /** + * Encodes the specified EncryptionInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1.EncryptionInfo.verify|verify} messages. + * @param message EncryptionInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1.IEncryptionInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified EncryptionInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.EncryptionInfo.verify|verify} messages. + * @param message EncryptionInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1.IEncryptionInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an EncryptionInfo message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns EncryptionInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.EncryptionInfo; + + /** + * Decodes an EncryptionInfo message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns EncryptionInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.EncryptionInfo; + + /** + * Verifies an EncryptionInfo message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an EncryptionInfo message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns EncryptionInfo + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.EncryptionInfo; + + /** + * Creates a plain object from an EncryptionInfo message. Also converts values to other types if specified. + * @param message EncryptionInfo + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1.EncryptionInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this EncryptionInfo to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for EncryptionInfo + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace EncryptionInfo { + + /** Type enum. */ + enum Type { + TYPE_UNSPECIFIED = 0, + GOOGLE_DEFAULT_ENCRYPTION = 1, + CUSTOMER_MANAGED_ENCRYPTION = 2 + } + + /** KmsKeyState enum. */ + enum KmsKeyState { + KMS_KEY_STATE_UNSPECIFIED = 0, + ENABLED = 1, + PERMISSION_DENIED = 2, + DISABLED = 3, + DESTROYED = 4, + DESTROY_SCHEDULED = 5, + EKM_KEY_UNREACHABLE_DETECTED = 6, + BILLING_DISABLED = 7, + UNKNOWN_FAILURE = 8 + } + } + } + + /** Namespace v1beta1. */ + namespace v1beta1 { + + /** Represents a CloudRedisCluster */ + class CloudRedisCluster extends $protobuf.rpc.Service { + + /** + * Constructs a new CloudRedisCluster service. + * @param rpcImpl RPC implementation + * @param [requestDelimited=false] Whether requests are length-delimited + * @param [responseDelimited=false] Whether responses are length-delimited + */ + constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean); + + /** + * Creates new CloudRedisCluster service using the specified rpc implementation. + * @param rpcImpl RPC implementation + * @param [requestDelimited=false] Whether requests are length-delimited + * @param [responseDelimited=false] Whether responses are length-delimited + * @returns RPC service. Useful where requests and/or responses are streamed. + */ + public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): CloudRedisCluster; + + /** + * Calls ListClusters. + * @param request ListClustersRequest message or plain object + * @param callback Node-style callback called with the error, if any, and ListClustersResponse + */ + public listClusters(request: google.cloud.redis.cluster.v1beta1.IListClustersRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.ListClustersCallback): void; + + /** + * Calls ListClusters. + * @param request ListClustersRequest message or plain object + * @returns Promise + */ + public listClusters(request: google.cloud.redis.cluster.v1beta1.IListClustersRequest): Promise; + + /** + * Calls GetCluster. + * @param request GetClusterRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Cluster + */ + public getCluster(request: google.cloud.redis.cluster.v1beta1.IGetClusterRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.GetClusterCallback): void; + + /** + * Calls GetCluster. + * @param request GetClusterRequest message or plain object + * @returns Promise + */ + public getCluster(request: google.cloud.redis.cluster.v1beta1.IGetClusterRequest): Promise; + + /** + * Calls UpdateCluster. + * @param request UpdateClusterRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Operation + */ + public updateCluster(request: google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.UpdateClusterCallback): void; + + /** + * Calls UpdateCluster. + * @param request UpdateClusterRequest message or plain object + * @returns Promise + */ + public updateCluster(request: google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest): Promise; + + /** + * Calls DeleteCluster. + * @param request DeleteClusterRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Operation + */ + public deleteCluster(request: google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.DeleteClusterCallback): void; + + /** + * Calls DeleteCluster. + * @param request DeleteClusterRequest message or plain object + * @returns Promise + */ + public deleteCluster(request: google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest): Promise; + + /** + * Calls CreateCluster. + * @param request CreateClusterRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Operation + */ + public createCluster(request: google.cloud.redis.cluster.v1beta1.ICreateClusterRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.CreateClusterCallback): void; + + /** + * Calls CreateCluster. + * @param request CreateClusterRequest message or plain object + * @returns Promise + */ + public createCluster(request: google.cloud.redis.cluster.v1beta1.ICreateClusterRequest): Promise; + + /** + * Calls GetClusterCertificateAuthority. + * @param request GetClusterCertificateAuthorityRequest message or plain object + * @param callback Node-style callback called with the error, if any, and CertificateAuthority + */ + public getClusterCertificateAuthority(request: google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.GetClusterCertificateAuthorityCallback): void; + + /** + * Calls GetClusterCertificateAuthority. + * @param request GetClusterCertificateAuthorityRequest message or plain object + * @returns Promise + */ + public getClusterCertificateAuthority(request: google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest): Promise; + + /** + * Calls RescheduleClusterMaintenance. + * @param request RescheduleClusterMaintenanceRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Operation + */ + public rescheduleClusterMaintenance(request: google.cloud.redis.cluster.v1beta1.IRescheduleClusterMaintenanceRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.RescheduleClusterMaintenanceCallback): void; + + /** + * Calls RescheduleClusterMaintenance. + * @param request RescheduleClusterMaintenanceRequest message or plain object + * @returns Promise + */ + public rescheduleClusterMaintenance(request: google.cloud.redis.cluster.v1beta1.IRescheduleClusterMaintenanceRequest): Promise; + + /** + * Calls ListBackupCollections. + * @param request ListBackupCollectionsRequest message or plain object + * @param callback Node-style callback called with the error, if any, and ListBackupCollectionsResponse + */ + public listBackupCollections(request: google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.ListBackupCollectionsCallback): void; + + /** + * Calls ListBackupCollections. + * @param request ListBackupCollectionsRequest message or plain object + * @returns Promise + */ + public listBackupCollections(request: google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest): Promise; + + /** + * Calls GetBackupCollection. + * @param request GetBackupCollectionRequest message or plain object + * @param callback Node-style callback called with the error, if any, and BackupCollection + */ + public getBackupCollection(request: google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.GetBackupCollectionCallback): void; + + /** + * Calls GetBackupCollection. + * @param request GetBackupCollectionRequest message or plain object + * @returns Promise + */ + public getBackupCollection(request: google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest): Promise; + + /** + * Calls ListBackups. + * @param request ListBackupsRequest message or plain object + * @param callback Node-style callback called with the error, if any, and ListBackupsResponse + */ + public listBackups(request: google.cloud.redis.cluster.v1beta1.IListBackupsRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.ListBackupsCallback): void; + + /** + * Calls ListBackups. + * @param request ListBackupsRequest message or plain object + * @returns Promise + */ + public listBackups(request: google.cloud.redis.cluster.v1beta1.IListBackupsRequest): Promise; + + /** + * Calls GetBackup. + * @param request GetBackupRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Backup + */ + public getBackup(request: google.cloud.redis.cluster.v1beta1.IGetBackupRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.GetBackupCallback): void; + + /** + * Calls GetBackup. + * @param request GetBackupRequest message or plain object + * @returns Promise + */ + public getBackup(request: google.cloud.redis.cluster.v1beta1.IGetBackupRequest): Promise; + + /** + * Calls DeleteBackup. + * @param request DeleteBackupRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Operation + */ + public deleteBackup(request: google.cloud.redis.cluster.v1beta1.IDeleteBackupRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.DeleteBackupCallback): void; + + /** + * Calls DeleteBackup. + * @param request DeleteBackupRequest message or plain object + * @returns Promise + */ + public deleteBackup(request: google.cloud.redis.cluster.v1beta1.IDeleteBackupRequest): Promise; + + /** + * Calls ExportBackup. + * @param request ExportBackupRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Operation + */ + public exportBackup(request: google.cloud.redis.cluster.v1beta1.IExportBackupRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.ExportBackupCallback): void; + + /** + * Calls ExportBackup. + * @param request ExportBackupRequest message or plain object + * @returns Promise + */ + public exportBackup(request: google.cloud.redis.cluster.v1beta1.IExportBackupRequest): Promise; + + /** + * Calls BackupCluster. + * @param request BackupClusterRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Operation + */ + public backupCluster(request: google.cloud.redis.cluster.v1beta1.IBackupClusterRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.BackupClusterCallback): void; + + /** + * Calls BackupCluster. + * @param request BackupClusterRequest message or plain object + * @returns Promise + */ + public backupCluster(request: google.cloud.redis.cluster.v1beta1.IBackupClusterRequest): Promise; + } + + namespace CloudRedisCluster { + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|listClusters}. + * @param error Error, if any + * @param [response] ListClustersResponse + */ + type ListClustersCallback = (error: (Error|null), response?: google.cloud.redis.cluster.v1beta1.ListClustersResponse) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|getCluster}. + * @param error Error, if any + * @param [response] Cluster + */ + type GetClusterCallback = (error: (Error|null), response?: google.cloud.redis.cluster.v1beta1.Cluster) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|updateCluster}. + * @param error Error, if any + * @param [response] Operation + */ + type UpdateClusterCallback = (error: (Error|null), response?: google.longrunning.Operation) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|deleteCluster}. + * @param error Error, if any + * @param [response] Operation + */ + type DeleteClusterCallback = (error: (Error|null), response?: google.longrunning.Operation) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|createCluster}. + * @param error Error, if any + * @param [response] Operation + */ + type CreateClusterCallback = (error: (Error|null), response?: google.longrunning.Operation) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|getClusterCertificateAuthority}. + * @param error Error, if any + * @param [response] CertificateAuthority + */ + type GetClusterCertificateAuthorityCallback = (error: (Error|null), response?: google.cloud.redis.cluster.v1beta1.CertificateAuthority) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|rescheduleClusterMaintenance}. + * @param error Error, if any + * @param [response] Operation + */ + type RescheduleClusterMaintenanceCallback = (error: (Error|null), response?: google.longrunning.Operation) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|listBackupCollections}. + * @param error Error, if any + * @param [response] ListBackupCollectionsResponse + */ + type ListBackupCollectionsCallback = (error: (Error|null), response?: google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|getBackupCollection}. + * @param error Error, if any + * @param [response] BackupCollection + */ + type GetBackupCollectionCallback = (error: (Error|null), response?: google.cloud.redis.cluster.v1beta1.BackupCollection) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|listBackups}. + * @param error Error, if any + * @param [response] ListBackupsResponse + */ + type ListBackupsCallback = (error: (Error|null), response?: google.cloud.redis.cluster.v1beta1.ListBackupsResponse) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|getBackup}. + * @param error Error, if any + * @param [response] Backup + */ + type GetBackupCallback = (error: (Error|null), response?: google.cloud.redis.cluster.v1beta1.Backup) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|deleteBackup}. + * @param error Error, if any + * @param [response] Operation + */ + type DeleteBackupCallback = (error: (Error|null), response?: google.longrunning.Operation) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|exportBackup}. + * @param error Error, if any + * @param [response] Operation + */ + type ExportBackupCallback = (error: (Error|null), response?: google.longrunning.Operation) => void; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|backupCluster}. + * @param error Error, if any + * @param [response] Operation + */ + type BackupClusterCallback = (error: (Error|null), response?: google.longrunning.Operation) => void; + } + + /** PscConnectionStatus enum. */ + enum PscConnectionStatus { + PSC_CONNECTION_STATUS_UNSPECIFIED = 0, + PSC_CONNECTION_STATUS_ACTIVE = 1, + PSC_CONNECTION_STATUS_NOT_FOUND = 2 + } + + /** AuthorizationMode enum. */ + enum AuthorizationMode { + AUTH_MODE_UNSPECIFIED = 0, + AUTH_MODE_IAM_AUTH = 1, + AUTH_MODE_DISABLED = 2 + } + + /** NodeType enum. */ + enum NodeType { + NODE_TYPE_UNSPECIFIED = 0, + REDIS_SHARED_CORE_NANO = 1, + REDIS_HIGHMEM_MEDIUM = 2, + REDIS_HIGHMEM_XLARGE = 3, + REDIS_STANDARD_SMALL = 4 + } + + /** TransitEncryptionMode enum. */ + enum TransitEncryptionMode { + TRANSIT_ENCRYPTION_MODE_UNSPECIFIED = 0, + TRANSIT_ENCRYPTION_MODE_DISABLED = 1, + TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION = 2 + } + + /** ConnectionType enum. */ + enum ConnectionType { + CONNECTION_TYPE_UNSPECIFIED = 0, + CONNECTION_TYPE_DISCOVERY = 1, + CONNECTION_TYPE_PRIMARY = 2, + CONNECTION_TYPE_READER = 3 + } + + /** Properties of a CreateClusterRequest. */ + interface ICreateClusterRequest { + + /** CreateClusterRequest parent */ + parent?: (string|null); + + /** CreateClusterRequest clusterId */ + clusterId?: (string|null); + + /** CreateClusterRequest cluster */ + cluster?: (google.cloud.redis.cluster.v1beta1.ICluster|null); + + /** CreateClusterRequest requestId */ + requestId?: (string|null); + } + + /** Represents a CreateClusterRequest. */ + class CreateClusterRequest implements ICreateClusterRequest { + + /** + * Constructs a new CreateClusterRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.ICreateClusterRequest); + + /** CreateClusterRequest parent. */ + public parent: string; + + /** CreateClusterRequest clusterId. */ + public clusterId: string; + + /** CreateClusterRequest cluster. */ + public cluster?: (google.cloud.redis.cluster.v1beta1.ICluster|null); + + /** CreateClusterRequest requestId. */ + public requestId: string; + + /** + * Creates a new CreateClusterRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns CreateClusterRequest instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.ICreateClusterRequest): google.cloud.redis.cluster.v1beta1.CreateClusterRequest; + + /** + * Encodes the specified CreateClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CreateClusterRequest.verify|verify} messages. + * @param message CreateClusterRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.ICreateClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CreateClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CreateClusterRequest.verify|verify} messages. + * @param message CreateClusterRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.ICreateClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CreateClusterRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CreateClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.CreateClusterRequest; + + /** + * Decodes a CreateClusterRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CreateClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.CreateClusterRequest; + + /** + * Verifies a CreateClusterRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CreateClusterRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CreateClusterRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.CreateClusterRequest; + + /** + * Creates a plain object from a CreateClusterRequest message. Also converts values to other types if specified. + * @param message CreateClusterRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.CreateClusterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CreateClusterRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CreateClusterRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a ListClustersRequest. */ + interface IListClustersRequest { + + /** ListClustersRequest parent */ + parent?: (string|null); + + /** ListClustersRequest pageSize */ + pageSize?: (number|null); + + /** ListClustersRequest pageToken */ + pageToken?: (string|null); + } + + /** Represents a ListClustersRequest. */ + class ListClustersRequest implements IListClustersRequest { + + /** + * Constructs a new ListClustersRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.IListClustersRequest); + + /** ListClustersRequest parent. */ + public parent: string; + + /** ListClustersRequest pageSize. */ + public pageSize: number; + + /** ListClustersRequest pageToken. */ + public pageToken: string; + + /** + * Creates a new ListClustersRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns ListClustersRequest instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.IListClustersRequest): google.cloud.redis.cluster.v1beta1.ListClustersRequest; + + /** + * Encodes the specified ListClustersRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListClustersRequest.verify|verify} messages. + * @param message ListClustersRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.IListClustersRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ListClustersRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListClustersRequest.verify|verify} messages. + * @param message ListClustersRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IListClustersRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListClustersRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListClustersRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.ListClustersRequest; + + /** + * Decodes a ListClustersRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListClustersRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.ListClustersRequest; + + /** + * Verifies a ListClustersRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ListClustersRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListClustersRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.ListClustersRequest; + + /** + * Creates a plain object from a ListClustersRequest message. Also converts values to other types if specified. + * @param message ListClustersRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.ListClustersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ListClustersRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ListClustersRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a ListClustersResponse. */ + interface IListClustersResponse { + + /** ListClustersResponse clusters */ + clusters?: (google.cloud.redis.cluster.v1beta1.ICluster[]|null); + + /** ListClustersResponse nextPageToken */ + nextPageToken?: (string|null); + + /** ListClustersResponse unreachable */ + unreachable?: (string[]|null); + } + + /** Represents a ListClustersResponse. */ + class ListClustersResponse implements IListClustersResponse { + + /** + * Constructs a new ListClustersResponse. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.IListClustersResponse); + + /** ListClustersResponse clusters. */ + public clusters: google.cloud.redis.cluster.v1beta1.ICluster[]; + + /** ListClustersResponse nextPageToken. */ + public nextPageToken: string; + + /** ListClustersResponse unreachable. */ + public unreachable: string[]; + + /** + * Creates a new ListClustersResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns ListClustersResponse instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.IListClustersResponse): google.cloud.redis.cluster.v1beta1.ListClustersResponse; + + /** + * Encodes the specified ListClustersResponse message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListClustersResponse.verify|verify} messages. + * @param message ListClustersResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.IListClustersResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ListClustersResponse message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListClustersResponse.verify|verify} messages. + * @param message ListClustersResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IListClustersResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListClustersResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListClustersResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.ListClustersResponse; + + /** + * Decodes a ListClustersResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListClustersResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.ListClustersResponse; + + /** + * Verifies a ListClustersResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ListClustersResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListClustersResponse + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.ListClustersResponse; + + /** + * Creates a plain object from a ListClustersResponse message. Also converts values to other types if specified. + * @param message ListClustersResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.ListClustersResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ListClustersResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ListClustersResponse + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of an UpdateClusterRequest. */ + interface IUpdateClusterRequest { + + /** UpdateClusterRequest updateMask */ + updateMask?: (google.protobuf.IFieldMask|null); + + /** UpdateClusterRequest cluster */ + cluster?: (google.cloud.redis.cluster.v1beta1.ICluster|null); + + /** UpdateClusterRequest requestId */ + requestId?: (string|null); + } + + /** Represents an UpdateClusterRequest. */ + class UpdateClusterRequest implements IUpdateClusterRequest { + + /** + * Constructs a new UpdateClusterRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest); + + /** UpdateClusterRequest updateMask. */ + public updateMask?: (google.protobuf.IFieldMask|null); + + /** UpdateClusterRequest cluster. */ + public cluster?: (google.cloud.redis.cluster.v1beta1.ICluster|null); + + /** UpdateClusterRequest requestId. */ + public requestId: string; + + /** + * Creates a new UpdateClusterRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns UpdateClusterRequest instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest): google.cloud.redis.cluster.v1beta1.UpdateClusterRequest; + + /** + * Encodes the specified UpdateClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.UpdateClusterRequest.verify|verify} messages. + * @param message UpdateClusterRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified UpdateClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.UpdateClusterRequest.verify|verify} messages. + * @param message UpdateClusterRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an UpdateClusterRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns UpdateClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.UpdateClusterRequest; + + /** + * Decodes an UpdateClusterRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns UpdateClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.UpdateClusterRequest; + + /** + * Verifies an UpdateClusterRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an UpdateClusterRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns UpdateClusterRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.UpdateClusterRequest; + + /** + * Creates a plain object from an UpdateClusterRequest message. Also converts values to other types if specified. + * @param message UpdateClusterRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.UpdateClusterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this UpdateClusterRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for UpdateClusterRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a GetClusterRequest. */ + interface IGetClusterRequest { + + /** GetClusterRequest name */ + name?: (string|null); + } + + /** Represents a GetClusterRequest. */ + class GetClusterRequest implements IGetClusterRequest { + + /** + * Constructs a new GetClusterRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.IGetClusterRequest); + + /** GetClusterRequest name. */ + public name: string; + + /** + * Creates a new GetClusterRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns GetClusterRequest instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.IGetClusterRequest): google.cloud.redis.cluster.v1beta1.GetClusterRequest; + + /** + * Encodes the specified GetClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetClusterRequest.verify|verify} messages. + * @param message GetClusterRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.IGetClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GetClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetClusterRequest.verify|verify} messages. + * @param message GetClusterRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IGetClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GetClusterRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GetClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.GetClusterRequest; + + /** + * Decodes a GetClusterRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GetClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.GetClusterRequest; + + /** + * Verifies a GetClusterRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a GetClusterRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GetClusterRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.GetClusterRequest; + + /** + * Creates a plain object from a GetClusterRequest message. Also converts values to other types if specified. + * @param message GetClusterRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.GetClusterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GetClusterRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for GetClusterRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a DeleteClusterRequest. */ + interface IDeleteClusterRequest { + + /** DeleteClusterRequest name */ + name?: (string|null); + + /** DeleteClusterRequest requestId */ + requestId?: (string|null); + } + + /** Represents a DeleteClusterRequest. */ + class DeleteClusterRequest implements IDeleteClusterRequest { + + /** + * Constructs a new DeleteClusterRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest); + + /** DeleteClusterRequest name. */ + public name: string; + + /** DeleteClusterRequest requestId. */ + public requestId: string; + + /** + * Creates a new DeleteClusterRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns DeleteClusterRequest instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest): google.cloud.redis.cluster.v1beta1.DeleteClusterRequest; + + /** + * Encodes the specified DeleteClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DeleteClusterRequest.verify|verify} messages. + * @param message DeleteClusterRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified DeleteClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DeleteClusterRequest.verify|verify} messages. + * @param message DeleteClusterRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DeleteClusterRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DeleteClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.DeleteClusterRequest; + + /** + * Decodes a DeleteClusterRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DeleteClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.DeleteClusterRequest; + + /** + * Verifies a DeleteClusterRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a DeleteClusterRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DeleteClusterRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.DeleteClusterRequest; + + /** + * Creates a plain object from a DeleteClusterRequest message. Also converts values to other types if specified. + * @param message DeleteClusterRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.DeleteClusterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DeleteClusterRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for DeleteClusterRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a GetClusterCertificateAuthorityRequest. */ + interface IGetClusterCertificateAuthorityRequest { + + /** GetClusterCertificateAuthorityRequest name */ + name?: (string|null); + } + + /** Represents a GetClusterCertificateAuthorityRequest. */ + class GetClusterCertificateAuthorityRequest implements IGetClusterCertificateAuthorityRequest { + + /** + * Constructs a new GetClusterCertificateAuthorityRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest); + + /** GetClusterCertificateAuthorityRequest name. */ + public name: string; + + /** + * Creates a new GetClusterCertificateAuthorityRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns GetClusterCertificateAuthorityRequest instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest): google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest; + + /** + * Encodes the specified GetClusterCertificateAuthorityRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest.verify|verify} messages. + * @param message GetClusterCertificateAuthorityRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GetClusterCertificateAuthorityRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest.verify|verify} messages. + * @param message GetClusterCertificateAuthorityRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GetClusterCertificateAuthorityRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GetClusterCertificateAuthorityRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest; + + /** + * Decodes a GetClusterCertificateAuthorityRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GetClusterCertificateAuthorityRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest; + + /** + * Verifies a GetClusterCertificateAuthorityRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a GetClusterCertificateAuthorityRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GetClusterCertificateAuthorityRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest; + + /** + * Creates a plain object from a GetClusterCertificateAuthorityRequest message. Also converts values to other types if specified. + * @param message GetClusterCertificateAuthorityRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GetClusterCertificateAuthorityRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for GetClusterCertificateAuthorityRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a ListBackupCollectionsRequest. */ + interface IListBackupCollectionsRequest { + + /** ListBackupCollectionsRequest parent */ + parent?: (string|null); + + /** ListBackupCollectionsRequest pageSize */ + pageSize?: (number|null); + + /** ListBackupCollectionsRequest pageToken */ + pageToken?: (string|null); + } + + /** Represents a ListBackupCollectionsRequest. */ + class ListBackupCollectionsRequest implements IListBackupCollectionsRequest { + + /** + * Constructs a new ListBackupCollectionsRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest); + + /** ListBackupCollectionsRequest parent. */ + public parent: string; + + /** ListBackupCollectionsRequest pageSize. */ + public pageSize: number; + + /** ListBackupCollectionsRequest pageToken. */ + public pageToken: string; + + /** + * Creates a new ListBackupCollectionsRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns ListBackupCollectionsRequest instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest): google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest; + + /** + * Encodes the specified ListBackupCollectionsRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest.verify|verify} messages. + * @param message ListBackupCollectionsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ListBackupCollectionsRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest.verify|verify} messages. + * @param message ListBackupCollectionsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListBackupCollectionsRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListBackupCollectionsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest; + + /** + * Decodes a ListBackupCollectionsRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListBackupCollectionsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest; + + /** + * Verifies a ListBackupCollectionsRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ListBackupCollectionsRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListBackupCollectionsRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest; + + /** + * Creates a plain object from a ListBackupCollectionsRequest message. Also converts values to other types if specified. + * @param message ListBackupCollectionsRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ListBackupCollectionsRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ListBackupCollectionsRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a ListBackupCollectionsResponse. */ + interface IListBackupCollectionsResponse { + + /** ListBackupCollectionsResponse backupCollections */ + backupCollections?: (google.cloud.redis.cluster.v1beta1.IBackupCollection[]|null); + + /** ListBackupCollectionsResponse nextPageToken */ + nextPageToken?: (string|null); + + /** ListBackupCollectionsResponse unreachable */ + unreachable?: (string[]|null); + } + + /** Represents a ListBackupCollectionsResponse. */ + class ListBackupCollectionsResponse implements IListBackupCollectionsResponse { + + /** + * Constructs a new ListBackupCollectionsResponse. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.IListBackupCollectionsResponse); + + /** ListBackupCollectionsResponse backupCollections. */ + public backupCollections: google.cloud.redis.cluster.v1beta1.IBackupCollection[]; + + /** ListBackupCollectionsResponse nextPageToken. */ + public nextPageToken: string; + + /** ListBackupCollectionsResponse unreachable. */ + public unreachable: string[]; + + /** + * Creates a new ListBackupCollectionsResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns ListBackupCollectionsResponse instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.IListBackupCollectionsResponse): google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse; + + /** + * Encodes the specified ListBackupCollectionsResponse message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse.verify|verify} messages. + * @param message ListBackupCollectionsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.IListBackupCollectionsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ListBackupCollectionsResponse message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse.verify|verify} messages. + * @param message ListBackupCollectionsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IListBackupCollectionsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListBackupCollectionsResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListBackupCollectionsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse; + + /** + * Decodes a ListBackupCollectionsResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListBackupCollectionsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse; + + /** + * Verifies a ListBackupCollectionsResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ListBackupCollectionsResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListBackupCollectionsResponse + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse; + + /** + * Creates a plain object from a ListBackupCollectionsResponse message. Also converts values to other types if specified. + * @param message ListBackupCollectionsResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ListBackupCollectionsResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ListBackupCollectionsResponse + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a GetBackupCollectionRequest. */ + interface IGetBackupCollectionRequest { + + /** GetBackupCollectionRequest name */ + name?: (string|null); + } + + /** Represents a GetBackupCollectionRequest. */ + class GetBackupCollectionRequest implements IGetBackupCollectionRequest { + + /** + * Constructs a new GetBackupCollectionRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest); + + /** GetBackupCollectionRequest name. */ + public name: string; + + /** + * Creates a new GetBackupCollectionRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns GetBackupCollectionRequest instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest): google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest; + + /** + * Encodes the specified GetBackupCollectionRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest.verify|verify} messages. + * @param message GetBackupCollectionRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GetBackupCollectionRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest.verify|verify} messages. + * @param message GetBackupCollectionRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GetBackupCollectionRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GetBackupCollectionRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest; + + /** + * Decodes a GetBackupCollectionRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GetBackupCollectionRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest; + + /** + * Verifies a GetBackupCollectionRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a GetBackupCollectionRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GetBackupCollectionRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest; + + /** + * Creates a plain object from a GetBackupCollectionRequest message. Also converts values to other types if specified. + * @param message GetBackupCollectionRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GetBackupCollectionRequest to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for Cluster + * Gets the default type url for GetBackupCollectionRequest * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - namespace Cluster { + /** Properties of a ListBackupsRequest. */ + interface IListBackupsRequest { - /** Properties of a StateInfo. */ - interface IStateInfo { + /** ListBackupsRequest parent */ + parent?: (string|null); - /** StateInfo updateInfo */ - updateInfo?: (google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo|null); - } + /** ListBackupsRequest pageSize */ + pageSize?: (number|null); - /** Represents a StateInfo. */ - class StateInfo implements IStateInfo { + /** ListBackupsRequest pageToken */ + pageToken?: (string|null); + } - /** - * Constructs a new StateInfo. - * @param [properties] Properties to set - */ - constructor(properties?: google.cloud.redis.cluster.v1.Cluster.IStateInfo); + /** Represents a ListBackupsRequest. */ + class ListBackupsRequest implements IListBackupsRequest { - /** StateInfo updateInfo. */ - public updateInfo?: (google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo|null); + /** + * Constructs a new ListBackupsRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.IListBackupsRequest); - /** StateInfo info. */ - public info?: "updateInfo"; + /** ListBackupsRequest parent. */ + public parent: string; - /** - * Creates a new StateInfo instance using the specified properties. - * @param [properties] Properties to set - * @returns StateInfo instance - */ - public static create(properties?: google.cloud.redis.cluster.v1.Cluster.IStateInfo): google.cloud.redis.cluster.v1.Cluster.StateInfo; + /** ListBackupsRequest pageSize. */ + public pageSize: number; - /** - * Encodes the specified StateInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.StateInfo.verify|verify} messages. - * @param message StateInfo message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.cloud.redis.cluster.v1.Cluster.IStateInfo, writer?: $protobuf.Writer): $protobuf.Writer; + /** ListBackupsRequest pageToken. */ + public pageToken: string; - /** - * Encodes the specified StateInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.StateInfo.verify|verify} messages. - * @param message StateInfo message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1.Cluster.IStateInfo, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a new ListBackupsRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns ListBackupsRequest instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.IListBackupsRequest): google.cloud.redis.cluster.v1beta1.ListBackupsRequest; - /** - * Decodes a StateInfo message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns StateInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.Cluster.StateInfo; + /** + * Encodes the specified ListBackupsRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListBackupsRequest.verify|verify} messages. + * @param message ListBackupsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.IListBackupsRequest, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes a StateInfo message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns StateInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.Cluster.StateInfo; + /** + * Encodes the specified ListBackupsRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListBackupsRequest.verify|verify} messages. + * @param message ListBackupsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IListBackupsRequest, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Verifies a StateInfo message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Decodes a ListBackupsRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListBackupsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.ListBackupsRequest; - /** - * Creates a StateInfo message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns StateInfo - */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.Cluster.StateInfo; + /** + * Decodes a ListBackupsRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListBackupsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.ListBackupsRequest; - /** - * Creates a plain object from a StateInfo message. Also converts values to other types if specified. - * @param message StateInfo - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.cloud.redis.cluster.v1.Cluster.StateInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Verifies a ListBackupsRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Converts this StateInfo to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; + /** + * Creates a ListBackupsRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListBackupsRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.ListBackupsRequest; - /** - * Gets the default type url for StateInfo - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } + /** + * Creates a plain object from a ListBackupsRequest message. Also converts values to other types if specified. + * @param message ListBackupsRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.ListBackupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - namespace StateInfo { + /** + * Converts this ListBackupsRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; - /** Properties of an UpdateInfo. */ - interface IUpdateInfo { + /** + * Gets the default type url for ListBackupsRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } - /** UpdateInfo targetShardCount */ - targetShardCount?: (number|null); + /** Properties of a ListBackupsResponse. */ + interface IListBackupsResponse { - /** UpdateInfo targetReplicaCount */ - targetReplicaCount?: (number|null); - } + /** ListBackupsResponse backups */ + backups?: (google.cloud.redis.cluster.v1beta1.IBackup[]|null); - /** Represents an UpdateInfo. */ - class UpdateInfo implements IUpdateInfo { + /** ListBackupsResponse nextPageToken */ + nextPageToken?: (string|null); - /** - * Constructs a new UpdateInfo. - * @param [properties] Properties to set - */ - constructor(properties?: google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo); + /** ListBackupsResponse unreachable */ + unreachable?: (string[]|null); + } - /** UpdateInfo targetShardCount. */ - public targetShardCount?: (number|null); + /** Represents a ListBackupsResponse. */ + class ListBackupsResponse implements IListBackupsResponse { - /** UpdateInfo targetReplicaCount. */ - public targetReplicaCount?: (number|null); + /** + * Constructs a new ListBackupsResponse. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.IListBackupsResponse); - /** UpdateInfo _targetShardCount. */ - public _targetShardCount?: "targetShardCount"; + /** ListBackupsResponse backups. */ + public backups: google.cloud.redis.cluster.v1beta1.IBackup[]; - /** UpdateInfo _targetReplicaCount. */ - public _targetReplicaCount?: "targetReplicaCount"; + /** ListBackupsResponse nextPageToken. */ + public nextPageToken: string; - /** - * Creates a new UpdateInfo instance using the specified properties. - * @param [properties] Properties to set - * @returns UpdateInfo instance - */ - public static create(properties?: google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo): google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo; + /** ListBackupsResponse unreachable. */ + public unreachable: string[]; - /** - * Encodes the specified UpdateInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo.verify|verify} messages. - * @param message UpdateInfo message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a new ListBackupsResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns ListBackupsResponse instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.IListBackupsResponse): google.cloud.redis.cluster.v1beta1.ListBackupsResponse; - /** - * Encodes the specified UpdateInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo.verify|verify} messages. - * @param message UpdateInfo message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Encodes the specified ListBackupsResponse message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListBackupsResponse.verify|verify} messages. + * @param message ListBackupsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.IListBackupsResponse, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes an UpdateInfo message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns UpdateInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo; + /** + * Encodes the specified ListBackupsResponse message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListBackupsResponse.verify|verify} messages. + * @param message ListBackupsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IListBackupsResponse, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes an UpdateInfo message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns UpdateInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo; + /** + * Decodes a ListBackupsResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListBackupsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.ListBackupsResponse; - /** - * Verifies an UpdateInfo message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Decodes a ListBackupsResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListBackupsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.ListBackupsResponse; - /** - * Creates an UpdateInfo message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns UpdateInfo - */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo; + /** + * Verifies a ListBackupsResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Creates a plain object from an UpdateInfo message. Also converts values to other types if specified. - * @param message UpdateInfo - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Creates a ListBackupsResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListBackupsResponse + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.ListBackupsResponse; - /** - * Converts this UpdateInfo to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; + /** + * Creates a plain object from a ListBackupsResponse message. Also converts values to other types if specified. + * @param message ListBackupsResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.ListBackupsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Gets the default type url for UpdateInfo - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - } + /** + * Converts this ListBackupsResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; - /** State enum. */ - enum State { - STATE_UNSPECIFIED = 0, - CREATING = 1, - ACTIVE = 2, - UPDATING = 3, - DELETING = 4 - } + /** + * Gets the default type url for ListBackupsResponse + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a PscConfig. */ - interface IPscConfig { + /** Properties of a GetBackupRequest. */ + interface IGetBackupRequest { - /** PscConfig network */ - network?: (string|null); + /** GetBackupRequest name */ + name?: (string|null); } - /** Represents a PscConfig. */ - class PscConfig implements IPscConfig { + /** Represents a GetBackupRequest. */ + class GetBackupRequest implements IGetBackupRequest { /** - * Constructs a new PscConfig. + * Constructs a new GetBackupRequest. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1.IPscConfig); + constructor(properties?: google.cloud.redis.cluster.v1beta1.IGetBackupRequest); - /** PscConfig network. */ - public network: string; + /** GetBackupRequest name. */ + public name: string; /** - * Creates a new PscConfig instance using the specified properties. + * Creates a new GetBackupRequest instance using the specified properties. * @param [properties] Properties to set - * @returns PscConfig instance + * @returns GetBackupRequest instance */ - public static create(properties?: google.cloud.redis.cluster.v1.IPscConfig): google.cloud.redis.cluster.v1.PscConfig; + public static create(properties?: google.cloud.redis.cluster.v1beta1.IGetBackupRequest): google.cloud.redis.cluster.v1beta1.GetBackupRequest; /** - * Encodes the specified PscConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.PscConfig.verify|verify} messages. - * @param message PscConfig message or plain object to encode + * Encodes the specified GetBackupRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetBackupRequest.verify|verify} messages. + * @param message GetBackupRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1.IPscConfig, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.IGetBackupRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified PscConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.PscConfig.verify|verify} messages. - * @param message PscConfig message or plain object to encode + * Encodes the specified GetBackupRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetBackupRequest.verify|verify} messages. + * @param message GetBackupRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1.IPscConfig, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IGetBackupRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a PscConfig message from the specified reader or buffer. + * Decodes a GetBackupRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns PscConfig + * @returns GetBackupRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.PscConfig; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.GetBackupRequest; /** - * Decodes a PscConfig message from the specified reader or buffer, length delimited. + * Decodes a GetBackupRequest message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns PscConfig + * @returns GetBackupRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.PscConfig; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.GetBackupRequest; /** - * Verifies a PscConfig message. + * Verifies a GetBackupRequest message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a PscConfig message from a plain object. Also converts values to their respective internal types. + * Creates a GetBackupRequest message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns PscConfig + * @returns GetBackupRequest */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.PscConfig; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.GetBackupRequest; /** - * Creates a plain object from a PscConfig message. Also converts values to other types if specified. - * @param message PscConfig + * Creates a plain object from a GetBackupRequest message. Also converts values to other types if specified. + * @param message GetBackupRequest * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1.PscConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.GetBackupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this PscConfig to JSON. + * Converts this GetBackupRequest to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for PscConfig + * Gets the default type url for GetBackupRequest * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a DiscoveryEndpoint. */ - interface IDiscoveryEndpoint { - - /** DiscoveryEndpoint address */ - address?: (string|null); + /** Properties of a DeleteBackupRequest. */ + interface IDeleteBackupRequest { - /** DiscoveryEndpoint port */ - port?: (number|null); + /** DeleteBackupRequest name */ + name?: (string|null); - /** DiscoveryEndpoint pscConfig */ - pscConfig?: (google.cloud.redis.cluster.v1.IPscConfig|null); + /** DeleteBackupRequest requestId */ + requestId?: (string|null); } - /** Represents a DiscoveryEndpoint. */ - class DiscoveryEndpoint implements IDiscoveryEndpoint { + /** Represents a DeleteBackupRequest. */ + class DeleteBackupRequest implements IDeleteBackupRequest { /** - * Constructs a new DiscoveryEndpoint. + * Constructs a new DeleteBackupRequest. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1.IDiscoveryEndpoint); - - /** DiscoveryEndpoint address. */ - public address: string; + constructor(properties?: google.cloud.redis.cluster.v1beta1.IDeleteBackupRequest); - /** DiscoveryEndpoint port. */ - public port: number; + /** DeleteBackupRequest name. */ + public name: string; - /** DiscoveryEndpoint pscConfig. */ - public pscConfig?: (google.cloud.redis.cluster.v1.IPscConfig|null); + /** DeleteBackupRequest requestId. */ + public requestId: string; /** - * Creates a new DiscoveryEndpoint instance using the specified properties. + * Creates a new DeleteBackupRequest instance using the specified properties. * @param [properties] Properties to set - * @returns DiscoveryEndpoint instance + * @returns DeleteBackupRequest instance */ - public static create(properties?: google.cloud.redis.cluster.v1.IDiscoveryEndpoint): google.cloud.redis.cluster.v1.DiscoveryEndpoint; + public static create(properties?: google.cloud.redis.cluster.v1beta1.IDeleteBackupRequest): google.cloud.redis.cluster.v1beta1.DeleteBackupRequest; /** - * Encodes the specified DiscoveryEndpoint message. Does not implicitly {@link google.cloud.redis.cluster.v1.DiscoveryEndpoint.verify|verify} messages. - * @param message DiscoveryEndpoint message or plain object to encode + * Encodes the specified DeleteBackupRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DeleteBackupRequest.verify|verify} messages. + * @param message DeleteBackupRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1.IDiscoveryEndpoint, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.IDeleteBackupRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified DiscoveryEndpoint message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.DiscoveryEndpoint.verify|verify} messages. - * @param message DiscoveryEndpoint message or plain object to encode + * Encodes the specified DeleteBackupRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DeleteBackupRequest.verify|verify} messages. + * @param message DeleteBackupRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1.IDiscoveryEndpoint, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IDeleteBackupRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a DiscoveryEndpoint message from the specified reader or buffer. + * Decodes a DeleteBackupRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns DiscoveryEndpoint + * @returns DeleteBackupRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.DiscoveryEndpoint; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.DeleteBackupRequest; /** - * Decodes a DiscoveryEndpoint message from the specified reader or buffer, length delimited. + * Decodes a DeleteBackupRequest message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns DiscoveryEndpoint + * @returns DeleteBackupRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.DiscoveryEndpoint; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.DeleteBackupRequest; /** - * Verifies a DiscoveryEndpoint message. + * Verifies a DeleteBackupRequest message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a DiscoveryEndpoint message from a plain object. Also converts values to their respective internal types. + * Creates a DeleteBackupRequest message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns DiscoveryEndpoint + * @returns DeleteBackupRequest */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.DiscoveryEndpoint; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.DeleteBackupRequest; /** - * Creates a plain object from a DiscoveryEndpoint message. Also converts values to other types if specified. - * @param message DiscoveryEndpoint + * Creates a plain object from a DeleteBackupRequest message. Also converts values to other types if specified. + * @param message DeleteBackupRequest * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1.DiscoveryEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.DeleteBackupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this DiscoveryEndpoint to JSON. + * Converts this DeleteBackupRequest to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for DiscoveryEndpoint + * Gets the default type url for DeleteBackupRequest * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a PscConnection. */ - interface IPscConnection { - - /** PscConnection pscConnectionId */ - pscConnectionId?: (string|null); - - /** PscConnection address */ - address?: (string|null); + /** Properties of an ExportBackupRequest. */ + interface IExportBackupRequest { - /** PscConnection forwardingRule */ - forwardingRule?: (string|null); - - /** PscConnection projectId */ - projectId?: (string|null); + /** ExportBackupRequest gcsBucket */ + gcsBucket?: (string|null); - /** PscConnection network */ - network?: (string|null); + /** ExportBackupRequest name */ + name?: (string|null); } - /** Represents a PscConnection. */ - class PscConnection implements IPscConnection { + /** Represents an ExportBackupRequest. */ + class ExportBackupRequest implements IExportBackupRequest { /** - * Constructs a new PscConnection. + * Constructs a new ExportBackupRequest. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1.IPscConnection); - - /** PscConnection pscConnectionId. */ - public pscConnectionId: string; - - /** PscConnection address. */ - public address: string; + constructor(properties?: google.cloud.redis.cluster.v1beta1.IExportBackupRequest); - /** PscConnection forwardingRule. */ - public forwardingRule: string; + /** ExportBackupRequest gcsBucket. */ + public gcsBucket?: (string|null); - /** PscConnection projectId. */ - public projectId: string; + /** ExportBackupRequest name. */ + public name: string; - /** PscConnection network. */ - public network: string; + /** ExportBackupRequest destination. */ + public destination?: "gcsBucket"; /** - * Creates a new PscConnection instance using the specified properties. + * Creates a new ExportBackupRequest instance using the specified properties. * @param [properties] Properties to set - * @returns PscConnection instance + * @returns ExportBackupRequest instance */ - public static create(properties?: google.cloud.redis.cluster.v1.IPscConnection): google.cloud.redis.cluster.v1.PscConnection; + public static create(properties?: google.cloud.redis.cluster.v1beta1.IExportBackupRequest): google.cloud.redis.cluster.v1beta1.ExportBackupRequest; /** - * Encodes the specified PscConnection message. Does not implicitly {@link google.cloud.redis.cluster.v1.PscConnection.verify|verify} messages. - * @param message PscConnection message or plain object to encode + * Encodes the specified ExportBackupRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ExportBackupRequest.verify|verify} messages. + * @param message ExportBackupRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1.IPscConnection, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.IExportBackupRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified PscConnection message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.PscConnection.verify|verify} messages. - * @param message PscConnection message or plain object to encode + * Encodes the specified ExportBackupRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ExportBackupRequest.verify|verify} messages. + * @param message ExportBackupRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1.IPscConnection, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IExportBackupRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a PscConnection message from the specified reader or buffer. + * Decodes an ExportBackupRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns PscConnection + * @returns ExportBackupRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.PscConnection; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.ExportBackupRequest; /** - * Decodes a PscConnection message from the specified reader or buffer, length delimited. + * Decodes an ExportBackupRequest message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns PscConnection + * @returns ExportBackupRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.PscConnection; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.ExportBackupRequest; /** - * Verifies a PscConnection message. + * Verifies an ExportBackupRequest message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a PscConnection message from a plain object. Also converts values to their respective internal types. + * Creates an ExportBackupRequest message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns PscConnection + * @returns ExportBackupRequest */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.PscConnection; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.ExportBackupRequest; /** - * Creates a plain object from a PscConnection message. Also converts values to other types if specified. - * @param message PscConnection + * Creates a plain object from an ExportBackupRequest message. Also converts values to other types if specified. + * @param message ExportBackupRequest * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1.PscConnection, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.ExportBackupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this PscConnection to JSON. + * Converts this ExportBackupRequest to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for PscConnection + * Gets the default type url for ExportBackupRequest * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of an OperationMetadata. */ - interface IOperationMetadata { - - /** OperationMetadata createTime */ - createTime?: (google.protobuf.ITimestamp|null); - - /** OperationMetadata endTime */ - endTime?: (google.protobuf.ITimestamp|null); - - /** OperationMetadata target */ - target?: (string|null); - - /** OperationMetadata verb */ - verb?: (string|null); + /** Properties of a BackupClusterRequest. */ + interface IBackupClusterRequest { - /** OperationMetadata statusMessage */ - statusMessage?: (string|null); + /** BackupClusterRequest name */ + name?: (string|null); - /** OperationMetadata requestedCancellation */ - requestedCancellation?: (boolean|null); + /** BackupClusterRequest ttl */ + ttl?: (google.protobuf.IDuration|null); - /** OperationMetadata apiVersion */ - apiVersion?: (string|null); + /** BackupClusterRequest backupId */ + backupId?: (string|null); } - /** Represents an OperationMetadata. */ - class OperationMetadata implements IOperationMetadata { + /** Represents a BackupClusterRequest. */ + class BackupClusterRequest implements IBackupClusterRequest { /** - * Constructs a new OperationMetadata. + * Constructs a new BackupClusterRequest. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1.IOperationMetadata); - - /** OperationMetadata createTime. */ - public createTime?: (google.protobuf.ITimestamp|null); - - /** OperationMetadata endTime. */ - public endTime?: (google.protobuf.ITimestamp|null); + constructor(properties?: google.cloud.redis.cluster.v1beta1.IBackupClusterRequest); - /** OperationMetadata target. */ - public target: string; - - /** OperationMetadata verb. */ - public verb: string; + /** BackupClusterRequest name. */ + public name: string; - /** OperationMetadata statusMessage. */ - public statusMessage: string; + /** BackupClusterRequest ttl. */ + public ttl?: (google.protobuf.IDuration|null); - /** OperationMetadata requestedCancellation. */ - public requestedCancellation: boolean; + /** BackupClusterRequest backupId. */ + public backupId?: (string|null); - /** OperationMetadata apiVersion. */ - public apiVersion: string; + /** BackupClusterRequest _backupId. */ + public _backupId?: "backupId"; /** - * Creates a new OperationMetadata instance using the specified properties. + * Creates a new BackupClusterRequest instance using the specified properties. * @param [properties] Properties to set - * @returns OperationMetadata instance + * @returns BackupClusterRequest instance */ - public static create(properties?: google.cloud.redis.cluster.v1.IOperationMetadata): google.cloud.redis.cluster.v1.OperationMetadata; + public static create(properties?: google.cloud.redis.cluster.v1beta1.IBackupClusterRequest): google.cloud.redis.cluster.v1beta1.BackupClusterRequest; /** - * Encodes the specified OperationMetadata message. Does not implicitly {@link google.cloud.redis.cluster.v1.OperationMetadata.verify|verify} messages. - * @param message OperationMetadata message or plain object to encode + * Encodes the specified BackupClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.BackupClusterRequest.verify|verify} messages. + * @param message BackupClusterRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1.IOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.IBackupClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified OperationMetadata message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.OperationMetadata.verify|verify} messages. - * @param message OperationMetadata message or plain object to encode + * Encodes the specified BackupClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.BackupClusterRequest.verify|verify} messages. + * @param message BackupClusterRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1.IOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IBackupClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes an OperationMetadata message from the specified reader or buffer. + * Decodes a BackupClusterRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns OperationMetadata + * @returns BackupClusterRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.OperationMetadata; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.BackupClusterRequest; /** - * Decodes an OperationMetadata message from the specified reader or buffer, length delimited. + * Decodes a BackupClusterRequest message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns OperationMetadata + * @returns BackupClusterRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.OperationMetadata; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.BackupClusterRequest; /** - * Verifies an OperationMetadata message. + * Verifies a BackupClusterRequest message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates an OperationMetadata message from a plain object. Also converts values to their respective internal types. + * Creates a BackupClusterRequest message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns OperationMetadata + * @returns BackupClusterRequest */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.OperationMetadata; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.BackupClusterRequest; /** - * Creates a plain object from an OperationMetadata message. Also converts values to other types if specified. - * @param message OperationMetadata + * Creates a plain object from a BackupClusterRequest message. Also converts values to other types if specified. + * @param message BackupClusterRequest * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1.OperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.BackupClusterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this OperationMetadata to JSON. + * Converts this BackupClusterRequest to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for OperationMetadata + * Gets the default type url for BackupClusterRequest * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a CertificateAuthority. */ - interface ICertificateAuthority { + /** Properties of a Cluster. */ + interface ICluster { - /** CertificateAuthority managedServerCa */ - managedServerCa?: (google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority|null); + /** Cluster gcsSource */ + gcsSource?: (google.cloud.redis.cluster.v1beta1.Cluster.IGcsBackupSource|null); - /** CertificateAuthority name */ + /** Cluster managedBackupSource */ + managedBackupSource?: (google.cloud.redis.cluster.v1beta1.Cluster.IManagedBackupSource|null); + + /** Cluster name */ name?: (string|null); + + /** Cluster createTime */ + createTime?: (google.protobuf.ITimestamp|null); + + /** Cluster state */ + state?: (google.cloud.redis.cluster.v1beta1.Cluster.State|keyof typeof google.cloud.redis.cluster.v1beta1.Cluster.State|null); + + /** Cluster uid */ + uid?: (string|null); + + /** Cluster replicaCount */ + replicaCount?: (number|null); + + /** Cluster authorizationMode */ + authorizationMode?: (google.cloud.redis.cluster.v1beta1.AuthorizationMode|keyof typeof google.cloud.redis.cluster.v1beta1.AuthorizationMode|null); + + /** Cluster transitEncryptionMode */ + transitEncryptionMode?: (google.cloud.redis.cluster.v1beta1.TransitEncryptionMode|keyof typeof google.cloud.redis.cluster.v1beta1.TransitEncryptionMode|null); + + /** Cluster sizeGb */ + sizeGb?: (number|null); + + /** Cluster shardCount */ + shardCount?: (number|null); + + /** Cluster pscConfigs */ + pscConfigs?: (google.cloud.redis.cluster.v1beta1.IPscConfig[]|null); + + /** Cluster discoveryEndpoints */ + discoveryEndpoints?: (google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint[]|null); + + /** Cluster pscConnections */ + pscConnections?: (google.cloud.redis.cluster.v1beta1.IPscConnection[]|null); + + /** Cluster stateInfo */ + stateInfo?: (google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo|null); + + /** Cluster nodeType */ + nodeType?: (google.cloud.redis.cluster.v1beta1.NodeType|keyof typeof google.cloud.redis.cluster.v1beta1.NodeType|null); + + /** Cluster persistenceConfig */ + persistenceConfig?: (google.cloud.redis.cluster.v1beta1.IClusterPersistenceConfig|null); + + /** Cluster redisConfigs */ + redisConfigs?: ({ [k: string]: string }|null); + + /** Cluster preciseSizeGb */ + preciseSizeGb?: (number|null); + + /** Cluster zoneDistributionConfig */ + zoneDistributionConfig?: (google.cloud.redis.cluster.v1beta1.IZoneDistributionConfig|null); + + /** Cluster crossClusterReplicationConfig */ + crossClusterReplicationConfig?: (google.cloud.redis.cluster.v1beta1.ICrossClusterReplicationConfig|null); + + /** Cluster deletionProtectionEnabled */ + deletionProtectionEnabled?: (boolean|null); + + /** Cluster maintenancePolicy */ + maintenancePolicy?: (google.cloud.redis.cluster.v1beta1.IClusterMaintenancePolicy|null); + + /** Cluster maintenanceSchedule */ + maintenanceSchedule?: (google.cloud.redis.cluster.v1beta1.IClusterMaintenanceSchedule|null); + + /** Cluster pscServiceAttachments */ + pscServiceAttachments?: (google.cloud.redis.cluster.v1beta1.IPscServiceAttachment[]|null); + + /** Cluster clusterEndpoints */ + clusterEndpoints?: (google.cloud.redis.cluster.v1beta1.IClusterEndpoint[]|null); + + /** Cluster backupCollection */ + backupCollection?: (string|null); + + /** Cluster kmsKey */ + kmsKey?: (string|null); + + /** Cluster automatedBackupConfig */ + automatedBackupConfig?: (google.cloud.redis.cluster.v1beta1.IAutomatedBackupConfig|null); + + /** Cluster encryptionInfo */ + encryptionInfo?: (google.cloud.redis.cluster.v1beta1.IEncryptionInfo|null); } - /** Represents a CertificateAuthority. */ - class CertificateAuthority implements ICertificateAuthority { + /** Represents a Cluster. */ + class Cluster implements ICluster { /** - * Constructs a new CertificateAuthority. + * Constructs a new Cluster. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1.ICertificateAuthority); + constructor(properties?: google.cloud.redis.cluster.v1beta1.ICluster); - /** CertificateAuthority managedServerCa. */ - public managedServerCa?: (google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority|null); + /** Cluster gcsSource. */ + public gcsSource?: (google.cloud.redis.cluster.v1beta1.Cluster.IGcsBackupSource|null); - /** CertificateAuthority name. */ + /** Cluster managedBackupSource. */ + public managedBackupSource?: (google.cloud.redis.cluster.v1beta1.Cluster.IManagedBackupSource|null); + + /** Cluster name. */ public name: string; - /** CertificateAuthority serverCa. */ - public serverCa?: "managedServerCa"; + /** Cluster createTime. */ + public createTime?: (google.protobuf.ITimestamp|null); + + /** Cluster state. */ + public state: (google.cloud.redis.cluster.v1beta1.Cluster.State|keyof typeof google.cloud.redis.cluster.v1beta1.Cluster.State); + + /** Cluster uid. */ + public uid: string; + + /** Cluster replicaCount. */ + public replicaCount?: (number|null); + + /** Cluster authorizationMode. */ + public authorizationMode: (google.cloud.redis.cluster.v1beta1.AuthorizationMode|keyof typeof google.cloud.redis.cluster.v1beta1.AuthorizationMode); + + /** Cluster transitEncryptionMode. */ + public transitEncryptionMode: (google.cloud.redis.cluster.v1beta1.TransitEncryptionMode|keyof typeof google.cloud.redis.cluster.v1beta1.TransitEncryptionMode); + + /** Cluster sizeGb. */ + public sizeGb?: (number|null); + + /** Cluster shardCount. */ + public shardCount?: (number|null); + + /** Cluster pscConfigs. */ + public pscConfigs: google.cloud.redis.cluster.v1beta1.IPscConfig[]; + + /** Cluster discoveryEndpoints. */ + public discoveryEndpoints: google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint[]; + + /** Cluster pscConnections. */ + public pscConnections: google.cloud.redis.cluster.v1beta1.IPscConnection[]; + + /** Cluster stateInfo. */ + public stateInfo?: (google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo|null); + + /** Cluster nodeType. */ + public nodeType: (google.cloud.redis.cluster.v1beta1.NodeType|keyof typeof google.cloud.redis.cluster.v1beta1.NodeType); + + /** Cluster persistenceConfig. */ + public persistenceConfig?: (google.cloud.redis.cluster.v1beta1.IClusterPersistenceConfig|null); + + /** Cluster redisConfigs. */ + public redisConfigs: { [k: string]: string }; + + /** Cluster preciseSizeGb. */ + public preciseSizeGb?: (number|null); + + /** Cluster zoneDistributionConfig. */ + public zoneDistributionConfig?: (google.cloud.redis.cluster.v1beta1.IZoneDistributionConfig|null); + + /** Cluster crossClusterReplicationConfig. */ + public crossClusterReplicationConfig?: (google.cloud.redis.cluster.v1beta1.ICrossClusterReplicationConfig|null); + + /** Cluster deletionProtectionEnabled. */ + public deletionProtectionEnabled?: (boolean|null); + + /** Cluster maintenancePolicy. */ + public maintenancePolicy?: (google.cloud.redis.cluster.v1beta1.IClusterMaintenancePolicy|null); + + /** Cluster maintenanceSchedule. */ + public maintenanceSchedule?: (google.cloud.redis.cluster.v1beta1.IClusterMaintenanceSchedule|null); + + /** Cluster pscServiceAttachments. */ + public pscServiceAttachments: google.cloud.redis.cluster.v1beta1.IPscServiceAttachment[]; + + /** Cluster clusterEndpoints. */ + public clusterEndpoints: google.cloud.redis.cluster.v1beta1.IClusterEndpoint[]; + + /** Cluster backupCollection. */ + public backupCollection?: (string|null); + + /** Cluster kmsKey. */ + public kmsKey?: (string|null); + + /** Cluster automatedBackupConfig. */ + public automatedBackupConfig?: (google.cloud.redis.cluster.v1beta1.IAutomatedBackupConfig|null); + + /** Cluster encryptionInfo. */ + public encryptionInfo?: (google.cloud.redis.cluster.v1beta1.IEncryptionInfo|null); + + /** Cluster importSources. */ + public importSources?: ("gcsSource"|"managedBackupSource"); + + /** Cluster _replicaCount. */ + public _replicaCount?: "replicaCount"; + + /** Cluster _sizeGb. */ + public _sizeGb?: "sizeGb"; + + /** Cluster _shardCount. */ + public _shardCount?: "shardCount"; + + /** Cluster _preciseSizeGb. */ + public _preciseSizeGb?: "preciseSizeGb"; + + /** Cluster _deletionProtectionEnabled. */ + public _deletionProtectionEnabled?: "deletionProtectionEnabled"; + + /** Cluster _maintenancePolicy. */ + public _maintenancePolicy?: "maintenancePolicy"; + + /** Cluster _maintenanceSchedule. */ + public _maintenanceSchedule?: "maintenanceSchedule"; + + /** Cluster _backupCollection. */ + public _backupCollection?: "backupCollection"; + + /** Cluster _kmsKey. */ + public _kmsKey?: "kmsKey"; /** - * Creates a new CertificateAuthority instance using the specified properties. + * Creates a new Cluster instance using the specified properties. * @param [properties] Properties to set - * @returns CertificateAuthority instance + * @returns Cluster instance */ - public static create(properties?: google.cloud.redis.cluster.v1.ICertificateAuthority): google.cloud.redis.cluster.v1.CertificateAuthority; + public static create(properties?: google.cloud.redis.cluster.v1beta1.ICluster): google.cloud.redis.cluster.v1beta1.Cluster; /** - * Encodes the specified CertificateAuthority message. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.verify|verify} messages. - * @param message CertificateAuthority message or plain object to encode + * Encodes the specified Cluster message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.verify|verify} messages. + * @param message Cluster message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1.ICertificateAuthority, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.ICluster, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CertificateAuthority message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.verify|verify} messages. - * @param message CertificateAuthority message or plain object to encode + * Encodes the specified Cluster message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.verify|verify} messages. + * @param message Cluster message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1.ICertificateAuthority, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.ICluster, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CertificateAuthority message from the specified reader or buffer. + * Decodes a Cluster message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CertificateAuthority + * @returns Cluster * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.CertificateAuthority; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.Cluster; /** - * Decodes a CertificateAuthority message from the specified reader or buffer, length delimited. + * Decodes a Cluster message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CertificateAuthority + * @returns Cluster * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.CertificateAuthority; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.Cluster; /** - * Verifies a CertificateAuthority message. + * Verifies a Cluster message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a CertificateAuthority message from a plain object. Also converts values to their respective internal types. + * Creates a Cluster message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CertificateAuthority + * @returns Cluster */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.CertificateAuthority; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.Cluster; /** - * Creates a plain object from a CertificateAuthority message. Also converts values to other types if specified. - * @param message CertificateAuthority + * Creates a plain object from a Cluster message. Also converts values to other types if specified. + * @param message Cluster * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1.CertificateAuthority, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.Cluster, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this CertificateAuthority to JSON. + * Converts this Cluster to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for CertificateAuthority + * Gets the default type url for Cluster * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - namespace CertificateAuthority { + namespace Cluster { - /** Properties of a ManagedCertificateAuthority. */ - interface IManagedCertificateAuthority { + /** Properties of a StateInfo. */ + interface IStateInfo { - /** ManagedCertificateAuthority caCerts */ - caCerts?: (google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain[]|null); + /** StateInfo updateInfo */ + updateInfo?: (google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo|null); } - /** Represents a ManagedCertificateAuthority. */ - class ManagedCertificateAuthority implements IManagedCertificateAuthority { + /** Represents a StateInfo. */ + class StateInfo implements IStateInfo { /** - * Constructs a new ManagedCertificateAuthority. + * Constructs a new StateInfo. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority); + constructor(properties?: google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo); - /** ManagedCertificateAuthority caCerts. */ - public caCerts: google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain[]; + /** StateInfo updateInfo. */ + public updateInfo?: (google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo|null); + + /** StateInfo info. */ + public info?: "updateInfo"; /** - * Creates a new ManagedCertificateAuthority instance using the specified properties. + * Creates a new StateInfo instance using the specified properties. * @param [properties] Properties to set - * @returns ManagedCertificateAuthority instance + * @returns StateInfo instance */ - public static create(properties?: google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority): google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority; + public static create(properties?: google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo): google.cloud.redis.cluster.v1beta1.Cluster.StateInfo; /** - * Encodes the specified ManagedCertificateAuthority message. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.verify|verify} messages. - * @param message ManagedCertificateAuthority message or plain object to encode + * Encodes the specified StateInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.verify|verify} messages. + * @param message StateInfo message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified ManagedCertificateAuthority message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.verify|verify} messages. - * @param message ManagedCertificateAuthority message or plain object to encode + * Encodes the specified StateInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.verify|verify} messages. + * @param message StateInfo message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a ManagedCertificateAuthority message from the specified reader or buffer. + * Decodes a StateInfo message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ManagedCertificateAuthority + * @returns StateInfo * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.Cluster.StateInfo; /** - * Decodes a ManagedCertificateAuthority message from the specified reader or buffer, length delimited. + * Decodes a StateInfo message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns ManagedCertificateAuthority + * @returns StateInfo * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.Cluster.StateInfo; /** - * Verifies a ManagedCertificateAuthority message. + * Verifies a StateInfo message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a ManagedCertificateAuthority message from a plain object. Also converts values to their respective internal types. + * Creates a StateInfo message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns ManagedCertificateAuthority + * @returns StateInfo */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.Cluster.StateInfo; /** - * Creates a plain object from a ManagedCertificateAuthority message. Also converts values to other types if specified. - * @param message ManagedCertificateAuthority + * Creates a plain object from a StateInfo message. Also converts values to other types if specified. + * @param message StateInfo * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.Cluster.StateInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this ManagedCertificateAuthority to JSON. + * Converts this StateInfo to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for ManagedCertificateAuthority + * Gets the default type url for StateInfo * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - namespace ManagedCertificateAuthority { + namespace StateInfo { - /** Properties of a CertChain. */ - interface ICertChain { + /** Properties of an UpdateInfo. */ + interface IUpdateInfo { - /** CertChain certificates */ - certificates?: (string[]|null); + /** UpdateInfo targetShardCount */ + targetShardCount?: (number|null); + + /** UpdateInfo targetReplicaCount */ + targetReplicaCount?: (number|null); } - /** Represents a CertChain. */ - class CertChain implements ICertChain { + /** Represents an UpdateInfo. */ + class UpdateInfo implements IUpdateInfo { /** - * Constructs a new CertChain. + * Constructs a new UpdateInfo. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain); + constructor(properties?: google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo); - /** CertChain certificates. */ - public certificates: string[]; + /** UpdateInfo targetShardCount. */ + public targetShardCount?: (number|null); + + /** UpdateInfo targetReplicaCount. */ + public targetReplicaCount?: (number|null); + + /** UpdateInfo _targetShardCount. */ + public _targetShardCount?: "targetShardCount"; + + /** UpdateInfo _targetReplicaCount. */ + public _targetReplicaCount?: "targetReplicaCount"; /** - * Creates a new CertChain instance using the specified properties. + * Creates a new UpdateInfo instance using the specified properties. * @param [properties] Properties to set - * @returns CertChain instance + * @returns UpdateInfo instance */ - public static create(properties?: google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain): google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain; + public static create(properties?: google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo): google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo; /** - * Encodes the specified CertChain message. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.verify|verify} messages. - * @param message CertChain message or plain object to encode + * Encodes the specified UpdateInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo.verify|verify} messages. + * @param message UpdateInfo message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CertChain message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.verify|verify} messages. - * @param message CertChain message or plain object to encode + * Encodes the specified UpdateInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo.verify|verify} messages. + * @param message UpdateInfo message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CertChain message from the specified reader or buffer. + * Decodes an UpdateInfo message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CertChain + * @returns UpdateInfo * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo; /** - * Decodes a CertChain message from the specified reader or buffer, length delimited. + * Decodes an UpdateInfo message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CertChain + * @returns UpdateInfo * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo; /** - * Verifies a CertChain message. + * Verifies an UpdateInfo message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a CertChain message from a plain object. Also converts values to their respective internal types. + * Creates an UpdateInfo message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CertChain + * @returns UpdateInfo */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo; /** - * Creates a plain object from a CertChain message. Also converts values to other types if specified. - * @param message CertChain + * Creates a plain object from an UpdateInfo message. Also converts values to other types if specified. + * @param message UpdateInfo * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this CertChain to JSON. + * Converts this UpdateInfo to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; - /** - * Gets the default type url for CertChain - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } + /** + * Gets the default type url for UpdateInfo + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + } + + /** Properties of a GcsBackupSource. */ + interface IGcsBackupSource { + + /** GcsBackupSource uris */ + uris?: (string[]|null); + } + + /** Represents a GcsBackupSource. */ + class GcsBackupSource implements IGcsBackupSource { + + /** + * Constructs a new GcsBackupSource. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.Cluster.IGcsBackupSource); + + /** GcsBackupSource uris. */ + public uris: string[]; + + /** + * Creates a new GcsBackupSource instance using the specified properties. + * @param [properties] Properties to set + * @returns GcsBackupSource instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.Cluster.IGcsBackupSource): google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource; + + /** + * Encodes the specified GcsBackupSource message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource.verify|verify} messages. + * @param message GcsBackupSource message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.Cluster.IGcsBackupSource, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GcsBackupSource message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource.verify|verify} messages. + * @param message GcsBackupSource message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.Cluster.IGcsBackupSource, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GcsBackupSource message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GcsBackupSource + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource; + + /** + * Decodes a GcsBackupSource message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GcsBackupSource + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource; + + /** + * Verifies a GcsBackupSource message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a GcsBackupSource message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GcsBackupSource + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource; + + /** + * Creates a plain object from a GcsBackupSource message. Also converts values to other types if specified. + * @param message GcsBackupSource + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GcsBackupSource to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for GcsBackupSource + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a ManagedBackupSource. */ + interface IManagedBackupSource { + + /** ManagedBackupSource backup */ + backup?: (string|null); + } + + /** Represents a ManagedBackupSource. */ + class ManagedBackupSource implements IManagedBackupSource { + + /** + * Constructs a new ManagedBackupSource. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.Cluster.IManagedBackupSource); + + /** ManagedBackupSource backup. */ + public backup: string; + + /** + * Creates a new ManagedBackupSource instance using the specified properties. + * @param [properties] Properties to set + * @returns ManagedBackupSource instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.Cluster.IManagedBackupSource): google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource; + + /** + * Encodes the specified ManagedBackupSource message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource.verify|verify} messages. + * @param message ManagedBackupSource message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.Cluster.IManagedBackupSource, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ManagedBackupSource message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource.verify|verify} messages. + * @param message ManagedBackupSource message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.Cluster.IManagedBackupSource, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ManagedBackupSource message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ManagedBackupSource + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource; + + /** + * Decodes a ManagedBackupSource message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ManagedBackupSource + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource; + + /** + * Verifies a ManagedBackupSource message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ManagedBackupSource message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ManagedBackupSource + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource; + + /** + * Creates a plain object from a ManagedBackupSource message. Also converts values to other types if specified. + * @param message ManagedBackupSource + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ManagedBackupSource to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ManagedBackupSource + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** State enum. */ + enum State { + STATE_UNSPECIFIED = 0, + CREATING = 1, + ACTIVE = 2, + UPDATING = 3, + DELETING = 4 } } - /** Properties of a ClusterPersistenceConfig. */ - interface IClusterPersistenceConfig { + /** Properties of an AutomatedBackupConfig. */ + interface IAutomatedBackupConfig { - /** ClusterPersistenceConfig mode */ - mode?: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceMode|keyof typeof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceMode|null); + /** AutomatedBackupConfig fixedFrequencySchedule */ + fixedFrequencySchedule?: (google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.IFixedFrequencySchedule|null); - /** ClusterPersistenceConfig rdbConfig */ - rdbConfig?: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig|null); + /** AutomatedBackupConfig automatedBackupMode */ + automatedBackupMode?: (google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.AutomatedBackupMode|keyof typeof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.AutomatedBackupMode|null); - /** ClusterPersistenceConfig aofConfig */ - aofConfig?: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig|null); + /** AutomatedBackupConfig retention */ + retention?: (google.protobuf.IDuration|null); } - /** Represents a ClusterPersistenceConfig. */ - class ClusterPersistenceConfig implements IClusterPersistenceConfig { + /** Represents an AutomatedBackupConfig. */ + class AutomatedBackupConfig implements IAutomatedBackupConfig { /** - * Constructs a new ClusterPersistenceConfig. + * Constructs a new AutomatedBackupConfig. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1.IClusterPersistenceConfig); + constructor(properties?: google.cloud.redis.cluster.v1beta1.IAutomatedBackupConfig); - /** ClusterPersistenceConfig mode. */ - public mode: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceMode|keyof typeof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceMode); + /** AutomatedBackupConfig fixedFrequencySchedule. */ + public fixedFrequencySchedule?: (google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.IFixedFrequencySchedule|null); - /** ClusterPersistenceConfig rdbConfig. */ - public rdbConfig?: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig|null); + /** AutomatedBackupConfig automatedBackupMode. */ + public automatedBackupMode: (google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.AutomatedBackupMode|keyof typeof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.AutomatedBackupMode); - /** ClusterPersistenceConfig aofConfig. */ - public aofConfig?: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig|null); + /** AutomatedBackupConfig retention. */ + public retention?: (google.protobuf.IDuration|null); + + /** AutomatedBackupConfig schedule. */ + public schedule?: "fixedFrequencySchedule"; + + /** AutomatedBackupConfig _retention. */ + public _retention?: "retention"; /** - * Creates a new ClusterPersistenceConfig instance using the specified properties. + * Creates a new AutomatedBackupConfig instance using the specified properties. * @param [properties] Properties to set - * @returns ClusterPersistenceConfig instance + * @returns AutomatedBackupConfig instance */ - public static create(properties?: google.cloud.redis.cluster.v1.IClusterPersistenceConfig): google.cloud.redis.cluster.v1.ClusterPersistenceConfig; + public static create(properties?: google.cloud.redis.cluster.v1beta1.IAutomatedBackupConfig): google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig; /** - * Encodes the specified ClusterPersistenceConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.verify|verify} messages. - * @param message ClusterPersistenceConfig message or plain object to encode + * Encodes the specified AutomatedBackupConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.verify|verify} messages. + * @param message AutomatedBackupConfig message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1.IClusterPersistenceConfig, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.IAutomatedBackupConfig, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified ClusterPersistenceConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.verify|verify} messages. - * @param message ClusterPersistenceConfig message or plain object to encode + * Encodes the specified AutomatedBackupConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.verify|verify} messages. + * @param message AutomatedBackupConfig message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1.IClusterPersistenceConfig, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IAutomatedBackupConfig, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a ClusterPersistenceConfig message from the specified reader or buffer. + * Decodes an AutomatedBackupConfig message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ClusterPersistenceConfig + * @returns AutomatedBackupConfig * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.ClusterPersistenceConfig; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig; /** - * Decodes a ClusterPersistenceConfig message from the specified reader or buffer, length delimited. + * Decodes an AutomatedBackupConfig message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns ClusterPersistenceConfig + * @returns AutomatedBackupConfig * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.ClusterPersistenceConfig; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig; /** - * Verifies a ClusterPersistenceConfig message. + * Verifies an AutomatedBackupConfig message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a ClusterPersistenceConfig message from a plain object. Also converts values to their respective internal types. + * Creates an AutomatedBackupConfig message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns ClusterPersistenceConfig + * @returns AutomatedBackupConfig */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.ClusterPersistenceConfig; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig; /** - * Creates a plain object from a ClusterPersistenceConfig message. Also converts values to other types if specified. - * @param message ClusterPersistenceConfig + * Creates a plain object from an AutomatedBackupConfig message. Also converts values to other types if specified. + * @param message AutomatedBackupConfig * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1.ClusterPersistenceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this ClusterPersistenceConfig to JSON. + * Converts this AutomatedBackupConfig to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for ClusterPersistenceConfig + * Gets the default type url for AutomatedBackupConfig * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - namespace ClusterPersistenceConfig { - - /** Properties of a RDBConfig. */ - interface IRDBConfig { + namespace AutomatedBackupConfig { - /** RDBConfig rdbSnapshotPeriod */ - rdbSnapshotPeriod?: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriod|keyof typeof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriod|null); + /** Properties of a FixedFrequencySchedule. */ + interface IFixedFrequencySchedule { - /** RDBConfig rdbSnapshotStartTime */ - rdbSnapshotStartTime?: (google.protobuf.ITimestamp|null); + /** FixedFrequencySchedule startTime */ + startTime?: (google.type.ITimeOfDay|null); } - /** Represents a RDBConfig. */ - class RDBConfig implements IRDBConfig { + /** Represents a FixedFrequencySchedule. */ + class FixedFrequencySchedule implements IFixedFrequencySchedule { /** - * Constructs a new RDBConfig. + * Constructs a new FixedFrequencySchedule. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig); + constructor(properties?: google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.IFixedFrequencySchedule); - /** RDBConfig rdbSnapshotPeriod. */ - public rdbSnapshotPeriod: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriod|keyof typeof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriod); + /** FixedFrequencySchedule startTime. */ + public startTime?: (google.type.ITimeOfDay|null); - /** RDBConfig rdbSnapshotStartTime. */ - public rdbSnapshotStartTime?: (google.protobuf.ITimestamp|null); + /** FixedFrequencySchedule _startTime. */ + public _startTime?: "startTime"; /** - * Creates a new RDBConfig instance using the specified properties. + * Creates a new FixedFrequencySchedule instance using the specified properties. * @param [properties] Properties to set - * @returns RDBConfig instance + * @returns FixedFrequencySchedule instance */ - public static create(properties?: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig): google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig; + public static create(properties?: google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.IFixedFrequencySchedule): google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule; /** - * Encodes the specified RDBConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.verify|verify} messages. - * @param message RDBConfig message or plain object to encode + * Encodes the specified FixedFrequencySchedule message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule.verify|verify} messages. + * @param message FixedFrequencySchedule message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.IFixedFrequencySchedule, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified RDBConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.verify|verify} messages. - * @param message RDBConfig message or plain object to encode + * Encodes the specified FixedFrequencySchedule message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule.verify|verify} messages. + * @param message FixedFrequencySchedule message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.IFixedFrequencySchedule, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a RDBConfig message from the specified reader or buffer. + * Decodes a FixedFrequencySchedule message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns RDBConfig + * @returns FixedFrequencySchedule * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule; /** - * Decodes a RDBConfig message from the specified reader or buffer, length delimited. + * Decodes a FixedFrequencySchedule message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns RDBConfig + * @returns FixedFrequencySchedule * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule; /** - * Verifies a RDBConfig message. + * Verifies a FixedFrequencySchedule message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a RDBConfig message from a plain object. Also converts values to their respective internal types. + * Creates a FixedFrequencySchedule message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns RDBConfig + * @returns FixedFrequencySchedule */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule; /** - * Creates a plain object from a RDBConfig message. Also converts values to other types if specified. - * @param message RDBConfig + * Creates a plain object from a FixedFrequencySchedule message. Also converts values to other types if specified. + * @param message FixedFrequencySchedule * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this RDBConfig to JSON. + * Converts this FixedFrequencySchedule to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for RDBConfig + * Gets the default type url for FixedFrequencySchedule * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - namespace RDBConfig { - - /** SnapshotPeriod enum. */ - enum SnapshotPeriod { - SNAPSHOT_PERIOD_UNSPECIFIED = 0, - ONE_HOUR = 1, - SIX_HOURS = 2, - TWELVE_HOURS = 3, - TWENTY_FOUR_HOURS = 4 - } - } - - /** Properties of a AOFConfig. */ - interface IAOFConfig { - - /** AOFConfig appendFsync */ - appendFsync?: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsync|keyof typeof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsync|null); - } - - /** Represents a AOFConfig. */ - class AOFConfig implements IAOFConfig { - - /** - * Constructs a new AOFConfig. - * @param [properties] Properties to set - */ - constructor(properties?: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig); - - /** AOFConfig appendFsync. */ - public appendFsync: (google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsync|keyof typeof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsync); - - /** - * Creates a new AOFConfig instance using the specified properties. - * @param [properties] Properties to set - * @returns AOFConfig instance - */ - public static create(properties?: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig): google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig; - - /** - * Encodes the specified AOFConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.verify|verify} messages. - * @param message AOFConfig message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified AOFConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.verify|verify} messages. - * @param message AOFConfig message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a AOFConfig message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns AOFConfig - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig; - - /** - * Decodes a AOFConfig message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns AOFConfig - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig; - - /** - * Verifies a AOFConfig message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a AOFConfig message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns AOFConfig - */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig; - - /** - * Creates a plain object from a AOFConfig message. Also converts values to other types if specified. - * @param message AOFConfig - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this AOFConfig to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for AOFConfig - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; + /** AutomatedBackupMode enum. */ + enum AutomatedBackupMode { + AUTOMATED_BACKUP_MODE_UNSPECIFIED = 0, + DISABLED = 1, + ENABLED = 2 } + } - namespace AOFConfig { + /** Properties of a BackupCollection. */ + interface IBackupCollection { - /** AppendFsync enum. */ - enum AppendFsync { - APPEND_FSYNC_UNSPECIFIED = 0, - NO = 1, - EVERYSEC = 2, - ALWAYS = 3 - } - } + /** BackupCollection name */ + name?: (string|null); - /** PersistenceMode enum. */ - enum PersistenceMode { - PERSISTENCE_MODE_UNSPECIFIED = 0, - DISABLED = 1, - RDB = 2, - AOF = 3 - } - } + /** BackupCollection clusterUid */ + clusterUid?: (string|null); - /** Properties of a ZoneDistributionConfig. */ - interface IZoneDistributionConfig { + /** BackupCollection cluster */ + cluster?: (string|null); - /** ZoneDistributionConfig mode */ - mode?: (google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionMode|keyof typeof google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionMode|null); + /** BackupCollection kmsKey */ + kmsKey?: (string|null); - /** ZoneDistributionConfig zone */ - zone?: (string|null); + /** BackupCollection uid */ + uid?: (string|null); } - /** Represents a ZoneDistributionConfig. */ - class ZoneDistributionConfig implements IZoneDistributionConfig { + /** Represents a BackupCollection. */ + class BackupCollection implements IBackupCollection { /** - * Constructs a new ZoneDistributionConfig. + * Constructs a new BackupCollection. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1.IZoneDistributionConfig); + constructor(properties?: google.cloud.redis.cluster.v1beta1.IBackupCollection); - /** ZoneDistributionConfig mode. */ - public mode: (google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionMode|keyof typeof google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionMode); + /** BackupCollection name. */ + public name: string; - /** ZoneDistributionConfig zone. */ - public zone: string; + /** BackupCollection clusterUid. */ + public clusterUid: string; + + /** BackupCollection cluster. */ + public cluster: string; + + /** BackupCollection kmsKey. */ + public kmsKey: string; + + /** BackupCollection uid. */ + public uid: string; /** - * Creates a new ZoneDistributionConfig instance using the specified properties. + * Creates a new BackupCollection instance using the specified properties. * @param [properties] Properties to set - * @returns ZoneDistributionConfig instance + * @returns BackupCollection instance */ - public static create(properties?: google.cloud.redis.cluster.v1.IZoneDistributionConfig): google.cloud.redis.cluster.v1.ZoneDistributionConfig; + public static create(properties?: google.cloud.redis.cluster.v1beta1.IBackupCollection): google.cloud.redis.cluster.v1beta1.BackupCollection; /** - * Encodes the specified ZoneDistributionConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.ZoneDistributionConfig.verify|verify} messages. - * @param message ZoneDistributionConfig message or plain object to encode + * Encodes the specified BackupCollection message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.BackupCollection.verify|verify} messages. + * @param message BackupCollection message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1.IZoneDistributionConfig, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.IBackupCollection, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified ZoneDistributionConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ZoneDistributionConfig.verify|verify} messages. - * @param message ZoneDistributionConfig message or plain object to encode + * Encodes the specified BackupCollection message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.BackupCollection.verify|verify} messages. + * @param message BackupCollection message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1.IZoneDistributionConfig, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IBackupCollection, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a ZoneDistributionConfig message from the specified reader or buffer. + * Decodes a BackupCollection message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ZoneDistributionConfig + * @returns BackupCollection * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1.ZoneDistributionConfig; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.BackupCollection; /** - * Decodes a ZoneDistributionConfig message from the specified reader or buffer, length delimited. + * Decodes a BackupCollection message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns ZoneDistributionConfig + * @returns BackupCollection * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1.ZoneDistributionConfig; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.BackupCollection; /** - * Verifies a ZoneDistributionConfig message. + * Verifies a BackupCollection message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a ZoneDistributionConfig message from a plain object. Also converts values to their respective internal types. + * Creates a BackupCollection message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns ZoneDistributionConfig + * @returns BackupCollection */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1.ZoneDistributionConfig; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.BackupCollection; /** - * Creates a plain object from a ZoneDistributionConfig message. Also converts values to other types if specified. - * @param message ZoneDistributionConfig + * Creates a plain object from a BackupCollection message. Also converts values to other types if specified. + * @param message BackupCollection * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1.ZoneDistributionConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.BackupCollection, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this ZoneDistributionConfig to JSON. + * Converts this BackupCollection to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for ZoneDistributionConfig + * Gets the default type url for BackupCollection * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - namespace ZoneDistributionConfig { - - /** ZoneDistributionMode enum. */ - enum ZoneDistributionMode { - ZONE_DISTRIBUTION_MODE_UNSPECIFIED = 0, - MULTI_ZONE = 1, - SINGLE_ZONE = 2 - } - } - } - - /** Namespace v1beta1. */ - namespace v1beta1 { + /** Properties of a Backup. */ + interface IBackup { - /** Represents a CloudRedisCluster */ - class CloudRedisCluster extends $protobuf.rpc.Service { + /** Backup name */ + name?: (string|null); - /** - * Constructs a new CloudRedisCluster service. - * @param rpcImpl RPC implementation - * @param [requestDelimited=false] Whether requests are length-delimited - * @param [responseDelimited=false] Whether responses are length-delimited - */ - constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean); + /** Backup createTime */ + createTime?: (google.protobuf.ITimestamp|null); - /** - * Creates new CloudRedisCluster service using the specified rpc implementation. - * @param rpcImpl RPC implementation - * @param [requestDelimited=false] Whether requests are length-delimited - * @param [responseDelimited=false] Whether responses are length-delimited - * @returns RPC service. Useful where requests and/or responses are streamed. - */ - public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): CloudRedisCluster; + /** Backup cluster */ + cluster?: (string|null); - /** - * Calls ListClusters. - * @param request ListClustersRequest message or plain object - * @param callback Node-style callback called with the error, if any, and ListClustersResponse - */ - public listClusters(request: google.cloud.redis.cluster.v1beta1.IListClustersRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.ListClustersCallback): void; + /** Backup clusterUid */ + clusterUid?: (string|null); - /** - * Calls ListClusters. - * @param request ListClustersRequest message or plain object - * @returns Promise - */ - public listClusters(request: google.cloud.redis.cluster.v1beta1.IListClustersRequest): Promise; + /** Backup totalSizeBytes */ + totalSizeBytes?: (number|Long|string|null); - /** - * Calls GetCluster. - * @param request GetClusterRequest message or plain object - * @param callback Node-style callback called with the error, if any, and Cluster - */ - public getCluster(request: google.cloud.redis.cluster.v1beta1.IGetClusterRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.GetClusterCallback): void; + /** Backup expireTime */ + expireTime?: (google.protobuf.ITimestamp|null); - /** - * Calls GetCluster. - * @param request GetClusterRequest message or plain object - * @returns Promise - */ - public getCluster(request: google.cloud.redis.cluster.v1beta1.IGetClusterRequest): Promise; + /** Backup engineVersion */ + engineVersion?: (string|null); - /** - * Calls UpdateCluster. - * @param request UpdateClusterRequest message or plain object - * @param callback Node-style callback called with the error, if any, and Operation - */ - public updateCluster(request: google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.UpdateClusterCallback): void; + /** Backup backupFiles */ + backupFiles?: (google.cloud.redis.cluster.v1beta1.IBackupFile[]|null); - /** - * Calls UpdateCluster. - * @param request UpdateClusterRequest message or plain object - * @returns Promise - */ - public updateCluster(request: google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest): Promise; + /** Backup nodeType */ + nodeType?: (google.cloud.redis.cluster.v1beta1.NodeType|keyof typeof google.cloud.redis.cluster.v1beta1.NodeType|null); - /** - * Calls DeleteCluster. - * @param request DeleteClusterRequest message or plain object - * @param callback Node-style callback called with the error, if any, and Operation - */ - public deleteCluster(request: google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.DeleteClusterCallback): void; + /** Backup replicaCount */ + replicaCount?: (number|null); - /** - * Calls DeleteCluster. - * @param request DeleteClusterRequest message or plain object - * @returns Promise - */ - public deleteCluster(request: google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest): Promise; + /** Backup shardCount */ + shardCount?: (number|null); - /** - * Calls CreateCluster. - * @param request CreateClusterRequest message or plain object - * @param callback Node-style callback called with the error, if any, and Operation - */ - public createCluster(request: google.cloud.redis.cluster.v1beta1.ICreateClusterRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.CreateClusterCallback): void; + /** Backup backupType */ + backupType?: (google.cloud.redis.cluster.v1beta1.Backup.BackupType|keyof typeof google.cloud.redis.cluster.v1beta1.Backup.BackupType|null); - /** - * Calls CreateCluster. - * @param request CreateClusterRequest message or plain object - * @returns Promise - */ - public createCluster(request: google.cloud.redis.cluster.v1beta1.ICreateClusterRequest): Promise; + /** Backup state */ + state?: (google.cloud.redis.cluster.v1beta1.Backup.State|keyof typeof google.cloud.redis.cluster.v1beta1.Backup.State|null); - /** - * Calls GetClusterCertificateAuthority. - * @param request GetClusterCertificateAuthorityRequest message or plain object - * @param callback Node-style callback called with the error, if any, and CertificateAuthority - */ - public getClusterCertificateAuthority(request: google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest, callback: google.cloud.redis.cluster.v1beta1.CloudRedisCluster.GetClusterCertificateAuthorityCallback): void; + /** Backup encryptionInfo */ + encryptionInfo?: (google.cloud.redis.cluster.v1beta1.IEncryptionInfo|null); - /** - * Calls GetClusterCertificateAuthority. - * @param request GetClusterCertificateAuthorityRequest message or plain object - * @returns Promise - */ - public getClusterCertificateAuthority(request: google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest): Promise; + /** Backup uid */ + uid?: (string|null); } - namespace CloudRedisCluster { - - /** - * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|listClusters}. - * @param error Error, if any - * @param [response] ListClustersResponse - */ - type ListClustersCallback = (error: (Error|null), response?: google.cloud.redis.cluster.v1beta1.ListClustersResponse) => void; - - /** - * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|getCluster}. - * @param error Error, if any - * @param [response] Cluster - */ - type GetClusterCallback = (error: (Error|null), response?: google.cloud.redis.cluster.v1beta1.Cluster) => void; - - /** - * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|updateCluster}. - * @param error Error, if any - * @param [response] Operation - */ - type UpdateClusterCallback = (error: (Error|null), response?: google.longrunning.Operation) => void; - - /** - * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|deleteCluster}. - * @param error Error, if any - * @param [response] Operation - */ - type DeleteClusterCallback = (error: (Error|null), response?: google.longrunning.Operation) => void; + /** Represents a Backup. */ + class Backup implements IBackup { /** - * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|createCluster}. - * @param error Error, if any - * @param [response] Operation + * Constructs a new Backup. + * @param [properties] Properties to set */ - type CreateClusterCallback = (error: (Error|null), response?: google.longrunning.Operation) => void; + constructor(properties?: google.cloud.redis.cluster.v1beta1.IBackup); - /** - * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|getClusterCertificateAuthority}. - * @param error Error, if any - * @param [response] CertificateAuthority - */ - type GetClusterCertificateAuthorityCallback = (error: (Error|null), response?: google.cloud.redis.cluster.v1beta1.CertificateAuthority) => void; - } + /** Backup name. */ + public name: string; - /** AuthorizationMode enum. */ - enum AuthorizationMode { - AUTH_MODE_UNSPECIFIED = 0, - AUTH_MODE_IAM_AUTH = 1, - AUTH_MODE_DISABLED = 2 - } + /** Backup createTime. */ + public createTime?: (google.protobuf.ITimestamp|null); - /** NodeType enum. */ - enum NodeType { - NODE_TYPE_UNSPECIFIED = 0, - REDIS_SHARED_CORE_NANO = 1, - REDIS_HIGHMEM_MEDIUM = 2, - REDIS_HIGHMEM_XLARGE = 3, - REDIS_STANDARD_SMALL = 4 - } + /** Backup cluster. */ + public cluster: string; - /** TransitEncryptionMode enum. */ - enum TransitEncryptionMode { - TRANSIT_ENCRYPTION_MODE_UNSPECIFIED = 0, - TRANSIT_ENCRYPTION_MODE_DISABLED = 1, - TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION = 2 - } + /** Backup clusterUid. */ + public clusterUid: string; - /** Properties of a CreateClusterRequest. */ - interface ICreateClusterRequest { + /** Backup totalSizeBytes. */ + public totalSizeBytes: (number|Long|string); - /** CreateClusterRequest parent */ - parent?: (string|null); + /** Backup expireTime. */ + public expireTime?: (google.protobuf.ITimestamp|null); - /** CreateClusterRequest clusterId */ - clusterId?: (string|null); + /** Backup engineVersion. */ + public engineVersion: string; - /** CreateClusterRequest cluster */ - cluster?: (google.cloud.redis.cluster.v1beta1.ICluster|null); + /** Backup backupFiles. */ + public backupFiles: google.cloud.redis.cluster.v1beta1.IBackupFile[]; - /** CreateClusterRequest requestId */ - requestId?: (string|null); - } + /** Backup nodeType. */ + public nodeType: (google.cloud.redis.cluster.v1beta1.NodeType|keyof typeof google.cloud.redis.cluster.v1beta1.NodeType); - /** Represents a CreateClusterRequest. */ - class CreateClusterRequest implements ICreateClusterRequest { + /** Backup replicaCount. */ + public replicaCount: number; - /** - * Constructs a new CreateClusterRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.cloud.redis.cluster.v1beta1.ICreateClusterRequest); + /** Backup shardCount. */ + public shardCount: number; - /** CreateClusterRequest parent. */ - public parent: string; + /** Backup backupType. */ + public backupType: (google.cloud.redis.cluster.v1beta1.Backup.BackupType|keyof typeof google.cloud.redis.cluster.v1beta1.Backup.BackupType); - /** CreateClusterRequest clusterId. */ - public clusterId: string; + /** Backup state. */ + public state: (google.cloud.redis.cluster.v1beta1.Backup.State|keyof typeof google.cloud.redis.cluster.v1beta1.Backup.State); - /** CreateClusterRequest cluster. */ - public cluster?: (google.cloud.redis.cluster.v1beta1.ICluster|null); + /** Backup encryptionInfo. */ + public encryptionInfo?: (google.cloud.redis.cluster.v1beta1.IEncryptionInfo|null); - /** CreateClusterRequest requestId. */ - public requestId: string; + /** Backup uid. */ + public uid: string; /** - * Creates a new CreateClusterRequest instance using the specified properties. + * Creates a new Backup instance using the specified properties. * @param [properties] Properties to set - * @returns CreateClusterRequest instance + * @returns Backup instance */ - public static create(properties?: google.cloud.redis.cluster.v1beta1.ICreateClusterRequest): google.cloud.redis.cluster.v1beta1.CreateClusterRequest; + public static create(properties?: google.cloud.redis.cluster.v1beta1.IBackup): google.cloud.redis.cluster.v1beta1.Backup; /** - * Encodes the specified CreateClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CreateClusterRequest.verify|verify} messages. - * @param message CreateClusterRequest message or plain object to encode + * Encodes the specified Backup message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Backup.verify|verify} messages. + * @param message Backup message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1beta1.ICreateClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.IBackup, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CreateClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CreateClusterRequest.verify|verify} messages. - * @param message CreateClusterRequest message or plain object to encode + * Encodes the specified Backup message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Backup.verify|verify} messages. + * @param message Backup message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.ICreateClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IBackup, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CreateClusterRequest message from the specified reader or buffer. + * Decodes a Backup message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CreateClusterRequest + * @returns Backup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.CreateClusterRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.Backup; /** - * Decodes a CreateClusterRequest message from the specified reader or buffer, length delimited. + * Decodes a Backup message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CreateClusterRequest + * @returns Backup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.CreateClusterRequest; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.Backup; /** - * Verifies a CreateClusterRequest message. + * Verifies a Backup message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a CreateClusterRequest message from a plain object. Also converts values to their respective internal types. + * Creates a Backup message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CreateClusterRequest + * @returns Backup */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.CreateClusterRequest; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.Backup; /** - * Creates a plain object from a CreateClusterRequest message. Also converts values to other types if specified. - * @param message CreateClusterRequest + * Creates a plain object from a Backup message. Also converts values to other types if specified. + * @param message Backup * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1beta1.CreateClusterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.Backup, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this CreateClusterRequest to JSON. + * Converts this Backup to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for CreateClusterRequest + * Gets the default type url for Backup * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a ListClustersRequest. */ - interface IListClustersRequest { + namespace Backup { - /** ListClustersRequest parent */ - parent?: (string|null); + /** BackupType enum. */ + enum BackupType { + BACKUP_TYPE_UNSPECIFIED = 0, + ON_DEMAND = 1, + AUTOMATED = 2 + } + + /** State enum. */ + enum State { + STATE_UNSPECIFIED = 0, + CREATING = 1, + ACTIVE = 2, + DELETING = 3, + SUSPENDED = 4 + } + } + + /** Properties of a BackupFile. */ + interface IBackupFile { + + /** BackupFile fileName */ + fileName?: (string|null); - /** ListClustersRequest pageSize */ - pageSize?: (number|null); + /** BackupFile sizeBytes */ + sizeBytes?: (number|Long|string|null); - /** ListClustersRequest pageToken */ - pageToken?: (string|null); + /** BackupFile createTime */ + createTime?: (google.protobuf.ITimestamp|null); } - /** Represents a ListClustersRequest. */ - class ListClustersRequest implements IListClustersRequest { + /** Represents a BackupFile. */ + class BackupFile implements IBackupFile { /** - * Constructs a new ListClustersRequest. + * Constructs a new BackupFile. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1beta1.IListClustersRequest); + constructor(properties?: google.cloud.redis.cluster.v1beta1.IBackupFile); - /** ListClustersRequest parent. */ - public parent: string; + /** BackupFile fileName. */ + public fileName: string; - /** ListClustersRequest pageSize. */ - public pageSize: number; + /** BackupFile sizeBytes. */ + public sizeBytes: (number|Long|string); - /** ListClustersRequest pageToken. */ - public pageToken: string; + /** BackupFile createTime. */ + public createTime?: (google.protobuf.ITimestamp|null); /** - * Creates a new ListClustersRequest instance using the specified properties. + * Creates a new BackupFile instance using the specified properties. * @param [properties] Properties to set - * @returns ListClustersRequest instance + * @returns BackupFile instance */ - public static create(properties?: google.cloud.redis.cluster.v1beta1.IListClustersRequest): google.cloud.redis.cluster.v1beta1.ListClustersRequest; + public static create(properties?: google.cloud.redis.cluster.v1beta1.IBackupFile): google.cloud.redis.cluster.v1beta1.BackupFile; /** - * Encodes the specified ListClustersRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListClustersRequest.verify|verify} messages. - * @param message ListClustersRequest message or plain object to encode + * Encodes the specified BackupFile message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.BackupFile.verify|verify} messages. + * @param message BackupFile message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1beta1.IListClustersRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.IBackupFile, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified ListClustersRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListClustersRequest.verify|verify} messages. - * @param message ListClustersRequest message or plain object to encode + * Encodes the specified BackupFile message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.BackupFile.verify|verify} messages. + * @param message BackupFile message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IListClustersRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IBackupFile, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a ListClustersRequest message from the specified reader or buffer. + * Decodes a BackupFile message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ListClustersRequest + * @returns BackupFile * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.ListClustersRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.BackupFile; /** - * Decodes a ListClustersRequest message from the specified reader or buffer, length delimited. + * Decodes a BackupFile message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns ListClustersRequest + * @returns BackupFile * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.ListClustersRequest; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.BackupFile; /** - * Verifies a ListClustersRequest message. + * Verifies a BackupFile message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a ListClustersRequest message from a plain object. Also converts values to their respective internal types. + * Creates a BackupFile message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns ListClustersRequest + * @returns BackupFile */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.ListClustersRequest; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.BackupFile; /** - * Creates a plain object from a ListClustersRequest message. Also converts values to other types if specified. - * @param message ListClustersRequest + * Creates a plain object from a BackupFile message. Also converts values to other types if specified. + * @param message BackupFile * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1beta1.ListClustersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.BackupFile, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this ListClustersRequest to JSON. + * Converts this BackupFile to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for ListClustersRequest + * Gets the default type url for BackupFile * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a ListClustersResponse. */ - interface IListClustersResponse { - - /** ListClustersResponse clusters */ - clusters?: (google.cloud.redis.cluster.v1beta1.ICluster[]|null); + /** Properties of a PscServiceAttachment. */ + interface IPscServiceAttachment { - /** ListClustersResponse nextPageToken */ - nextPageToken?: (string|null); + /** PscServiceAttachment serviceAttachment */ + serviceAttachment?: (string|null); - /** ListClustersResponse unreachable */ - unreachable?: (string[]|null); + /** PscServiceAttachment connectionType */ + connectionType?: (google.cloud.redis.cluster.v1beta1.ConnectionType|keyof typeof google.cloud.redis.cluster.v1beta1.ConnectionType|null); } - /** Represents a ListClustersResponse. */ - class ListClustersResponse implements IListClustersResponse { + /** Represents a PscServiceAttachment. */ + class PscServiceAttachment implements IPscServiceAttachment { /** - * Constructs a new ListClustersResponse. + * Constructs a new PscServiceAttachment. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1beta1.IListClustersResponse); - - /** ListClustersResponse clusters. */ - public clusters: google.cloud.redis.cluster.v1beta1.ICluster[]; + constructor(properties?: google.cloud.redis.cluster.v1beta1.IPscServiceAttachment); - /** ListClustersResponse nextPageToken. */ - public nextPageToken: string; + /** PscServiceAttachment serviceAttachment. */ + public serviceAttachment: string; - /** ListClustersResponse unreachable. */ - public unreachable: string[]; + /** PscServiceAttachment connectionType. */ + public connectionType: (google.cloud.redis.cluster.v1beta1.ConnectionType|keyof typeof google.cloud.redis.cluster.v1beta1.ConnectionType); /** - * Creates a new ListClustersResponse instance using the specified properties. + * Creates a new PscServiceAttachment instance using the specified properties. * @param [properties] Properties to set - * @returns ListClustersResponse instance + * @returns PscServiceAttachment instance */ - public static create(properties?: google.cloud.redis.cluster.v1beta1.IListClustersResponse): google.cloud.redis.cluster.v1beta1.ListClustersResponse; + public static create(properties?: google.cloud.redis.cluster.v1beta1.IPscServiceAttachment): google.cloud.redis.cluster.v1beta1.PscServiceAttachment; /** - * Encodes the specified ListClustersResponse message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListClustersResponse.verify|verify} messages. - * @param message ListClustersResponse message or plain object to encode + * Encodes the specified PscServiceAttachment message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscServiceAttachment.verify|verify} messages. + * @param message PscServiceAttachment message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1beta1.IListClustersResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.IPscServiceAttachment, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified ListClustersResponse message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListClustersResponse.verify|verify} messages. - * @param message ListClustersResponse message or plain object to encode + * Encodes the specified PscServiceAttachment message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscServiceAttachment.verify|verify} messages. + * @param message PscServiceAttachment message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IListClustersResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IPscServiceAttachment, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a ListClustersResponse message from the specified reader or buffer. + * Decodes a PscServiceAttachment message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ListClustersResponse + * @returns PscServiceAttachment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.ListClustersResponse; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.PscServiceAttachment; /** - * Decodes a ListClustersResponse message from the specified reader or buffer, length delimited. + * Decodes a PscServiceAttachment message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns ListClustersResponse + * @returns PscServiceAttachment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.ListClustersResponse; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.PscServiceAttachment; /** - * Verifies a ListClustersResponse message. + * Verifies a PscServiceAttachment message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a ListClustersResponse message from a plain object. Also converts values to their respective internal types. + * Creates a PscServiceAttachment message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns ListClustersResponse + * @returns PscServiceAttachment */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.ListClustersResponse; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.PscServiceAttachment; /** - * Creates a plain object from a ListClustersResponse message. Also converts values to other types if specified. - * @param message ListClustersResponse + * Creates a plain object from a PscServiceAttachment message. Also converts values to other types if specified. + * @param message PscServiceAttachment * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1beta1.ListClustersResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.PscServiceAttachment, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this ListClustersResponse to JSON. + * Converts this PscServiceAttachment to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for ListClustersResponse + * Gets the default type url for PscServiceAttachment * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of an UpdateClusterRequest. */ - interface IUpdateClusterRequest { + /** Properties of a CrossClusterReplicationConfig. */ + interface ICrossClusterReplicationConfig { - /** UpdateClusterRequest updateMask */ - updateMask?: (google.protobuf.IFieldMask|null); + /** CrossClusterReplicationConfig clusterRole */ + clusterRole?: (google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.ClusterRole|keyof typeof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.ClusterRole|null); - /** UpdateClusterRequest cluster */ - cluster?: (google.cloud.redis.cluster.v1beta1.ICluster|null); + /** CrossClusterReplicationConfig primaryCluster */ + primaryCluster?: (google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster|null); - /** UpdateClusterRequest requestId */ - requestId?: (string|null); + /** CrossClusterReplicationConfig secondaryClusters */ + secondaryClusters?: (google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster[]|null); + + /** CrossClusterReplicationConfig updateTime */ + updateTime?: (google.protobuf.ITimestamp|null); + + /** CrossClusterReplicationConfig membership */ + membership?: (google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IMembership|null); } - /** Represents an UpdateClusterRequest. */ - class UpdateClusterRequest implements IUpdateClusterRequest { + /** Represents a CrossClusterReplicationConfig. */ + class CrossClusterReplicationConfig implements ICrossClusterReplicationConfig { /** - * Constructs a new UpdateClusterRequest. + * Constructs a new CrossClusterReplicationConfig. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest); + constructor(properties?: google.cloud.redis.cluster.v1beta1.ICrossClusterReplicationConfig); - /** UpdateClusterRequest updateMask. */ - public updateMask?: (google.protobuf.IFieldMask|null); + /** CrossClusterReplicationConfig clusterRole. */ + public clusterRole: (google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.ClusterRole|keyof typeof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.ClusterRole); - /** UpdateClusterRequest cluster. */ - public cluster?: (google.cloud.redis.cluster.v1beta1.ICluster|null); + /** CrossClusterReplicationConfig primaryCluster. */ + public primaryCluster?: (google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster|null); - /** UpdateClusterRequest requestId. */ - public requestId: string; + /** CrossClusterReplicationConfig secondaryClusters. */ + public secondaryClusters: google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster[]; + + /** CrossClusterReplicationConfig updateTime. */ + public updateTime?: (google.protobuf.ITimestamp|null); + + /** CrossClusterReplicationConfig membership. */ + public membership?: (google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IMembership|null); /** - * Creates a new UpdateClusterRequest instance using the specified properties. + * Creates a new CrossClusterReplicationConfig instance using the specified properties. * @param [properties] Properties to set - * @returns UpdateClusterRequest instance + * @returns CrossClusterReplicationConfig instance */ - public static create(properties?: google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest): google.cloud.redis.cluster.v1beta1.UpdateClusterRequest; + public static create(properties?: google.cloud.redis.cluster.v1beta1.ICrossClusterReplicationConfig): google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig; /** - * Encodes the specified UpdateClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.UpdateClusterRequest.verify|verify} messages. - * @param message UpdateClusterRequest message or plain object to encode + * Encodes the specified CrossClusterReplicationConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.verify|verify} messages. + * @param message CrossClusterReplicationConfig message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.ICrossClusterReplicationConfig, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified UpdateClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.UpdateClusterRequest.verify|verify} messages. - * @param message UpdateClusterRequest message or plain object to encode + * Encodes the specified CrossClusterReplicationConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.verify|verify} messages. + * @param message CrossClusterReplicationConfig message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.ICrossClusterReplicationConfig, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes an UpdateClusterRequest message from the specified reader or buffer. + * Decodes a CrossClusterReplicationConfig message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns UpdateClusterRequest + * @returns CrossClusterReplicationConfig * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.UpdateClusterRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig; /** - * Decodes an UpdateClusterRequest message from the specified reader or buffer, length delimited. + * Decodes a CrossClusterReplicationConfig message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns UpdateClusterRequest + * @returns CrossClusterReplicationConfig * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.UpdateClusterRequest; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig; /** - * Verifies an UpdateClusterRequest message. + * Verifies a CrossClusterReplicationConfig message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates an UpdateClusterRequest message from a plain object. Also converts values to their respective internal types. + * Creates a CrossClusterReplicationConfig message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns UpdateClusterRequest + * @returns CrossClusterReplicationConfig */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.UpdateClusterRequest; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig; /** - * Creates a plain object from an UpdateClusterRequest message. Also converts values to other types if specified. - * @param message UpdateClusterRequest + * Creates a plain object from a CrossClusterReplicationConfig message. Also converts values to other types if specified. + * @param message CrossClusterReplicationConfig * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1beta1.UpdateClusterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CrossClusterReplicationConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CrossClusterReplicationConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace CrossClusterReplicationConfig { + + /** Properties of a RemoteCluster. */ + interface IRemoteCluster { + + /** RemoteCluster cluster */ + cluster?: (string|null); + + /** RemoteCluster uid */ + uid?: (string|null); + } + + /** Represents a RemoteCluster. */ + class RemoteCluster implements IRemoteCluster { + + /** + * Constructs a new RemoteCluster. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster); + + /** RemoteCluster cluster. */ + public cluster: string; + + /** RemoteCluster uid. */ + public uid: string; + + /** + * Creates a new RemoteCluster instance using the specified properties. + * @param [properties] Properties to set + * @returns RemoteCluster instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster): google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster; + + /** + * Encodes the specified RemoteCluster message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.verify|verify} messages. + * @param message RemoteCluster message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified RemoteCluster message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.verify|verify} messages. + * @param message RemoteCluster message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RemoteCluster message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RemoteCluster + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster; + + /** + * Decodes a RemoteCluster message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RemoteCluster + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster; + + /** + * Verifies a RemoteCluster message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a RemoteCluster message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RemoteCluster + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster; + + /** + * Creates a plain object from a RemoteCluster message. Also converts values to other types if specified. + * @param message RemoteCluster + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this RemoteCluster to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for RemoteCluster + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a Membership. */ + interface IMembership { + + /** Membership primaryCluster */ + primaryCluster?: (google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster|null); + + /** Membership secondaryClusters */ + secondaryClusters?: (google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster[]|null); + } + + /** Represents a Membership. */ + class Membership implements IMembership { + + /** + * Constructs a new Membership. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IMembership); + + /** Membership primaryCluster. */ + public primaryCluster?: (google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster|null); + + /** Membership secondaryClusters. */ + public secondaryClusters: google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster[]; + + /** + * Creates a new Membership instance using the specified properties. + * @param [properties] Properties to set + * @returns Membership instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IMembership): google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership; + + /** + * Encodes the specified Membership message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership.verify|verify} messages. + * @param message Membership message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IMembership, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Membership message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership.verify|verify} messages. + * @param message Membership message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IMembership, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Membership message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Membership + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership; + + /** + * Decodes a Membership message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Membership + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership; + + /** + * Verifies a Membership message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Membership message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Membership + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership; + + /** + * Creates a plain object from a Membership message. Also converts values to other types if specified. + * @param message Membership + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Converts this UpdateClusterRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; + /** + * Converts this Membership to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; - /** - * Gets the default type url for UpdateClusterRequest - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; + /** + * Gets the default type url for Membership + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** ClusterRole enum. */ + enum ClusterRole { + CLUSTER_ROLE_UNSPECIFIED = 0, + NONE = 1, + PRIMARY = 2, + SECONDARY = 3 + } } - /** Properties of a GetClusterRequest. */ - interface IGetClusterRequest { + /** Properties of a ClusterMaintenancePolicy. */ + interface IClusterMaintenancePolicy { - /** GetClusterRequest name */ - name?: (string|null); + /** ClusterMaintenancePolicy createTime */ + createTime?: (google.protobuf.ITimestamp|null); + + /** ClusterMaintenancePolicy updateTime */ + updateTime?: (google.protobuf.ITimestamp|null); + + /** ClusterMaintenancePolicy weeklyMaintenanceWindow */ + weeklyMaintenanceWindow?: (google.cloud.redis.cluster.v1beta1.IClusterWeeklyMaintenanceWindow[]|null); } - /** Represents a GetClusterRequest. */ - class GetClusterRequest implements IGetClusterRequest { + /** Represents a ClusterMaintenancePolicy. */ + class ClusterMaintenancePolicy implements IClusterMaintenancePolicy { /** - * Constructs a new GetClusterRequest. + * Constructs a new ClusterMaintenancePolicy. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1beta1.IGetClusterRequest); + constructor(properties?: google.cloud.redis.cluster.v1beta1.IClusterMaintenancePolicy); - /** GetClusterRequest name. */ - public name: string; + /** ClusterMaintenancePolicy createTime. */ + public createTime?: (google.protobuf.ITimestamp|null); + + /** ClusterMaintenancePolicy updateTime. */ + public updateTime?: (google.protobuf.ITimestamp|null); + + /** ClusterMaintenancePolicy weeklyMaintenanceWindow. */ + public weeklyMaintenanceWindow: google.cloud.redis.cluster.v1beta1.IClusterWeeklyMaintenanceWindow[]; /** - * Creates a new GetClusterRequest instance using the specified properties. + * Creates a new ClusterMaintenancePolicy instance using the specified properties. * @param [properties] Properties to set - * @returns GetClusterRequest instance + * @returns ClusterMaintenancePolicy instance */ - public static create(properties?: google.cloud.redis.cluster.v1beta1.IGetClusterRequest): google.cloud.redis.cluster.v1beta1.GetClusterRequest; + public static create(properties?: google.cloud.redis.cluster.v1beta1.IClusterMaintenancePolicy): google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy; /** - * Encodes the specified GetClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetClusterRequest.verify|verify} messages. - * @param message GetClusterRequest message or plain object to encode + * Encodes the specified ClusterMaintenancePolicy message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy.verify|verify} messages. + * @param message ClusterMaintenancePolicy message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1beta1.IGetClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.IClusterMaintenancePolicy, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified GetClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetClusterRequest.verify|verify} messages. - * @param message GetClusterRequest message or plain object to encode + * Encodes the specified ClusterMaintenancePolicy message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy.verify|verify} messages. + * @param message ClusterMaintenancePolicy message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IGetClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IClusterMaintenancePolicy, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a GetClusterRequest message from the specified reader or buffer. + * Decodes a ClusterMaintenancePolicy message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns GetClusterRequest + * @returns ClusterMaintenancePolicy * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.GetClusterRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy; /** - * Decodes a GetClusterRequest message from the specified reader or buffer, length delimited. + * Decodes a ClusterMaintenancePolicy message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns GetClusterRequest + * @returns ClusterMaintenancePolicy * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.GetClusterRequest; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy; /** - * Verifies a GetClusterRequest message. + * Verifies a ClusterMaintenancePolicy message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a GetClusterRequest message from a plain object. Also converts values to their respective internal types. + * Creates a ClusterMaintenancePolicy message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns GetClusterRequest + * @returns ClusterMaintenancePolicy */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.GetClusterRequest; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy; /** - * Creates a plain object from a GetClusterRequest message. Also converts values to other types if specified. - * @param message GetClusterRequest + * Creates a plain object from a ClusterMaintenancePolicy message. Also converts values to other types if specified. + * @param message ClusterMaintenancePolicy * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1beta1.GetClusterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this GetClusterRequest to JSON. + * Converts this ClusterMaintenancePolicy to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for GetClusterRequest + * Gets the default type url for ClusterMaintenancePolicy * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a DeleteClusterRequest. */ - interface IDeleteClusterRequest { + /** Properties of a ClusterWeeklyMaintenanceWindow. */ + interface IClusterWeeklyMaintenanceWindow { - /** DeleteClusterRequest name */ - name?: (string|null); + /** ClusterWeeklyMaintenanceWindow day */ + day?: (google.type.DayOfWeek|keyof typeof google.type.DayOfWeek|null); - /** DeleteClusterRequest requestId */ - requestId?: (string|null); + /** ClusterWeeklyMaintenanceWindow startTime */ + startTime?: (google.type.ITimeOfDay|null); } - /** Represents a DeleteClusterRequest. */ - class DeleteClusterRequest implements IDeleteClusterRequest { + /** Represents a ClusterWeeklyMaintenanceWindow. */ + class ClusterWeeklyMaintenanceWindow implements IClusterWeeklyMaintenanceWindow { /** - * Constructs a new DeleteClusterRequest. + * Constructs a new ClusterWeeklyMaintenanceWindow. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest); + constructor(properties?: google.cloud.redis.cluster.v1beta1.IClusterWeeklyMaintenanceWindow); - /** DeleteClusterRequest name. */ - public name: string; + /** ClusterWeeklyMaintenanceWindow day. */ + public day: (google.type.DayOfWeek|keyof typeof google.type.DayOfWeek); - /** DeleteClusterRequest requestId. */ - public requestId: string; + /** ClusterWeeklyMaintenanceWindow startTime. */ + public startTime?: (google.type.ITimeOfDay|null); /** - * Creates a new DeleteClusterRequest instance using the specified properties. + * Creates a new ClusterWeeklyMaintenanceWindow instance using the specified properties. * @param [properties] Properties to set - * @returns DeleteClusterRequest instance + * @returns ClusterWeeklyMaintenanceWindow instance */ - public static create(properties?: google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest): google.cloud.redis.cluster.v1beta1.DeleteClusterRequest; + public static create(properties?: google.cloud.redis.cluster.v1beta1.IClusterWeeklyMaintenanceWindow): google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow; /** - * Encodes the specified DeleteClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DeleteClusterRequest.verify|verify} messages. - * @param message DeleteClusterRequest message or plain object to encode + * Encodes the specified ClusterWeeklyMaintenanceWindow message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow.verify|verify} messages. + * @param message ClusterWeeklyMaintenanceWindow message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.IClusterWeeklyMaintenanceWindow, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified DeleteClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DeleteClusterRequest.verify|verify} messages. - * @param message DeleteClusterRequest message or plain object to encode + * Encodes the specified ClusterWeeklyMaintenanceWindow message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow.verify|verify} messages. + * @param message ClusterWeeklyMaintenanceWindow message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IClusterWeeklyMaintenanceWindow, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a DeleteClusterRequest message from the specified reader or buffer. + * Decodes a ClusterWeeklyMaintenanceWindow message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns DeleteClusterRequest + * @returns ClusterWeeklyMaintenanceWindow * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.DeleteClusterRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow; /** - * Decodes a DeleteClusterRequest message from the specified reader or buffer, length delimited. + * Decodes a ClusterWeeklyMaintenanceWindow message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns DeleteClusterRequest + * @returns ClusterWeeklyMaintenanceWindow * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.DeleteClusterRequest; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow; /** - * Verifies a DeleteClusterRequest message. + * Verifies a ClusterWeeklyMaintenanceWindow message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a DeleteClusterRequest message from a plain object. Also converts values to their respective internal types. + * Creates a ClusterWeeklyMaintenanceWindow message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns DeleteClusterRequest + * @returns ClusterWeeklyMaintenanceWindow */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.DeleteClusterRequest; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow; /** - * Creates a plain object from a DeleteClusterRequest message. Also converts values to other types if specified. - * @param message DeleteClusterRequest + * Creates a plain object from a ClusterWeeklyMaintenanceWindow message. Also converts values to other types if specified. + * @param message ClusterWeeklyMaintenanceWindow * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1beta1.DeleteClusterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this DeleteClusterRequest to JSON. + * Converts this ClusterWeeklyMaintenanceWindow to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for DeleteClusterRequest + * Gets the default type url for ClusterWeeklyMaintenanceWindow * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a GetClusterCertificateAuthorityRequest. */ - interface IGetClusterCertificateAuthorityRequest { + /** Properties of a ClusterMaintenanceSchedule. */ + interface IClusterMaintenanceSchedule { - /** GetClusterCertificateAuthorityRequest name */ - name?: (string|null); + /** ClusterMaintenanceSchedule startTime */ + startTime?: (google.protobuf.ITimestamp|null); + + /** ClusterMaintenanceSchedule endTime */ + endTime?: (google.protobuf.ITimestamp|null); } - /** Represents a GetClusterCertificateAuthorityRequest. */ - class GetClusterCertificateAuthorityRequest implements IGetClusterCertificateAuthorityRequest { + /** Represents a ClusterMaintenanceSchedule. */ + class ClusterMaintenanceSchedule implements IClusterMaintenanceSchedule { /** - * Constructs a new GetClusterCertificateAuthorityRequest. + * Constructs a new ClusterMaintenanceSchedule. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest); + constructor(properties?: google.cloud.redis.cluster.v1beta1.IClusterMaintenanceSchedule); - /** GetClusterCertificateAuthorityRequest name. */ - public name: string; + /** ClusterMaintenanceSchedule startTime. */ + public startTime?: (google.protobuf.ITimestamp|null); + + /** ClusterMaintenanceSchedule endTime. */ + public endTime?: (google.protobuf.ITimestamp|null); /** - * Creates a new GetClusterCertificateAuthorityRequest instance using the specified properties. + * Creates a new ClusterMaintenanceSchedule instance using the specified properties. * @param [properties] Properties to set - * @returns GetClusterCertificateAuthorityRequest instance + * @returns ClusterMaintenanceSchedule instance */ - public static create(properties?: google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest): google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest; + public static create(properties?: google.cloud.redis.cluster.v1beta1.IClusterMaintenanceSchedule): google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule; /** - * Encodes the specified GetClusterCertificateAuthorityRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest.verify|verify} messages. - * @param message GetClusterCertificateAuthorityRequest message or plain object to encode + * Encodes the specified ClusterMaintenanceSchedule message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule.verify|verify} messages. + * @param message ClusterMaintenanceSchedule message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.IClusterMaintenanceSchedule, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified GetClusterCertificateAuthorityRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest.verify|verify} messages. - * @param message GetClusterCertificateAuthorityRequest message or plain object to encode + * Encodes the specified ClusterMaintenanceSchedule message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule.verify|verify} messages. + * @param message ClusterMaintenanceSchedule message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IClusterMaintenanceSchedule, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a GetClusterCertificateAuthorityRequest message from the specified reader or buffer. + * Decodes a ClusterMaintenanceSchedule message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns GetClusterCertificateAuthorityRequest + * @returns ClusterMaintenanceSchedule * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule; /** - * Decodes a GetClusterCertificateAuthorityRequest message from the specified reader or buffer, length delimited. + * Decodes a ClusterMaintenanceSchedule message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns GetClusterCertificateAuthorityRequest + * @returns ClusterMaintenanceSchedule * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule; /** - * Verifies a GetClusterCertificateAuthorityRequest message. + * Verifies a ClusterMaintenanceSchedule message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a GetClusterCertificateAuthorityRequest message from a plain object. Also converts values to their respective internal types. + * Creates a ClusterMaintenanceSchedule message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns GetClusterCertificateAuthorityRequest + * @returns ClusterMaintenanceSchedule */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule; /** - * Creates a plain object from a GetClusterCertificateAuthorityRequest message. Also converts values to other types if specified. - * @param message GetClusterCertificateAuthorityRequest + * Creates a plain object from a ClusterMaintenanceSchedule message. Also converts values to other types if specified. + * @param message ClusterMaintenanceSchedule * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this GetClusterCertificateAuthorityRequest to JSON. + * Converts this ClusterMaintenanceSchedule to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for GetClusterCertificateAuthorityRequest + * Gets the default type url for ClusterMaintenanceSchedule * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a Cluster. */ - interface ICluster { - - /** Cluster name */ - name?: (string|null); - - /** Cluster createTime */ - createTime?: (google.protobuf.ITimestamp|null); - - /** Cluster state */ - state?: (google.cloud.redis.cluster.v1beta1.Cluster.State|keyof typeof google.cloud.redis.cluster.v1beta1.Cluster.State|null); - - /** Cluster uid */ - uid?: (string|null); - - /** Cluster replicaCount */ - replicaCount?: (number|null); - - /** Cluster authorizationMode */ - authorizationMode?: (google.cloud.redis.cluster.v1beta1.AuthorizationMode|keyof typeof google.cloud.redis.cluster.v1beta1.AuthorizationMode|null); - - /** Cluster transitEncryptionMode */ - transitEncryptionMode?: (google.cloud.redis.cluster.v1beta1.TransitEncryptionMode|keyof typeof google.cloud.redis.cluster.v1beta1.TransitEncryptionMode|null); - - /** Cluster sizeGb */ - sizeGb?: (number|null); - - /** Cluster shardCount */ - shardCount?: (number|null); - - /** Cluster pscConfigs */ - pscConfigs?: (google.cloud.redis.cluster.v1beta1.IPscConfig[]|null); - - /** Cluster discoveryEndpoints */ - discoveryEndpoints?: (google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint[]|null); - - /** Cluster pscConnections */ - pscConnections?: (google.cloud.redis.cluster.v1beta1.IPscConnection[]|null); - - /** Cluster stateInfo */ - stateInfo?: (google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo|null); - - /** Cluster nodeType */ - nodeType?: (google.cloud.redis.cluster.v1beta1.NodeType|keyof typeof google.cloud.redis.cluster.v1beta1.NodeType|null); - - /** Cluster persistenceConfig */ - persistenceConfig?: (google.cloud.redis.cluster.v1beta1.IClusterPersistenceConfig|null); - - /** Cluster redisConfigs */ - redisConfigs?: ({ [k: string]: string }|null); - - /** Cluster preciseSizeGb */ - preciseSizeGb?: (number|null); - - /** Cluster zoneDistributionConfig */ - zoneDistributionConfig?: (google.cloud.redis.cluster.v1beta1.IZoneDistributionConfig|null); + /** Properties of a PscConfig. */ + interface IPscConfig { - /** Cluster deletionProtectionEnabled */ - deletionProtectionEnabled?: (boolean|null); + /** PscConfig network */ + network?: (string|null); } - /** Represents a Cluster. */ - class Cluster implements ICluster { + /** Represents a PscConfig. */ + class PscConfig implements IPscConfig { /** - * Constructs a new Cluster. + * Constructs a new PscConfig. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1beta1.ICluster); - - /** Cluster name. */ - public name: string; - - /** Cluster createTime. */ - public createTime?: (google.protobuf.ITimestamp|null); - - /** Cluster state. */ - public state: (google.cloud.redis.cluster.v1beta1.Cluster.State|keyof typeof google.cloud.redis.cluster.v1beta1.Cluster.State); - - /** Cluster uid. */ - public uid: string; + constructor(properties?: google.cloud.redis.cluster.v1beta1.IPscConfig); - /** Cluster replicaCount. */ - public replicaCount?: (number|null); + /** PscConfig network. */ + public network: string; - /** Cluster authorizationMode. */ - public authorizationMode: (google.cloud.redis.cluster.v1beta1.AuthorizationMode|keyof typeof google.cloud.redis.cluster.v1beta1.AuthorizationMode); + /** + * Creates a new PscConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns PscConfig instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.IPscConfig): google.cloud.redis.cluster.v1beta1.PscConfig; - /** Cluster transitEncryptionMode. */ - public transitEncryptionMode: (google.cloud.redis.cluster.v1beta1.TransitEncryptionMode|keyof typeof google.cloud.redis.cluster.v1beta1.TransitEncryptionMode); + /** + * Encodes the specified PscConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscConfig.verify|verify} messages. + * @param message PscConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.IPscConfig, writer?: $protobuf.Writer): $protobuf.Writer; - /** Cluster sizeGb. */ - public sizeGb?: (number|null); + /** + * Encodes the specified PscConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscConfig.verify|verify} messages. + * @param message PscConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IPscConfig, writer?: $protobuf.Writer): $protobuf.Writer; - /** Cluster shardCount. */ - public shardCount?: (number|null); + /** + * Decodes a PscConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PscConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.PscConfig; - /** Cluster pscConfigs. */ - public pscConfigs: google.cloud.redis.cluster.v1beta1.IPscConfig[]; + /** + * Decodes a PscConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PscConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.PscConfig; - /** Cluster discoveryEndpoints. */ - public discoveryEndpoints: google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint[]; + /** + * Verifies a PscConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** Cluster pscConnections. */ - public pscConnections: google.cloud.redis.cluster.v1beta1.IPscConnection[]; + /** + * Creates a PscConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PscConfig + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.PscConfig; - /** Cluster stateInfo. */ - public stateInfo?: (google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo|null); + /** + * Creates a plain object from a PscConfig message. Also converts values to other types if specified. + * @param message PscConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.PscConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** Cluster nodeType. */ - public nodeType: (google.cloud.redis.cluster.v1beta1.NodeType|keyof typeof google.cloud.redis.cluster.v1beta1.NodeType); + /** + * Converts this PscConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; - /** Cluster persistenceConfig. */ - public persistenceConfig?: (google.cloud.redis.cluster.v1beta1.IClusterPersistenceConfig|null); + /** + * Gets the default type url for PscConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } - /** Cluster redisConfigs. */ - public redisConfigs: { [k: string]: string }; + /** Properties of a DiscoveryEndpoint. */ + interface IDiscoveryEndpoint { - /** Cluster preciseSizeGb. */ - public preciseSizeGb?: (number|null); + /** DiscoveryEndpoint address */ + address?: (string|null); - /** Cluster zoneDistributionConfig. */ - public zoneDistributionConfig?: (google.cloud.redis.cluster.v1beta1.IZoneDistributionConfig|null); + /** DiscoveryEndpoint port */ + port?: (number|null); - /** Cluster deletionProtectionEnabled. */ - public deletionProtectionEnabled?: (boolean|null); + /** DiscoveryEndpoint pscConfig */ + pscConfig?: (google.cloud.redis.cluster.v1beta1.IPscConfig|null); + } - /** Cluster _replicaCount. */ - public _replicaCount?: "replicaCount"; + /** Represents a DiscoveryEndpoint. */ + class DiscoveryEndpoint implements IDiscoveryEndpoint { - /** Cluster _sizeGb. */ - public _sizeGb?: "sizeGb"; + /** + * Constructs a new DiscoveryEndpoint. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint); - /** Cluster _shardCount. */ - public _shardCount?: "shardCount"; + /** DiscoveryEndpoint address. */ + public address: string; - /** Cluster _preciseSizeGb. */ - public _preciseSizeGb?: "preciseSizeGb"; + /** DiscoveryEndpoint port. */ + public port: number; - /** Cluster _deletionProtectionEnabled. */ - public _deletionProtectionEnabled?: "deletionProtectionEnabled"; + /** DiscoveryEndpoint pscConfig. */ + public pscConfig?: (google.cloud.redis.cluster.v1beta1.IPscConfig|null); /** - * Creates a new Cluster instance using the specified properties. + * Creates a new DiscoveryEndpoint instance using the specified properties. * @param [properties] Properties to set - * @returns Cluster instance + * @returns DiscoveryEndpoint instance */ - public static create(properties?: google.cloud.redis.cluster.v1beta1.ICluster): google.cloud.redis.cluster.v1beta1.Cluster; + public static create(properties?: google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint): google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint; /** - * Encodes the specified Cluster message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.verify|verify} messages. - * @param message Cluster message or plain object to encode + * Encodes the specified DiscoveryEndpoint message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.verify|verify} messages. + * @param message DiscoveryEndpoint message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1beta1.ICluster, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Cluster message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.verify|verify} messages. - * @param message Cluster message or plain object to encode + * Encodes the specified DiscoveryEndpoint message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.verify|verify} messages. + * @param message DiscoveryEndpoint message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.ICluster, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Cluster message from the specified reader or buffer. + * Decodes a DiscoveryEndpoint message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Cluster + * @returns DiscoveryEndpoint * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.Cluster; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint; /** - * Decodes a Cluster message from the specified reader or buffer, length delimited. + * Decodes a DiscoveryEndpoint message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Cluster + * @returns DiscoveryEndpoint * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.Cluster; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint; /** - * Verifies a Cluster message. + * Verifies a DiscoveryEndpoint message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a Cluster message from a plain object. Also converts values to their respective internal types. + * Creates a DiscoveryEndpoint message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Cluster + * @returns DiscoveryEndpoint */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.Cluster; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint; /** - * Creates a plain object from a Cluster message. Also converts values to other types if specified. - * @param message Cluster + * Creates a plain object from a DiscoveryEndpoint message. Also converts values to other types if specified. + * @param message DiscoveryEndpoint * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1beta1.Cluster, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Cluster to JSON. + * Converts this DiscoveryEndpoint to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for Cluster + * Gets the default type url for DiscoveryEndpoint * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - namespace Cluster { - - /** Properties of a StateInfo. */ - interface IStateInfo { - - /** StateInfo updateInfo */ - updateInfo?: (google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo|null); - } - - /** Represents a StateInfo. */ - class StateInfo implements IStateInfo { - - /** - * Constructs a new StateInfo. - * @param [properties] Properties to set - */ - constructor(properties?: google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo); - - /** StateInfo updateInfo. */ - public updateInfo?: (google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo|null); - - /** StateInfo info. */ - public info?: "updateInfo"; - - /** - * Creates a new StateInfo instance using the specified properties. - * @param [properties] Properties to set - * @returns StateInfo instance - */ - public static create(properties?: google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo): google.cloud.redis.cluster.v1beta1.Cluster.StateInfo; - - /** - * Encodes the specified StateInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.verify|verify} messages. - * @param message StateInfo message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified StateInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.verify|verify} messages. - * @param message StateInfo message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a StateInfo message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns StateInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.Cluster.StateInfo; - - /** - * Decodes a StateInfo message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns StateInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.Cluster.StateInfo; + /** Properties of a PscConnection. */ + interface IPscConnection { - /** - * Verifies a StateInfo message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** PscConnection pscConnectionId */ + pscConnectionId?: (string|null); - /** - * Creates a StateInfo message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns StateInfo - */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.Cluster.StateInfo; + /** PscConnection address */ + address?: (string|null); - /** - * Creates a plain object from a StateInfo message. Also converts values to other types if specified. - * @param message StateInfo - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.cloud.redis.cluster.v1beta1.Cluster.StateInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** PscConnection forwardingRule */ + forwardingRule?: (string|null); - /** - * Converts this StateInfo to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; + /** PscConnection projectId */ + projectId?: (string|null); - /** - * Gets the default type url for StateInfo - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } + /** PscConnection network */ + network?: (string|null); - namespace StateInfo { + /** PscConnection serviceAttachment */ + serviceAttachment?: (string|null); - /** Properties of an UpdateInfo. */ - interface IUpdateInfo { + /** PscConnection pscConnectionStatus */ + pscConnectionStatus?: (google.cloud.redis.cluster.v1beta1.PscConnectionStatus|keyof typeof google.cloud.redis.cluster.v1beta1.PscConnectionStatus|null); - /** UpdateInfo targetShardCount */ - targetShardCount?: (number|null); + /** PscConnection connectionType */ + connectionType?: (google.cloud.redis.cluster.v1beta1.ConnectionType|keyof typeof google.cloud.redis.cluster.v1beta1.ConnectionType|null); + } - /** UpdateInfo targetReplicaCount */ - targetReplicaCount?: (number|null); - } + /** Represents a PscConnection. */ + class PscConnection implements IPscConnection { - /** Represents an UpdateInfo. */ - class UpdateInfo implements IUpdateInfo { + /** + * Constructs a new PscConnection. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.IPscConnection); - /** - * Constructs a new UpdateInfo. - * @param [properties] Properties to set - */ - constructor(properties?: google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo); + /** PscConnection pscConnectionId. */ + public pscConnectionId: string; - /** UpdateInfo targetShardCount. */ - public targetShardCount?: (number|null); + /** PscConnection address. */ + public address: string; - /** UpdateInfo targetReplicaCount. */ - public targetReplicaCount?: (number|null); + /** PscConnection forwardingRule. */ + public forwardingRule: string; - /** UpdateInfo _targetShardCount. */ - public _targetShardCount?: "targetShardCount"; + /** PscConnection projectId. */ + public projectId: string; - /** UpdateInfo _targetReplicaCount. */ - public _targetReplicaCount?: "targetReplicaCount"; + /** PscConnection network. */ + public network: string; - /** - * Creates a new UpdateInfo instance using the specified properties. - * @param [properties] Properties to set - * @returns UpdateInfo instance - */ - public static create(properties?: google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo): google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo; + /** PscConnection serviceAttachment. */ + public serviceAttachment: string; - /** - * Encodes the specified UpdateInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo.verify|verify} messages. - * @param message UpdateInfo message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo, writer?: $protobuf.Writer): $protobuf.Writer; + /** PscConnection pscConnectionStatus. */ + public pscConnectionStatus: (google.cloud.redis.cluster.v1beta1.PscConnectionStatus|keyof typeof google.cloud.redis.cluster.v1beta1.PscConnectionStatus); - /** - * Encodes the specified UpdateInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo.verify|verify} messages. - * @param message UpdateInfo message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo, writer?: $protobuf.Writer): $protobuf.Writer; + /** PscConnection connectionType. */ + public connectionType: (google.cloud.redis.cluster.v1beta1.ConnectionType|keyof typeof google.cloud.redis.cluster.v1beta1.ConnectionType); - /** - * Decodes an UpdateInfo message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns UpdateInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo; + /** + * Creates a new PscConnection instance using the specified properties. + * @param [properties] Properties to set + * @returns PscConnection instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.IPscConnection): google.cloud.redis.cluster.v1beta1.PscConnection; - /** - * Decodes an UpdateInfo message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns UpdateInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo; + /** + * Encodes the specified PscConnection message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscConnection.verify|verify} messages. + * @param message PscConnection message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.IPscConnection, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Verifies an UpdateInfo message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Encodes the specified PscConnection message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscConnection.verify|verify} messages. + * @param message PscConnection message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IPscConnection, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates an UpdateInfo message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns UpdateInfo - */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo; + /** + * Decodes a PscConnection message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PscConnection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.PscConnection; - /** - * Creates a plain object from an UpdateInfo message. Also converts values to other types if specified. - * @param message UpdateInfo - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Decodes a PscConnection message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PscConnection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.PscConnection; - /** - * Converts this UpdateInfo to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; + /** + * Verifies a PscConnection message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Gets the default type url for UpdateInfo - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - } + /** + * Creates a PscConnection message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PscConnection + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.PscConnection; - /** State enum. */ - enum State { - STATE_UNSPECIFIED = 0, - CREATING = 1, - ACTIVE = 2, - UPDATING = 3, - DELETING = 4 - } + /** + * Creates a plain object from a PscConnection message. Also converts values to other types if specified. + * @param message PscConnection + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.PscConnection, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this PscConnection to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for PscConnection + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a PscConfig. */ - interface IPscConfig { + /** Properties of a ClusterEndpoint. */ + interface IClusterEndpoint { - /** PscConfig network */ - network?: (string|null); + /** ClusterEndpoint connections */ + connections?: (google.cloud.redis.cluster.v1beta1.IConnectionDetail[]|null); } - /** Represents a PscConfig. */ - class PscConfig implements IPscConfig { + /** Represents a ClusterEndpoint. */ + class ClusterEndpoint implements IClusterEndpoint { /** - * Constructs a new PscConfig. + * Constructs a new ClusterEndpoint. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1beta1.IPscConfig); + constructor(properties?: google.cloud.redis.cluster.v1beta1.IClusterEndpoint); - /** PscConfig network. */ - public network: string; + /** ClusterEndpoint connections. */ + public connections: google.cloud.redis.cluster.v1beta1.IConnectionDetail[]; /** - * Creates a new PscConfig instance using the specified properties. + * Creates a new ClusterEndpoint instance using the specified properties. * @param [properties] Properties to set - * @returns PscConfig instance + * @returns ClusterEndpoint instance */ - public static create(properties?: google.cloud.redis.cluster.v1beta1.IPscConfig): google.cloud.redis.cluster.v1beta1.PscConfig; + public static create(properties?: google.cloud.redis.cluster.v1beta1.IClusterEndpoint): google.cloud.redis.cluster.v1beta1.ClusterEndpoint; /** - * Encodes the specified PscConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscConfig.verify|verify} messages. - * @param message PscConfig message or plain object to encode + * Encodes the specified ClusterEndpoint message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ClusterEndpoint.verify|verify} messages. + * @param message ClusterEndpoint message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1beta1.IPscConfig, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.IClusterEndpoint, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified PscConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscConfig.verify|verify} messages. - * @param message PscConfig message or plain object to encode + * Encodes the specified ClusterEndpoint message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ClusterEndpoint.verify|verify} messages. + * @param message ClusterEndpoint message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IPscConfig, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IClusterEndpoint, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a PscConfig message from the specified reader or buffer. + * Decodes a ClusterEndpoint message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns PscConfig + * @returns ClusterEndpoint * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.PscConfig; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.ClusterEndpoint; /** - * Decodes a PscConfig message from the specified reader or buffer, length delimited. + * Decodes a ClusterEndpoint message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns PscConfig + * @returns ClusterEndpoint * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.PscConfig; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.ClusterEndpoint; /** - * Verifies a PscConfig message. + * Verifies a ClusterEndpoint message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a PscConfig message from a plain object. Also converts values to their respective internal types. + * Creates a ClusterEndpoint message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns PscConfig + * @returns ClusterEndpoint */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.PscConfig; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.ClusterEndpoint; /** - * Creates a plain object from a PscConfig message. Also converts values to other types if specified. - * @param message PscConfig + * Creates a plain object from a ClusterEndpoint message. Also converts values to other types if specified. + * @param message ClusterEndpoint * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1beta1.PscConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.ClusterEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this PscConfig to JSON. + * Converts this ClusterEndpoint to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for PscConfig + * Gets the default type url for ClusterEndpoint * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a DiscoveryEndpoint. */ - interface IDiscoveryEndpoint { - - /** DiscoveryEndpoint address */ - address?: (string|null); + /** Properties of a ConnectionDetail. */ + interface IConnectionDetail { - /** DiscoveryEndpoint port */ - port?: (number|null); + /** ConnectionDetail pscAutoConnection */ + pscAutoConnection?: (google.cloud.redis.cluster.v1beta1.IPscAutoConnection|null); - /** DiscoveryEndpoint pscConfig */ - pscConfig?: (google.cloud.redis.cluster.v1beta1.IPscConfig|null); + /** ConnectionDetail pscConnection */ + pscConnection?: (google.cloud.redis.cluster.v1beta1.IPscConnection|null); } - /** Represents a DiscoveryEndpoint. */ - class DiscoveryEndpoint implements IDiscoveryEndpoint { + /** Represents a ConnectionDetail. */ + class ConnectionDetail implements IConnectionDetail { /** - * Constructs a new DiscoveryEndpoint. + * Constructs a new ConnectionDetail. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint); + constructor(properties?: google.cloud.redis.cluster.v1beta1.IConnectionDetail); - /** DiscoveryEndpoint address. */ - public address: string; + /** ConnectionDetail pscAutoConnection. */ + public pscAutoConnection?: (google.cloud.redis.cluster.v1beta1.IPscAutoConnection|null); - /** DiscoveryEndpoint port. */ - public port: number; + /** ConnectionDetail pscConnection. */ + public pscConnection?: (google.cloud.redis.cluster.v1beta1.IPscConnection|null); - /** DiscoveryEndpoint pscConfig. */ - public pscConfig?: (google.cloud.redis.cluster.v1beta1.IPscConfig|null); + /** ConnectionDetail connection. */ + public connection?: ("pscAutoConnection"|"pscConnection"); /** - * Creates a new DiscoveryEndpoint instance using the specified properties. + * Creates a new ConnectionDetail instance using the specified properties. * @param [properties] Properties to set - * @returns DiscoveryEndpoint instance + * @returns ConnectionDetail instance */ - public static create(properties?: google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint): google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint; + public static create(properties?: google.cloud.redis.cluster.v1beta1.IConnectionDetail): google.cloud.redis.cluster.v1beta1.ConnectionDetail; /** - * Encodes the specified DiscoveryEndpoint message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.verify|verify} messages. - * @param message DiscoveryEndpoint message or plain object to encode + * Encodes the specified ConnectionDetail message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ConnectionDetail.verify|verify} messages. + * @param message ConnectionDetail message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.IConnectionDetail, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified DiscoveryEndpoint message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.verify|verify} messages. - * @param message DiscoveryEndpoint message or plain object to encode + * Encodes the specified ConnectionDetail message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ConnectionDetail.verify|verify} messages. + * @param message ConnectionDetail message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IConnectionDetail, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a DiscoveryEndpoint message from the specified reader or buffer. + * Decodes a ConnectionDetail message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns DiscoveryEndpoint + * @returns ConnectionDetail * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.ConnectionDetail; /** - * Decodes a DiscoveryEndpoint message from the specified reader or buffer, length delimited. + * Decodes a ConnectionDetail message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns DiscoveryEndpoint + * @returns ConnectionDetail * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.ConnectionDetail; /** - * Verifies a DiscoveryEndpoint message. + * Verifies a ConnectionDetail message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a DiscoveryEndpoint message from a plain object. Also converts values to their respective internal types. + * Creates a ConnectionDetail message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns DiscoveryEndpoint + * @returns ConnectionDetail */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.ConnectionDetail; /** - * Creates a plain object from a DiscoveryEndpoint message. Also converts values to other types if specified. - * @param message DiscoveryEndpoint + * Creates a plain object from a ConnectionDetail message. Also converts values to other types if specified. + * @param message ConnectionDetail * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.ConnectionDetail, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this DiscoveryEndpoint to JSON. + * Converts this ConnectionDetail to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for DiscoveryEndpoint + * Gets the default type url for ConnectionDetail * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a PscConnection. */ - interface IPscConnection { + /** Properties of a PscAutoConnection. */ + interface IPscAutoConnection { - /** PscConnection pscConnectionId */ + /** PscAutoConnection pscConnectionId */ pscConnectionId?: (string|null); - /** PscConnection address */ + /** PscAutoConnection address */ address?: (string|null); - /** PscConnection forwardingRule */ + /** PscAutoConnection forwardingRule */ forwardingRule?: (string|null); - /** PscConnection projectId */ + /** PscAutoConnection projectId */ projectId?: (string|null); - /** PscConnection network */ + /** PscAutoConnection network */ network?: (string|null); + + /** PscAutoConnection serviceAttachment */ + serviceAttachment?: (string|null); + + /** PscAutoConnection pscConnectionStatus */ + pscConnectionStatus?: (google.cloud.redis.cluster.v1beta1.PscConnectionStatus|keyof typeof google.cloud.redis.cluster.v1beta1.PscConnectionStatus|null); + + /** PscAutoConnection connectionType */ + connectionType?: (google.cloud.redis.cluster.v1beta1.ConnectionType|keyof typeof google.cloud.redis.cluster.v1beta1.ConnectionType|null); } - /** Represents a PscConnection. */ - class PscConnection implements IPscConnection { + /** Represents a PscAutoConnection. */ + class PscAutoConnection implements IPscAutoConnection { /** - * Constructs a new PscConnection. + * Constructs a new PscAutoConnection. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1beta1.IPscConnection); + constructor(properties?: google.cloud.redis.cluster.v1beta1.IPscAutoConnection); - /** PscConnection pscConnectionId. */ + /** PscAutoConnection pscConnectionId. */ public pscConnectionId: string; - /** PscConnection address. */ + /** PscAutoConnection address. */ public address: string; - /** PscConnection forwardingRule. */ + /** PscAutoConnection forwardingRule. */ public forwardingRule: string; - /** PscConnection projectId. */ + /** PscAutoConnection projectId. */ public projectId: string; - /** PscConnection network. */ + /** PscAutoConnection network. */ public network: string; + /** PscAutoConnection serviceAttachment. */ + public serviceAttachment: string; + + /** PscAutoConnection pscConnectionStatus. */ + public pscConnectionStatus: (google.cloud.redis.cluster.v1beta1.PscConnectionStatus|keyof typeof google.cloud.redis.cluster.v1beta1.PscConnectionStatus); + + /** PscAutoConnection connectionType. */ + public connectionType: (google.cloud.redis.cluster.v1beta1.ConnectionType|keyof typeof google.cloud.redis.cluster.v1beta1.ConnectionType); + /** - * Creates a new PscConnection instance using the specified properties. + * Creates a new PscAutoConnection instance using the specified properties. * @param [properties] Properties to set - * @returns PscConnection instance + * @returns PscAutoConnection instance */ - public static create(properties?: google.cloud.redis.cluster.v1beta1.IPscConnection): google.cloud.redis.cluster.v1beta1.PscConnection; + public static create(properties?: google.cloud.redis.cluster.v1beta1.IPscAutoConnection): google.cloud.redis.cluster.v1beta1.PscAutoConnection; /** - * Encodes the specified PscConnection message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscConnection.verify|verify} messages. - * @param message PscConnection message or plain object to encode + * Encodes the specified PscAutoConnection message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscAutoConnection.verify|verify} messages. + * @param message PscAutoConnection message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1beta1.IPscConnection, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.IPscAutoConnection, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified PscConnection message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscConnection.verify|verify} messages. - * @param message PscConnection message or plain object to encode + * Encodes the specified PscAutoConnection message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscAutoConnection.verify|verify} messages. + * @param message PscAutoConnection message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IPscConnection, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IPscAutoConnection, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a PscConnection message from the specified reader or buffer. + * Decodes a PscAutoConnection message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns PscConnection + * @returns PscAutoConnection * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.PscConnection; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.PscAutoConnection; /** - * Decodes a PscConnection message from the specified reader or buffer, length delimited. + * Decodes a PscAutoConnection message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns PscConnection + * @returns PscAutoConnection * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.PscConnection; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.PscAutoConnection; /** - * Verifies a PscConnection message. + * Verifies a PscAutoConnection message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a PscConnection message from a plain object. Also converts values to their respective internal types. + * Creates a PscAutoConnection message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns PscConnection + * @returns PscAutoConnection */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.PscConnection; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.PscAutoConnection; /** - * Creates a plain object from a PscConnection message. Also converts values to other types if specified. - * @param message PscConnection + * Creates a plain object from a PscAutoConnection message. Also converts values to other types if specified. + * @param message PscAutoConnection * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1beta1.PscConnection, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.PscAutoConnection, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this PscConnection to JSON. + * Converts this PscAutoConnection to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for PscConnection + * Gets the default type url for PscAutoConnection * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ @@ -5027,165 +11644,422 @@ export namespace google { */ public static verify(message: { [k: string]: any }): (string|null); - /** - * Creates a AOFConfig message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns AOFConfig - */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.ClusterPersistenceConfig.AOFConfig; + /** + * Creates a AOFConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns AOFConfig + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.ClusterPersistenceConfig.AOFConfig; + + /** + * Creates a plain object from a AOFConfig message. Also converts values to other types if specified. + * @param message AOFConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.ClusterPersistenceConfig.AOFConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this AOFConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for AOFConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace AOFConfig { + + /** AppendFsync enum. */ + enum AppendFsync { + APPEND_FSYNC_UNSPECIFIED = 0, + NO = 1, + EVERYSEC = 2, + ALWAYS = 3 + } + } + + /** PersistenceMode enum. */ + enum PersistenceMode { + PERSISTENCE_MODE_UNSPECIFIED = 0, + DISABLED = 1, + RDB = 2, + AOF = 3 + } + } + + /** Properties of a ZoneDistributionConfig. */ + interface IZoneDistributionConfig { + + /** ZoneDistributionConfig mode */ + mode?: (google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.ZoneDistributionMode|keyof typeof google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.ZoneDistributionMode|null); + + /** ZoneDistributionConfig zone */ + zone?: (string|null); + } + + /** Represents a ZoneDistributionConfig. */ + class ZoneDistributionConfig implements IZoneDistributionConfig { + + /** + * Constructs a new ZoneDistributionConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.IZoneDistributionConfig); + + /** ZoneDistributionConfig mode. */ + public mode: (google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.ZoneDistributionMode|keyof typeof google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.ZoneDistributionMode); + + /** ZoneDistributionConfig zone. */ + public zone: string; + + /** + * Creates a new ZoneDistributionConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns ZoneDistributionConfig instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.IZoneDistributionConfig): google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig; + + /** + * Encodes the specified ZoneDistributionConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.verify|verify} messages. + * @param message ZoneDistributionConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.IZoneDistributionConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ZoneDistributionConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.verify|verify} messages. + * @param message ZoneDistributionConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IZoneDistributionConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ZoneDistributionConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ZoneDistributionConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig; + + /** + * Decodes a ZoneDistributionConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ZoneDistributionConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig; + + /** + * Verifies a ZoneDistributionConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ZoneDistributionConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ZoneDistributionConfig + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig; + + /** + * Creates a plain object from a ZoneDistributionConfig message. Also converts values to other types if specified. + * @param message ZoneDistributionConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ZoneDistributionConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ZoneDistributionConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace ZoneDistributionConfig { + + /** ZoneDistributionMode enum. */ + enum ZoneDistributionMode { + ZONE_DISTRIBUTION_MODE_UNSPECIFIED = 0, + MULTI_ZONE = 1, + SINGLE_ZONE = 2 + } + } + + /** Properties of a RescheduleClusterMaintenanceRequest. */ + interface IRescheduleClusterMaintenanceRequest { + + /** RescheduleClusterMaintenanceRequest name */ + name?: (string|null); + + /** RescheduleClusterMaintenanceRequest rescheduleType */ + rescheduleType?: (google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest.RescheduleType|keyof typeof google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest.RescheduleType|null); + + /** RescheduleClusterMaintenanceRequest scheduleTime */ + scheduleTime?: (google.protobuf.ITimestamp|null); + } + + /** Represents a RescheduleClusterMaintenanceRequest. */ + class RescheduleClusterMaintenanceRequest implements IRescheduleClusterMaintenanceRequest { + + /** + * Constructs a new RescheduleClusterMaintenanceRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.redis.cluster.v1beta1.IRescheduleClusterMaintenanceRequest); + + /** RescheduleClusterMaintenanceRequest name. */ + public name: string; + + /** RescheduleClusterMaintenanceRequest rescheduleType. */ + public rescheduleType: (google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest.RescheduleType|keyof typeof google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest.RescheduleType); + + /** RescheduleClusterMaintenanceRequest scheduleTime. */ + public scheduleTime?: (google.protobuf.ITimestamp|null); + + /** + * Creates a new RescheduleClusterMaintenanceRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns RescheduleClusterMaintenanceRequest instance + */ + public static create(properties?: google.cloud.redis.cluster.v1beta1.IRescheduleClusterMaintenanceRequest): google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest; + + /** + * Encodes the specified RescheduleClusterMaintenanceRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest.verify|verify} messages. + * @param message RescheduleClusterMaintenanceRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.redis.cluster.v1beta1.IRescheduleClusterMaintenanceRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified RescheduleClusterMaintenanceRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest.verify|verify} messages. + * @param message RescheduleClusterMaintenanceRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IRescheduleClusterMaintenanceRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RescheduleClusterMaintenanceRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RescheduleClusterMaintenanceRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest; + + /** + * Decodes a RescheduleClusterMaintenanceRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RescheduleClusterMaintenanceRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest; + + /** + * Verifies a RescheduleClusterMaintenanceRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Creates a plain object from a AOFConfig message. Also converts values to other types if specified. - * @param message AOFConfig - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.cloud.redis.cluster.v1beta1.ClusterPersistenceConfig.AOFConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Creates a RescheduleClusterMaintenanceRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RescheduleClusterMaintenanceRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest; - /** - * Converts this AOFConfig to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; + /** + * Creates a plain object from a RescheduleClusterMaintenanceRequest message. Also converts values to other types if specified. + * @param message RescheduleClusterMaintenanceRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Gets the default type url for AOFConfig - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } + /** + * Converts this RescheduleClusterMaintenanceRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; - namespace AOFConfig { + /** + * Gets the default type url for RescheduleClusterMaintenanceRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } - /** AppendFsync enum. */ - enum AppendFsync { - APPEND_FSYNC_UNSPECIFIED = 0, - NO = 1, - EVERYSEC = 2, - ALWAYS = 3 - } - } + namespace RescheduleClusterMaintenanceRequest { - /** PersistenceMode enum. */ - enum PersistenceMode { - PERSISTENCE_MODE_UNSPECIFIED = 0, - DISABLED = 1, - RDB = 2, - AOF = 3 + /** RescheduleType enum. */ + enum RescheduleType { + RESCHEDULE_TYPE_UNSPECIFIED = 0, + IMMEDIATE = 1, + SPECIFIC_TIME = 3 } } - /** Properties of a ZoneDistributionConfig. */ - interface IZoneDistributionConfig { + /** Properties of an EncryptionInfo. */ + interface IEncryptionInfo { - /** ZoneDistributionConfig mode */ - mode?: (google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.ZoneDistributionMode|keyof typeof google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.ZoneDistributionMode|null); + /** EncryptionInfo encryptionType */ + encryptionType?: (google.cloud.redis.cluster.v1beta1.EncryptionInfo.Type|keyof typeof google.cloud.redis.cluster.v1beta1.EncryptionInfo.Type|null); - /** ZoneDistributionConfig zone */ - zone?: (string|null); + /** EncryptionInfo kmsKeyVersions */ + kmsKeyVersions?: (string[]|null); + + /** EncryptionInfo kmsKeyPrimaryState */ + kmsKeyPrimaryState?: (google.cloud.redis.cluster.v1beta1.EncryptionInfo.KmsKeyState|keyof typeof google.cloud.redis.cluster.v1beta1.EncryptionInfo.KmsKeyState|null); + + /** EncryptionInfo lastUpdateTime */ + lastUpdateTime?: (google.protobuf.ITimestamp|null); } - /** Represents a ZoneDistributionConfig. */ - class ZoneDistributionConfig implements IZoneDistributionConfig { + /** Represents an EncryptionInfo. */ + class EncryptionInfo implements IEncryptionInfo { /** - * Constructs a new ZoneDistributionConfig. + * Constructs a new EncryptionInfo. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.redis.cluster.v1beta1.IZoneDistributionConfig); + constructor(properties?: google.cloud.redis.cluster.v1beta1.IEncryptionInfo); - /** ZoneDistributionConfig mode. */ - public mode: (google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.ZoneDistributionMode|keyof typeof google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.ZoneDistributionMode); + /** EncryptionInfo encryptionType. */ + public encryptionType: (google.cloud.redis.cluster.v1beta1.EncryptionInfo.Type|keyof typeof google.cloud.redis.cluster.v1beta1.EncryptionInfo.Type); - /** ZoneDistributionConfig zone. */ - public zone: string; + /** EncryptionInfo kmsKeyVersions. */ + public kmsKeyVersions: string[]; + + /** EncryptionInfo kmsKeyPrimaryState. */ + public kmsKeyPrimaryState: (google.cloud.redis.cluster.v1beta1.EncryptionInfo.KmsKeyState|keyof typeof google.cloud.redis.cluster.v1beta1.EncryptionInfo.KmsKeyState); + + /** EncryptionInfo lastUpdateTime. */ + public lastUpdateTime?: (google.protobuf.ITimestamp|null); /** - * Creates a new ZoneDistributionConfig instance using the specified properties. + * Creates a new EncryptionInfo instance using the specified properties. * @param [properties] Properties to set - * @returns ZoneDistributionConfig instance + * @returns EncryptionInfo instance */ - public static create(properties?: google.cloud.redis.cluster.v1beta1.IZoneDistributionConfig): google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig; + public static create(properties?: google.cloud.redis.cluster.v1beta1.IEncryptionInfo): google.cloud.redis.cluster.v1beta1.EncryptionInfo; /** - * Encodes the specified ZoneDistributionConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.verify|verify} messages. - * @param message ZoneDistributionConfig message or plain object to encode + * Encodes the specified EncryptionInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.EncryptionInfo.verify|verify} messages. + * @param message EncryptionInfo message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.redis.cluster.v1beta1.IZoneDistributionConfig, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.redis.cluster.v1beta1.IEncryptionInfo, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified ZoneDistributionConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.verify|verify} messages. - * @param message ZoneDistributionConfig message or plain object to encode + * Encodes the specified EncryptionInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.EncryptionInfo.verify|verify} messages. + * @param message EncryptionInfo message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IZoneDistributionConfig, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.redis.cluster.v1beta1.IEncryptionInfo, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a ZoneDistributionConfig message from the specified reader or buffer. + * Decodes an EncryptionInfo message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ZoneDistributionConfig + * @returns EncryptionInfo * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.redis.cluster.v1beta1.EncryptionInfo; /** - * Decodes a ZoneDistributionConfig message from the specified reader or buffer, length delimited. + * Decodes an EncryptionInfo message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns ZoneDistributionConfig + * @returns EncryptionInfo * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.redis.cluster.v1beta1.EncryptionInfo; /** - * Verifies a ZoneDistributionConfig message. + * Verifies an EncryptionInfo message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a ZoneDistributionConfig message from a plain object. Also converts values to their respective internal types. + * Creates an EncryptionInfo message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns ZoneDistributionConfig + * @returns EncryptionInfo */ - public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig; + public static fromObject(object: { [k: string]: any }): google.cloud.redis.cluster.v1beta1.EncryptionInfo; /** - * Creates a plain object from a ZoneDistributionConfig message. Also converts values to other types if specified. - * @param message ZoneDistributionConfig + * Creates a plain object from an EncryptionInfo message. Also converts values to other types if specified. + * @param message EncryptionInfo * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.redis.cluster.v1beta1.EncryptionInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this ZoneDistributionConfig to JSON. + * Converts this EncryptionInfo to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for ZoneDistributionConfig + * Gets the default type url for EncryptionInfo * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - namespace ZoneDistributionConfig { + namespace EncryptionInfo { - /** ZoneDistributionMode enum. */ - enum ZoneDistributionMode { - ZONE_DISTRIBUTION_MODE_UNSPECIFIED = 0, - MULTI_ZONE = 1, - SINGLE_ZONE = 2 + /** Type enum. */ + enum Type { + TYPE_UNSPECIFIED = 0, + GOOGLE_DEFAULT_ENCRYPTION = 1, + CUSTOMER_MANAGED_ENCRYPTION = 2 + } + + /** KmsKeyState enum. */ + enum KmsKeyState { + KMS_KEY_STATE_UNSPECIFIED = 0, + ENABLED = 1, + PERMISSION_DENIED = 2, + DISABLED = 3, + DESTROYED = 4, + DESTROY_SCHEDULED = 5, + EKM_KEY_UNREACHABLE_DETECTED = 6, + BILLING_DISABLED = 7, + UNKNOWN_FAILURE = 8 } } } @@ -7056,6 +13930,115 @@ export namespace google { IDENTIFIER = 8 } + /** Properties of a FieldInfo. */ + interface IFieldInfo { + + /** FieldInfo format */ + format?: (google.api.FieldInfo.Format|keyof typeof google.api.FieldInfo.Format|null); + } + + /** Represents a FieldInfo. */ + class FieldInfo implements IFieldInfo { + + /** + * Constructs a new FieldInfo. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.IFieldInfo); + + /** FieldInfo format. */ + public format: (google.api.FieldInfo.Format|keyof typeof google.api.FieldInfo.Format); + + /** + * Creates a new FieldInfo instance using the specified properties. + * @param [properties] Properties to set + * @returns FieldInfo instance + */ + public static create(properties?: google.api.IFieldInfo): google.api.FieldInfo; + + /** + * Encodes the specified FieldInfo message. Does not implicitly {@link google.api.FieldInfo.verify|verify} messages. + * @param message FieldInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.api.IFieldInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified FieldInfo message, length delimited. Does not implicitly {@link google.api.FieldInfo.verify|verify} messages. + * @param message FieldInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.api.IFieldInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a FieldInfo message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FieldInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.FieldInfo; + + /** + * Decodes a FieldInfo message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FieldInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.FieldInfo; + + /** + * Verifies a FieldInfo message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a FieldInfo message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FieldInfo + */ + public static fromObject(object: { [k: string]: any }): google.api.FieldInfo; + + /** + * Creates a plain object from a FieldInfo message. Also converts values to other types if specified. + * @param message FieldInfo + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.api.FieldInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this FieldInfo to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for FieldInfo + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace FieldInfo { + + /** Format enum. */ + enum Format { + FORMAT_UNSPECIFIED = 0, + UUID4 = 1, + IPV4 = 2, + IPV6 = 3, + IPV4_OR_IPV6 = 4 + } + } + /** Properties of a ResourceDescriptor. */ interface IResourceDescriptor { @@ -9479,6 +16462,9 @@ export namespace google { /** FieldOptions .google.api.fieldBehavior */ ".google.api.fieldBehavior"?: (google.api.FieldBehavior[]|null); + /** FieldOptions .google.api.fieldInfo */ + ".google.api.fieldInfo"?: (google.api.IFieldInfo|null); + /** FieldOptions .google.api.resourceReference */ ".google.api.resourceReference"?: (google.api.IResourceReference|null); } @@ -12999,4 +19985,135 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } } + + /** Namespace type. */ + namespace type { + + /** DayOfWeek enum. */ + enum DayOfWeek { + DAY_OF_WEEK_UNSPECIFIED = 0, + MONDAY = 1, + TUESDAY = 2, + WEDNESDAY = 3, + THURSDAY = 4, + FRIDAY = 5, + SATURDAY = 6, + SUNDAY = 7 + } + + /** Properties of a TimeOfDay. */ + interface ITimeOfDay { + + /** TimeOfDay hours */ + hours?: (number|null); + + /** TimeOfDay minutes */ + minutes?: (number|null); + + /** TimeOfDay seconds */ + seconds?: (number|null); + + /** TimeOfDay nanos */ + nanos?: (number|null); + } + + /** Represents a TimeOfDay. */ + class TimeOfDay implements ITimeOfDay { + + /** + * Constructs a new TimeOfDay. + * @param [properties] Properties to set + */ + constructor(properties?: google.type.ITimeOfDay); + + /** TimeOfDay hours. */ + public hours: number; + + /** TimeOfDay minutes. */ + public minutes: number; + + /** TimeOfDay seconds. */ + public seconds: number; + + /** TimeOfDay nanos. */ + public nanos: number; + + /** + * Creates a new TimeOfDay instance using the specified properties. + * @param [properties] Properties to set + * @returns TimeOfDay instance + */ + public static create(properties?: google.type.ITimeOfDay): google.type.TimeOfDay; + + /** + * Encodes the specified TimeOfDay message. Does not implicitly {@link google.type.TimeOfDay.verify|verify} messages. + * @param message TimeOfDay message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.type.ITimeOfDay, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified TimeOfDay message, length delimited. Does not implicitly {@link google.type.TimeOfDay.verify|verify} messages. + * @param message TimeOfDay message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.type.ITimeOfDay, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a TimeOfDay message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns TimeOfDay + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.type.TimeOfDay; + + /** + * Decodes a TimeOfDay message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns TimeOfDay + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.type.TimeOfDay; + + /** + * Verifies a TimeOfDay message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a TimeOfDay message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns TimeOfDay + */ + public static fromObject(object: { [k: string]: any }): google.type.TimeOfDay; + + /** + * Creates a plain object from a TimeOfDay message. Also converts values to other types if specified. + * @param message TimeOfDay + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.type.TimeOfDay, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this TimeOfDay to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for TimeOfDay + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + } } diff --git a/packages/google-cloud-redis-cluster/protos/protos.js b/packages/google-cloud-redis-cluster/protos/protos.js index 20fe6fac824..b834cf7cd1a 100644 --- a/packages/google-cloud-redis-cluster/protos/protos.js +++ b/packages/google-cloud-redis-cluster/protos/protos.js @@ -305,9 +305,289 @@ * @variation 2 */ + /** + * Callback as used by {@link google.cloud.redis.cluster.v1.CloudRedisCluster|rescheduleClusterMaintenance}. + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @typedef RescheduleClusterMaintenanceCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.longrunning.Operation} [response] Operation + */ + + /** + * Calls RescheduleClusterMaintenance. + * @function rescheduleClusterMaintenance + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1.IRescheduleClusterMaintenanceRequest} request RescheduleClusterMaintenanceRequest message or plain object + * @param {google.cloud.redis.cluster.v1.CloudRedisCluster.RescheduleClusterMaintenanceCallback} callback Node-style callback called with the error, if any, and Operation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.rescheduleClusterMaintenance = function rescheduleClusterMaintenance(request, callback) { + return this.rpcCall(rescheduleClusterMaintenance, $root.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest, $root.google.longrunning.Operation, request, callback); + }, "name", { value: "RescheduleClusterMaintenance" }); + + /** + * Calls RescheduleClusterMaintenance. + * @function rescheduleClusterMaintenance + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1.IRescheduleClusterMaintenanceRequest} request RescheduleClusterMaintenanceRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1.CloudRedisCluster|listBackupCollections}. + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @typedef ListBackupCollectionsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.redis.cluster.v1.ListBackupCollectionsResponse} [response] ListBackupCollectionsResponse + */ + + /** + * Calls ListBackupCollections. + * @function listBackupCollections + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1.IListBackupCollectionsRequest} request ListBackupCollectionsRequest message or plain object + * @param {google.cloud.redis.cluster.v1.CloudRedisCluster.ListBackupCollectionsCallback} callback Node-style callback called with the error, if any, and ListBackupCollectionsResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.listBackupCollections = function listBackupCollections(request, callback) { + return this.rpcCall(listBackupCollections, $root.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest, $root.google.cloud.redis.cluster.v1.ListBackupCollectionsResponse, request, callback); + }, "name", { value: "ListBackupCollections" }); + + /** + * Calls ListBackupCollections. + * @function listBackupCollections + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1.IListBackupCollectionsRequest} request ListBackupCollectionsRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1.CloudRedisCluster|getBackupCollection}. + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @typedef GetBackupCollectionCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.redis.cluster.v1.BackupCollection} [response] BackupCollection + */ + + /** + * Calls GetBackupCollection. + * @function getBackupCollection + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1.IGetBackupCollectionRequest} request GetBackupCollectionRequest message or plain object + * @param {google.cloud.redis.cluster.v1.CloudRedisCluster.GetBackupCollectionCallback} callback Node-style callback called with the error, if any, and BackupCollection + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.getBackupCollection = function getBackupCollection(request, callback) { + return this.rpcCall(getBackupCollection, $root.google.cloud.redis.cluster.v1.GetBackupCollectionRequest, $root.google.cloud.redis.cluster.v1.BackupCollection, request, callback); + }, "name", { value: "GetBackupCollection" }); + + /** + * Calls GetBackupCollection. + * @function getBackupCollection + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1.IGetBackupCollectionRequest} request GetBackupCollectionRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1.CloudRedisCluster|listBackups}. + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @typedef ListBackupsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.redis.cluster.v1.ListBackupsResponse} [response] ListBackupsResponse + */ + + /** + * Calls ListBackups. + * @function listBackups + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1.IListBackupsRequest} request ListBackupsRequest message or plain object + * @param {google.cloud.redis.cluster.v1.CloudRedisCluster.ListBackupsCallback} callback Node-style callback called with the error, if any, and ListBackupsResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.listBackups = function listBackups(request, callback) { + return this.rpcCall(listBackups, $root.google.cloud.redis.cluster.v1.ListBackupsRequest, $root.google.cloud.redis.cluster.v1.ListBackupsResponse, request, callback); + }, "name", { value: "ListBackups" }); + + /** + * Calls ListBackups. + * @function listBackups + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1.IListBackupsRequest} request ListBackupsRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1.CloudRedisCluster|getBackup}. + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @typedef GetBackupCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.redis.cluster.v1.Backup} [response] Backup + */ + + /** + * Calls GetBackup. + * @function getBackup + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1.IGetBackupRequest} request GetBackupRequest message or plain object + * @param {google.cloud.redis.cluster.v1.CloudRedisCluster.GetBackupCallback} callback Node-style callback called with the error, if any, and Backup + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.getBackup = function getBackup(request, callback) { + return this.rpcCall(getBackup, $root.google.cloud.redis.cluster.v1.GetBackupRequest, $root.google.cloud.redis.cluster.v1.Backup, request, callback); + }, "name", { value: "GetBackup" }); + + /** + * Calls GetBackup. + * @function getBackup + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1.IGetBackupRequest} request GetBackupRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1.CloudRedisCluster|deleteBackup}. + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @typedef DeleteBackupCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.longrunning.Operation} [response] Operation + */ + + /** + * Calls DeleteBackup. + * @function deleteBackup + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1.IDeleteBackupRequest} request DeleteBackupRequest message or plain object + * @param {google.cloud.redis.cluster.v1.CloudRedisCluster.DeleteBackupCallback} callback Node-style callback called with the error, if any, and Operation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.deleteBackup = function deleteBackup(request, callback) { + return this.rpcCall(deleteBackup, $root.google.cloud.redis.cluster.v1.DeleteBackupRequest, $root.google.longrunning.Operation, request, callback); + }, "name", { value: "DeleteBackup" }); + + /** + * Calls DeleteBackup. + * @function deleteBackup + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1.IDeleteBackupRequest} request DeleteBackupRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1.CloudRedisCluster|exportBackup}. + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @typedef ExportBackupCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.longrunning.Operation} [response] Operation + */ + + /** + * Calls ExportBackup. + * @function exportBackup + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1.IExportBackupRequest} request ExportBackupRequest message or plain object + * @param {google.cloud.redis.cluster.v1.CloudRedisCluster.ExportBackupCallback} callback Node-style callback called with the error, if any, and Operation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.exportBackup = function exportBackup(request, callback) { + return this.rpcCall(exportBackup, $root.google.cloud.redis.cluster.v1.ExportBackupRequest, $root.google.longrunning.Operation, request, callback); + }, "name", { value: "ExportBackup" }); + + /** + * Calls ExportBackup. + * @function exportBackup + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1.IExportBackupRequest} request ExportBackupRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1.CloudRedisCluster|backupCluster}. + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @typedef BackupClusterCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.longrunning.Operation} [response] Operation + */ + + /** + * Calls BackupCluster. + * @function backupCluster + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1.IBackupClusterRequest} request BackupClusterRequest message or plain object + * @param {google.cloud.redis.cluster.v1.CloudRedisCluster.BackupClusterCallback} callback Node-style callback called with the error, if any, and Operation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.backupCluster = function backupCluster(request, callback) { + return this.rpcCall(backupCluster, $root.google.cloud.redis.cluster.v1.BackupClusterRequest, $root.google.longrunning.Operation, request, callback); + }, "name", { value: "BackupCluster" }); + + /** + * Calls BackupCluster. + * @function backupCluster + * @memberof google.cloud.redis.cluster.v1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1.IBackupClusterRequest} request BackupClusterRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + return CloudRedisCluster; })(); + /** + * PscConnectionStatus enum. + * @name google.cloud.redis.cluster.v1.PscConnectionStatus + * @enum {number} + * @property {number} PSC_CONNECTION_STATUS_UNSPECIFIED=0 PSC_CONNECTION_STATUS_UNSPECIFIED value + * @property {number} PSC_CONNECTION_STATUS_ACTIVE=1 PSC_CONNECTION_STATUS_ACTIVE value + * @property {number} PSC_CONNECTION_STATUS_NOT_FOUND=2 PSC_CONNECTION_STATUS_NOT_FOUND value + */ + v1.PscConnectionStatus = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "PSC_CONNECTION_STATUS_UNSPECIFIED"] = 0; + values[valuesById[1] = "PSC_CONNECTION_STATUS_ACTIVE"] = 1; + values[valuesById[2] = "PSC_CONNECTION_STATUS_NOT_FOUND"] = 2; + return values; + })(); + /** * AuthorizationMode enum. * @name google.cloud.redis.cluster.v1.AuthorizationMode @@ -360,6 +640,24 @@ return values; })(); + /** + * ConnectionType enum. + * @name google.cloud.redis.cluster.v1.ConnectionType + * @enum {number} + * @property {number} CONNECTION_TYPE_UNSPECIFIED=0 CONNECTION_TYPE_UNSPECIFIED value + * @property {number} CONNECTION_TYPE_DISCOVERY=1 CONNECTION_TYPE_DISCOVERY value + * @property {number} CONNECTION_TYPE_PRIMARY=2 CONNECTION_TYPE_PRIMARY value + * @property {number} CONNECTION_TYPE_READER=3 CONNECTION_TYPE_READER value + */ + v1.ConnectionType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "CONNECTION_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "CONNECTION_TYPE_DISCOVERY"] = 1; + values[valuesById[2] = "CONNECTION_TYPE_PRIMARY"] = 2; + values[valuesById[3] = "CONNECTION_TYPE_READER"] = 3; + return values; + })(); + v1.CreateClusterRequest = (function() { /** @@ -2069,46 +2367,26 @@ return GetClusterCertificateAuthorityRequest; })(); - v1.Cluster = (function() { + v1.ListBackupCollectionsRequest = (function() { /** - * Properties of a Cluster. + * Properties of a ListBackupCollectionsRequest. * @memberof google.cloud.redis.cluster.v1 - * @interface ICluster - * @property {string|null} [name] Cluster name - * @property {google.protobuf.ITimestamp|null} [createTime] Cluster createTime - * @property {google.cloud.redis.cluster.v1.Cluster.State|null} [state] Cluster state - * @property {string|null} [uid] Cluster uid - * @property {number|null} [replicaCount] Cluster replicaCount - * @property {google.cloud.redis.cluster.v1.AuthorizationMode|null} [authorizationMode] Cluster authorizationMode - * @property {google.cloud.redis.cluster.v1.TransitEncryptionMode|null} [transitEncryptionMode] Cluster transitEncryptionMode - * @property {number|null} [sizeGb] Cluster sizeGb - * @property {number|null} [shardCount] Cluster shardCount - * @property {Array.|null} [pscConfigs] Cluster pscConfigs - * @property {Array.|null} [discoveryEndpoints] Cluster discoveryEndpoints - * @property {Array.|null} [pscConnections] Cluster pscConnections - * @property {google.cloud.redis.cluster.v1.Cluster.IStateInfo|null} [stateInfo] Cluster stateInfo - * @property {google.cloud.redis.cluster.v1.NodeType|null} [nodeType] Cluster nodeType - * @property {google.cloud.redis.cluster.v1.IClusterPersistenceConfig|null} [persistenceConfig] Cluster persistenceConfig - * @property {Object.|null} [redisConfigs] Cluster redisConfigs - * @property {number|null} [preciseSizeGb] Cluster preciseSizeGb - * @property {google.cloud.redis.cluster.v1.IZoneDistributionConfig|null} [zoneDistributionConfig] Cluster zoneDistributionConfig - * @property {boolean|null} [deletionProtectionEnabled] Cluster deletionProtectionEnabled + * @interface IListBackupCollectionsRequest + * @property {string|null} [parent] ListBackupCollectionsRequest parent + * @property {number|null} [pageSize] ListBackupCollectionsRequest pageSize + * @property {string|null} [pageToken] ListBackupCollectionsRequest pageToken */ /** - * Constructs a new Cluster. + * Constructs a new ListBackupCollectionsRequest. * @memberof google.cloud.redis.cluster.v1 - * @classdesc Represents a Cluster. - * @implements ICluster + * @classdesc Represents a ListBackupCollectionsRequest. + * @implements IListBackupCollectionsRequest * @constructor - * @param {google.cloud.redis.cluster.v1.ICluster=} [properties] Properties to set + * @param {google.cloud.redis.cluster.v1.IListBackupCollectionsRequest=} [properties] Properties to set */ - function Cluster(properties) { - this.pscConfigs = []; - this.discoveryEndpoints = []; - this.pscConnections = []; - this.redisConfigs = {}; + function ListBackupCollectionsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -2116,414 +2394,361 @@ } /** - * Cluster name. - * @member {string} name - * @memberof google.cloud.redis.cluster.v1.Cluster - * @instance - */ - Cluster.prototype.name = ""; - - /** - * Cluster createTime. - * @member {google.protobuf.ITimestamp|null|undefined} createTime - * @memberof google.cloud.redis.cluster.v1.Cluster - * @instance - */ - Cluster.prototype.createTime = null; - - /** - * Cluster state. - * @member {google.cloud.redis.cluster.v1.Cluster.State} state - * @memberof google.cloud.redis.cluster.v1.Cluster - * @instance - */ - Cluster.prototype.state = 0; - - /** - * Cluster uid. - * @member {string} uid - * @memberof google.cloud.redis.cluster.v1.Cluster - * @instance - */ - Cluster.prototype.uid = ""; - - /** - * Cluster replicaCount. - * @member {number|null|undefined} replicaCount - * @memberof google.cloud.redis.cluster.v1.Cluster - * @instance - */ - Cluster.prototype.replicaCount = null; - - /** - * Cluster authorizationMode. - * @member {google.cloud.redis.cluster.v1.AuthorizationMode} authorizationMode - * @memberof google.cloud.redis.cluster.v1.Cluster + * ListBackupCollectionsRequest parent. + * @member {string} parent + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsRequest * @instance */ - Cluster.prototype.authorizationMode = 0; + ListBackupCollectionsRequest.prototype.parent = ""; /** - * Cluster transitEncryptionMode. - * @member {google.cloud.redis.cluster.v1.TransitEncryptionMode} transitEncryptionMode - * @memberof google.cloud.redis.cluster.v1.Cluster + * ListBackupCollectionsRequest pageSize. + * @member {number} pageSize + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsRequest * @instance */ - Cluster.prototype.transitEncryptionMode = 0; + ListBackupCollectionsRequest.prototype.pageSize = 0; /** - * Cluster sizeGb. - * @member {number|null|undefined} sizeGb - * @memberof google.cloud.redis.cluster.v1.Cluster + * ListBackupCollectionsRequest pageToken. + * @member {string} pageToken + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsRequest * @instance */ - Cluster.prototype.sizeGb = null; + ListBackupCollectionsRequest.prototype.pageToken = ""; /** - * Cluster shardCount. - * @member {number|null|undefined} shardCount - * @memberof google.cloud.redis.cluster.v1.Cluster - * @instance + * Creates a new ListBackupCollectionsRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsRequest + * @static + * @param {google.cloud.redis.cluster.v1.IListBackupCollectionsRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.ListBackupCollectionsRequest} ListBackupCollectionsRequest instance */ - Cluster.prototype.shardCount = null; + ListBackupCollectionsRequest.create = function create(properties) { + return new ListBackupCollectionsRequest(properties); + }; /** - * Cluster pscConfigs. - * @member {Array.} pscConfigs - * @memberof google.cloud.redis.cluster.v1.Cluster - * @instance + * Encodes the specified ListBackupCollectionsRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1.ListBackupCollectionsRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsRequest + * @static + * @param {google.cloud.redis.cluster.v1.IListBackupCollectionsRequest} message ListBackupCollectionsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ - Cluster.prototype.pscConfigs = $util.emptyArray; + ListBackupCollectionsRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); + if (message.pageSize != null && Object.hasOwnProperty.call(message, "pageSize")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.pageSize); + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.pageToken); + return writer; + }; /** - * Cluster discoveryEndpoints. - * @member {Array.} discoveryEndpoints - * @memberof google.cloud.redis.cluster.v1.Cluster - * @instance + * Encodes the specified ListBackupCollectionsRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ListBackupCollectionsRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsRequest + * @static + * @param {google.cloud.redis.cluster.v1.IListBackupCollectionsRequest} message ListBackupCollectionsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ - Cluster.prototype.discoveryEndpoints = $util.emptyArray; + ListBackupCollectionsRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; /** - * Cluster pscConnections. - * @member {Array.} pscConnections - * @memberof google.cloud.redis.cluster.v1.Cluster - * @instance + * Decodes a ListBackupCollectionsRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.ListBackupCollectionsRequest} ListBackupCollectionsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Cluster.prototype.pscConnections = $util.emptyArray; + ListBackupCollectionsRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.parent = reader.string(); + break; + } + case 2: { + message.pageSize = reader.int32(); + break; + } + case 3: { + message.pageToken = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; /** - * Cluster stateInfo. - * @member {google.cloud.redis.cluster.v1.Cluster.IStateInfo|null|undefined} stateInfo - * @memberof google.cloud.redis.cluster.v1.Cluster - * @instance + * Decodes a ListBackupCollectionsRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.ListBackupCollectionsRequest} ListBackupCollectionsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Cluster.prototype.stateInfo = null; + ListBackupCollectionsRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; /** - * Cluster nodeType. - * @member {google.cloud.redis.cluster.v1.NodeType} nodeType - * @memberof google.cloud.redis.cluster.v1.Cluster - * @instance + * Verifies a ListBackupCollectionsRequest message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Cluster.prototype.nodeType = 0; + ListBackupCollectionsRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.parent != null && message.hasOwnProperty("parent")) + if (!$util.isString(message.parent)) + return "parent: string expected"; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + if (!$util.isInteger(message.pageSize)) + return "pageSize: integer expected"; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (!$util.isString(message.pageToken)) + return "pageToken: string expected"; + return null; + }; /** - * Cluster persistenceConfig. - * @member {google.cloud.redis.cluster.v1.IClusterPersistenceConfig|null|undefined} persistenceConfig - * @memberof google.cloud.redis.cluster.v1.Cluster - * @instance + * Creates a ListBackupCollectionsRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.ListBackupCollectionsRequest} ListBackupCollectionsRequest */ - Cluster.prototype.persistenceConfig = null; + ListBackupCollectionsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest) + return object; + var message = new $root.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest(); + if (object.parent != null) + message.parent = String(object.parent); + if (object.pageSize != null) + message.pageSize = object.pageSize | 0; + if (object.pageToken != null) + message.pageToken = String(object.pageToken); + return message; + }; /** - * Cluster redisConfigs. - * @member {Object.} redisConfigs - * @memberof google.cloud.redis.cluster.v1.Cluster - * @instance + * Creates a plain object from a ListBackupCollectionsRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsRequest + * @static + * @param {google.cloud.redis.cluster.v1.ListBackupCollectionsRequest} message ListBackupCollectionsRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object */ - Cluster.prototype.redisConfigs = $util.emptyObject; + ListBackupCollectionsRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.parent = ""; + object.pageSize = 0; + object.pageToken = ""; + } + if (message.parent != null && message.hasOwnProperty("parent")) + object.parent = message.parent; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + object.pageSize = message.pageSize; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + object.pageToken = message.pageToken; + return object; + }; /** - * Cluster preciseSizeGb. - * @member {number|null|undefined} preciseSizeGb - * @memberof google.cloud.redis.cluster.v1.Cluster + * Converts this ListBackupCollectionsRequest to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsRequest * @instance + * @returns {Object.} JSON object */ - Cluster.prototype.preciseSizeGb = null; + ListBackupCollectionsRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; /** - * Cluster zoneDistributionConfig. - * @member {google.cloud.redis.cluster.v1.IZoneDistributionConfig|null|undefined} zoneDistributionConfig - * @memberof google.cloud.redis.cluster.v1.Cluster - * @instance + * Gets the default type url for ListBackupCollectionsRequest + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url */ - Cluster.prototype.zoneDistributionConfig = null; + ListBackupCollectionsRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.ListBackupCollectionsRequest"; + }; - /** - * Cluster deletionProtectionEnabled. - * @member {boolean|null|undefined} deletionProtectionEnabled - * @memberof google.cloud.redis.cluster.v1.Cluster - * @instance - */ - Cluster.prototype.deletionProtectionEnabled = null; + return ListBackupCollectionsRequest; + })(); - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + v1.ListBackupCollectionsResponse = (function() { /** - * Cluster _replicaCount. - * @member {"replicaCount"|undefined} _replicaCount - * @memberof google.cloud.redis.cluster.v1.Cluster - * @instance + * Properties of a ListBackupCollectionsResponse. + * @memberof google.cloud.redis.cluster.v1 + * @interface IListBackupCollectionsResponse + * @property {Array.|null} [backupCollections] ListBackupCollectionsResponse backupCollections + * @property {string|null} [nextPageToken] ListBackupCollectionsResponse nextPageToken + * @property {Array.|null} [unreachable] ListBackupCollectionsResponse unreachable */ - Object.defineProperty(Cluster.prototype, "_replicaCount", { - get: $util.oneOfGetter($oneOfFields = ["replicaCount"]), - set: $util.oneOfSetter($oneOfFields) - }); /** - * Cluster _sizeGb. - * @member {"sizeGb"|undefined} _sizeGb - * @memberof google.cloud.redis.cluster.v1.Cluster - * @instance + * Constructs a new ListBackupCollectionsResponse. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a ListBackupCollectionsResponse. + * @implements IListBackupCollectionsResponse + * @constructor + * @param {google.cloud.redis.cluster.v1.IListBackupCollectionsResponse=} [properties] Properties to set */ - Object.defineProperty(Cluster.prototype, "_sizeGb", { - get: $util.oneOfGetter($oneOfFields = ["sizeGb"]), - set: $util.oneOfSetter($oneOfFields) - }); + function ListBackupCollectionsResponse(properties) { + this.backupCollections = []; + this.unreachable = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } /** - * Cluster _shardCount. - * @member {"shardCount"|undefined} _shardCount - * @memberof google.cloud.redis.cluster.v1.Cluster + * ListBackupCollectionsResponse backupCollections. + * @member {Array.} backupCollections + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsResponse * @instance */ - Object.defineProperty(Cluster.prototype, "_shardCount", { - get: $util.oneOfGetter($oneOfFields = ["shardCount"]), - set: $util.oneOfSetter($oneOfFields) - }); + ListBackupCollectionsResponse.prototype.backupCollections = $util.emptyArray; /** - * Cluster _preciseSizeGb. - * @member {"preciseSizeGb"|undefined} _preciseSizeGb - * @memberof google.cloud.redis.cluster.v1.Cluster + * ListBackupCollectionsResponse nextPageToken. + * @member {string} nextPageToken + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsResponse * @instance */ - Object.defineProperty(Cluster.prototype, "_preciseSizeGb", { - get: $util.oneOfGetter($oneOfFields = ["preciseSizeGb"]), - set: $util.oneOfSetter($oneOfFields) - }); + ListBackupCollectionsResponse.prototype.nextPageToken = ""; /** - * Cluster _deletionProtectionEnabled. - * @member {"deletionProtectionEnabled"|undefined} _deletionProtectionEnabled - * @memberof google.cloud.redis.cluster.v1.Cluster + * ListBackupCollectionsResponse unreachable. + * @member {Array.} unreachable + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsResponse * @instance */ - Object.defineProperty(Cluster.prototype, "_deletionProtectionEnabled", { - get: $util.oneOfGetter($oneOfFields = ["deletionProtectionEnabled"]), - set: $util.oneOfSetter($oneOfFields) - }); + ListBackupCollectionsResponse.prototype.unreachable = $util.emptyArray; /** - * Creates a new Cluster instance using the specified properties. + * Creates a new ListBackupCollectionsResponse instance using the specified properties. * @function create - * @memberof google.cloud.redis.cluster.v1.Cluster + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsResponse * @static - * @param {google.cloud.redis.cluster.v1.ICluster=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1.Cluster} Cluster instance + * @param {google.cloud.redis.cluster.v1.IListBackupCollectionsResponse=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.ListBackupCollectionsResponse} ListBackupCollectionsResponse instance */ - Cluster.create = function create(properties) { - return new Cluster(properties); + ListBackupCollectionsResponse.create = function create(properties) { + return new ListBackupCollectionsResponse(properties); }; /** - * Encodes the specified Cluster message. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.verify|verify} messages. + * Encodes the specified ListBackupCollectionsResponse message. Does not implicitly {@link google.cloud.redis.cluster.v1.ListBackupCollectionsResponse.verify|verify} messages. * @function encode - * @memberof google.cloud.redis.cluster.v1.Cluster + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsResponse * @static - * @param {google.cloud.redis.cluster.v1.ICluster} message Cluster message or plain object to encode + * @param {google.cloud.redis.cluster.v1.IListBackupCollectionsResponse} message ListBackupCollectionsResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Cluster.encode = function encode(message, writer) { + ListBackupCollectionsResponse.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) - $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.state != null && Object.hasOwnProperty.call(message, "state")) - writer.uint32(/* id 4, wireType 0 =*/32).int32(message.state); - if (message.uid != null && Object.hasOwnProperty.call(message, "uid")) - writer.uint32(/* id 5, wireType 2 =*/42).string(message.uid); - if (message.replicaCount != null && Object.hasOwnProperty.call(message, "replicaCount")) - writer.uint32(/* id 8, wireType 0 =*/64).int32(message.replicaCount); - if (message.authorizationMode != null && Object.hasOwnProperty.call(message, "authorizationMode")) - writer.uint32(/* id 11, wireType 0 =*/88).int32(message.authorizationMode); - if (message.transitEncryptionMode != null && Object.hasOwnProperty.call(message, "transitEncryptionMode")) - writer.uint32(/* id 12, wireType 0 =*/96).int32(message.transitEncryptionMode); - if (message.sizeGb != null && Object.hasOwnProperty.call(message, "sizeGb")) - writer.uint32(/* id 13, wireType 0 =*/104).int32(message.sizeGb); - if (message.shardCount != null && Object.hasOwnProperty.call(message, "shardCount")) - writer.uint32(/* id 14, wireType 0 =*/112).int32(message.shardCount); - if (message.pscConfigs != null && message.pscConfigs.length) - for (var i = 0; i < message.pscConfigs.length; ++i) - $root.google.cloud.redis.cluster.v1.PscConfig.encode(message.pscConfigs[i], writer.uint32(/* id 15, wireType 2 =*/122).fork()).ldelim(); - if (message.discoveryEndpoints != null && message.discoveryEndpoints.length) - for (var i = 0; i < message.discoveryEndpoints.length; ++i) - $root.google.cloud.redis.cluster.v1.DiscoveryEndpoint.encode(message.discoveryEndpoints[i], writer.uint32(/* id 16, wireType 2 =*/130).fork()).ldelim(); - if (message.pscConnections != null && message.pscConnections.length) - for (var i = 0; i < message.pscConnections.length; ++i) - $root.google.cloud.redis.cluster.v1.PscConnection.encode(message.pscConnections[i], writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); - if (message.stateInfo != null && Object.hasOwnProperty.call(message, "stateInfo")) - $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.encode(message.stateInfo, writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim(); - if (message.nodeType != null && Object.hasOwnProperty.call(message, "nodeType")) - writer.uint32(/* id 19, wireType 0 =*/152).int32(message.nodeType); - if (message.persistenceConfig != null && Object.hasOwnProperty.call(message, "persistenceConfig")) - $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.encode(message.persistenceConfig, writer.uint32(/* id 20, wireType 2 =*/162).fork()).ldelim(); - if (message.redisConfigs != null && Object.hasOwnProperty.call(message, "redisConfigs")) - for (var keys = Object.keys(message.redisConfigs), i = 0; i < keys.length; ++i) - writer.uint32(/* id 21, wireType 2 =*/170).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.redisConfigs[keys[i]]).ldelim(); - if (message.preciseSizeGb != null && Object.hasOwnProperty.call(message, "preciseSizeGb")) - writer.uint32(/* id 22, wireType 1 =*/177).double(message.preciseSizeGb); - if (message.zoneDistributionConfig != null && Object.hasOwnProperty.call(message, "zoneDistributionConfig")) - $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig.encode(message.zoneDistributionConfig, writer.uint32(/* id 23, wireType 2 =*/186).fork()).ldelim(); - if (message.deletionProtectionEnabled != null && Object.hasOwnProperty.call(message, "deletionProtectionEnabled")) - writer.uint32(/* id 25, wireType 0 =*/200).bool(message.deletionProtectionEnabled); + if (message.backupCollections != null && message.backupCollections.length) + for (var i = 0; i < message.backupCollections.length; ++i) + $root.google.cloud.redis.cluster.v1.BackupCollection.encode(message.backupCollections[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.nextPageToken); + if (message.unreachable != null && message.unreachable.length) + for (var i = 0; i < message.unreachable.length; ++i) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.unreachable[i]); return writer; }; /** - * Encodes the specified Cluster message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.verify|verify} messages. + * Encodes the specified ListBackupCollectionsResponse message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ListBackupCollectionsResponse.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1.Cluster + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsResponse * @static - * @param {google.cloud.redis.cluster.v1.ICluster} message Cluster message or plain object to encode + * @param {google.cloud.redis.cluster.v1.IListBackupCollectionsResponse} message ListBackupCollectionsResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Cluster.encodeDelimited = function encodeDelimited(message, writer) { + ListBackupCollectionsResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Cluster message from the specified reader or buffer. + * Decodes a ListBackupCollectionsResponse message from the specified reader or buffer. * @function decode - * @memberof google.cloud.redis.cluster.v1.Cluster + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1.Cluster} Cluster + * @returns {google.cloud.redis.cluster.v1.ListBackupCollectionsResponse} ListBackupCollectionsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Cluster.decode = function decode(reader, length) { + ListBackupCollectionsResponse.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.Cluster(), key, value; + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.ListBackupCollectionsResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.name = reader.string(); - break; - } - case 3: { - message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); - break; - } - case 4: { - message.state = reader.int32(); - break; - } - case 5: { - message.uid = reader.string(); - break; - } - case 8: { - message.replicaCount = reader.int32(); - break; - } - case 11: { - message.authorizationMode = reader.int32(); - break; - } - case 12: { - message.transitEncryptionMode = reader.int32(); - break; - } - case 13: { - message.sizeGb = reader.int32(); - break; - } - case 14: { - message.shardCount = reader.int32(); - break; - } - case 15: { - if (!(message.pscConfigs && message.pscConfigs.length)) - message.pscConfigs = []; - message.pscConfigs.push($root.google.cloud.redis.cluster.v1.PscConfig.decode(reader, reader.uint32())); - break; - } - case 16: { - if (!(message.discoveryEndpoints && message.discoveryEndpoints.length)) - message.discoveryEndpoints = []; - message.discoveryEndpoints.push($root.google.cloud.redis.cluster.v1.DiscoveryEndpoint.decode(reader, reader.uint32())); - break; - } - case 17: { - if (!(message.pscConnections && message.pscConnections.length)) - message.pscConnections = []; - message.pscConnections.push($root.google.cloud.redis.cluster.v1.PscConnection.decode(reader, reader.uint32())); - break; - } - case 18: { - message.stateInfo = $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.decode(reader, reader.uint32()); - break; - } - case 19: { - message.nodeType = reader.int32(); - break; - } - case 20: { - message.persistenceConfig = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.decode(reader, reader.uint32()); - break; - } - case 21: { - if (message.redisConfigs === $util.emptyObject) - message.redisConfigs = {}; - var end2 = reader.uint32() + reader.pos; - key = ""; - value = ""; - while (reader.pos < end2) { - var tag2 = reader.uint32(); - switch (tag2 >>> 3) { - case 1: - key = reader.string(); - break; - case 2: - value = reader.string(); - break; - default: - reader.skipType(tag2 & 7); - break; - } - } - message.redisConfigs[key] = value; - break; - } - case 22: { - message.preciseSizeGb = reader.double(); + if (!(message.backupCollections && message.backupCollections.length)) + message.backupCollections = []; + message.backupCollections.push($root.google.cloud.redis.cluster.v1.BackupCollection.decode(reader, reader.uint32())); break; } - case 23: { - message.zoneDistributionConfig = $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig.decode(reader, reader.uint32()); + case 2: { + message.nextPageToken = reader.string(); break; } - case 25: { - message.deletionProtectionEnabled = reader.bool(); + case 3: { + if (!(message.unreachable && message.unreachable.length)) + message.unreachable = []; + message.unreachable.push(reader.string()); break; } default: @@ -2535,1074 +2760,478 @@ }; /** - * Decodes a Cluster message from the specified reader or buffer, length delimited. + * Decodes a ListBackupCollectionsResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1.Cluster + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1.Cluster} Cluster + * @returns {google.cloud.redis.cluster.v1.ListBackupCollectionsResponse} ListBackupCollectionsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Cluster.decodeDelimited = function decodeDelimited(reader) { + ListBackupCollectionsResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Cluster message. + * Verifies a ListBackupCollectionsResponse message. * @function verify - * @memberof google.cloud.redis.cluster.v1.Cluster + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Cluster.verify = function verify(message) { + ListBackupCollectionsResponse.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.createTime != null && message.hasOwnProperty("createTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.createTime); - if (error) - return "createTime." + error; - } - if (message.state != null && message.hasOwnProperty("state")) - switch (message.state) { - default: - return "state: enum value expected"; - case 0: - case 1: - case 2: - case 3: - case 4: - break; - } - if (message.uid != null && message.hasOwnProperty("uid")) - if (!$util.isString(message.uid)) - return "uid: string expected"; - if (message.replicaCount != null && message.hasOwnProperty("replicaCount")) { - properties._replicaCount = 1; - if (!$util.isInteger(message.replicaCount)) - return "replicaCount: integer expected"; - } - if (message.authorizationMode != null && message.hasOwnProperty("authorizationMode")) - switch (message.authorizationMode) { - default: - return "authorizationMode: enum value expected"; - case 0: - case 1: - case 2: - break; - } - if (message.transitEncryptionMode != null && message.hasOwnProperty("transitEncryptionMode")) - switch (message.transitEncryptionMode) { - default: - return "transitEncryptionMode: enum value expected"; - case 0: - case 1: - case 2: - break; - } - if (message.sizeGb != null && message.hasOwnProperty("sizeGb")) { - properties._sizeGb = 1; - if (!$util.isInteger(message.sizeGb)) - return "sizeGb: integer expected"; - } - if (message.shardCount != null && message.hasOwnProperty("shardCount")) { - properties._shardCount = 1; - if (!$util.isInteger(message.shardCount)) - return "shardCount: integer expected"; - } - if (message.pscConfigs != null && message.hasOwnProperty("pscConfigs")) { - if (!Array.isArray(message.pscConfigs)) - return "pscConfigs: array expected"; - for (var i = 0; i < message.pscConfigs.length; ++i) { - var error = $root.google.cloud.redis.cluster.v1.PscConfig.verify(message.pscConfigs[i]); - if (error) - return "pscConfigs." + error; - } - } - if (message.discoveryEndpoints != null && message.hasOwnProperty("discoveryEndpoints")) { - if (!Array.isArray(message.discoveryEndpoints)) - return "discoveryEndpoints: array expected"; - for (var i = 0; i < message.discoveryEndpoints.length; ++i) { - var error = $root.google.cloud.redis.cluster.v1.DiscoveryEndpoint.verify(message.discoveryEndpoints[i]); - if (error) - return "discoveryEndpoints." + error; - } - } - if (message.pscConnections != null && message.hasOwnProperty("pscConnections")) { - if (!Array.isArray(message.pscConnections)) - return "pscConnections: array expected"; - for (var i = 0; i < message.pscConnections.length; ++i) { - var error = $root.google.cloud.redis.cluster.v1.PscConnection.verify(message.pscConnections[i]); + if (message.backupCollections != null && message.hasOwnProperty("backupCollections")) { + if (!Array.isArray(message.backupCollections)) + return "backupCollections: array expected"; + for (var i = 0; i < message.backupCollections.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1.BackupCollection.verify(message.backupCollections[i]); if (error) - return "pscConnections." + error; - } - } - if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) { - var error = $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.verify(message.stateInfo); - if (error) - return "stateInfo." + error; - } - if (message.nodeType != null && message.hasOwnProperty("nodeType")) - switch (message.nodeType) { - default: - return "nodeType: enum value expected"; - case 0: - case 1: - case 2: - case 3: - case 4: - break; + return "backupCollections." + error; } - if (message.persistenceConfig != null && message.hasOwnProperty("persistenceConfig")) { - var error = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.verify(message.persistenceConfig); - if (error) - return "persistenceConfig." + error; - } - if (message.redisConfigs != null && message.hasOwnProperty("redisConfigs")) { - if (!$util.isObject(message.redisConfigs)) - return "redisConfigs: object expected"; - var key = Object.keys(message.redisConfigs); - for (var i = 0; i < key.length; ++i) - if (!$util.isString(message.redisConfigs[key[i]])) - return "redisConfigs: string{k:string} expected"; - } - if (message.preciseSizeGb != null && message.hasOwnProperty("preciseSizeGb")) { - properties._preciseSizeGb = 1; - if (typeof message.preciseSizeGb !== "number") - return "preciseSizeGb: number expected"; - } - if (message.zoneDistributionConfig != null && message.hasOwnProperty("zoneDistributionConfig")) { - var error = $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig.verify(message.zoneDistributionConfig); - if (error) - return "zoneDistributionConfig." + error; } - if (message.deletionProtectionEnabled != null && message.hasOwnProperty("deletionProtectionEnabled")) { - properties._deletionProtectionEnabled = 1; - if (typeof message.deletionProtectionEnabled !== "boolean") - return "deletionProtectionEnabled: boolean expected"; + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (!$util.isString(message.nextPageToken)) + return "nextPageToken: string expected"; + if (message.unreachable != null && message.hasOwnProperty("unreachable")) { + if (!Array.isArray(message.unreachable)) + return "unreachable: array expected"; + for (var i = 0; i < message.unreachable.length; ++i) + if (!$util.isString(message.unreachable[i])) + return "unreachable: string[] expected"; } return null; }; /** - * Creates a Cluster message from a plain object. Also converts values to their respective internal types. + * Creates a ListBackupCollectionsResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.redis.cluster.v1.Cluster + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsResponse * @static * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1.Cluster} Cluster + * @returns {google.cloud.redis.cluster.v1.ListBackupCollectionsResponse} ListBackupCollectionsResponse */ - Cluster.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1.Cluster) + ListBackupCollectionsResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.ListBackupCollectionsResponse) return object; - var message = new $root.google.cloud.redis.cluster.v1.Cluster(); - if (object.name != null) - message.name = String(object.name); - if (object.createTime != null) { - if (typeof object.createTime !== "object") - throw TypeError(".google.cloud.redis.cluster.v1.Cluster.createTime: object expected"); - message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime); - } - switch (object.state) { - default: - if (typeof object.state === "number") { - message.state = object.state; - break; - } - break; - case "STATE_UNSPECIFIED": - case 0: - message.state = 0; - break; - case "CREATING": - case 1: - message.state = 1; - break; - case "ACTIVE": - case 2: - message.state = 2; - break; - case "UPDATING": - case 3: - message.state = 3; - break; - case "DELETING": - case 4: - message.state = 4; - break; - } - if (object.uid != null) - message.uid = String(object.uid); - if (object.replicaCount != null) - message.replicaCount = object.replicaCount | 0; - switch (object.authorizationMode) { - default: - if (typeof object.authorizationMode === "number") { - message.authorizationMode = object.authorizationMode; - break; - } - break; - case "AUTH_MODE_UNSPECIFIED": - case 0: - message.authorizationMode = 0; - break; - case "AUTH_MODE_IAM_AUTH": - case 1: - message.authorizationMode = 1; - break; - case "AUTH_MODE_DISABLED": - case 2: - message.authorizationMode = 2; - break; - } - switch (object.transitEncryptionMode) { - default: - if (typeof object.transitEncryptionMode === "number") { - message.transitEncryptionMode = object.transitEncryptionMode; - break; - } - break; - case "TRANSIT_ENCRYPTION_MODE_UNSPECIFIED": - case 0: - message.transitEncryptionMode = 0; - break; - case "TRANSIT_ENCRYPTION_MODE_DISABLED": - case 1: - message.transitEncryptionMode = 1; - break; - case "TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION": - case 2: - message.transitEncryptionMode = 2; - break; - } - if (object.sizeGb != null) - message.sizeGb = object.sizeGb | 0; - if (object.shardCount != null) - message.shardCount = object.shardCount | 0; - if (object.pscConfigs) { - if (!Array.isArray(object.pscConfigs)) - throw TypeError(".google.cloud.redis.cluster.v1.Cluster.pscConfigs: array expected"); - message.pscConfigs = []; - for (var i = 0; i < object.pscConfigs.length; ++i) { - if (typeof object.pscConfigs[i] !== "object") - throw TypeError(".google.cloud.redis.cluster.v1.Cluster.pscConfigs: object expected"); - message.pscConfigs[i] = $root.google.cloud.redis.cluster.v1.PscConfig.fromObject(object.pscConfigs[i]); - } - } - if (object.discoveryEndpoints) { - if (!Array.isArray(object.discoveryEndpoints)) - throw TypeError(".google.cloud.redis.cluster.v1.Cluster.discoveryEndpoints: array expected"); - message.discoveryEndpoints = []; - for (var i = 0; i < object.discoveryEndpoints.length; ++i) { - if (typeof object.discoveryEndpoints[i] !== "object") - throw TypeError(".google.cloud.redis.cluster.v1.Cluster.discoveryEndpoints: object expected"); - message.discoveryEndpoints[i] = $root.google.cloud.redis.cluster.v1.DiscoveryEndpoint.fromObject(object.discoveryEndpoints[i]); - } - } - if (object.pscConnections) { - if (!Array.isArray(object.pscConnections)) - throw TypeError(".google.cloud.redis.cluster.v1.Cluster.pscConnections: array expected"); - message.pscConnections = []; - for (var i = 0; i < object.pscConnections.length; ++i) { - if (typeof object.pscConnections[i] !== "object") - throw TypeError(".google.cloud.redis.cluster.v1.Cluster.pscConnections: object expected"); - message.pscConnections[i] = $root.google.cloud.redis.cluster.v1.PscConnection.fromObject(object.pscConnections[i]); + var message = new $root.google.cloud.redis.cluster.v1.ListBackupCollectionsResponse(); + if (object.backupCollections) { + if (!Array.isArray(object.backupCollections)) + throw TypeError(".google.cloud.redis.cluster.v1.ListBackupCollectionsResponse.backupCollections: array expected"); + message.backupCollections = []; + for (var i = 0; i < object.backupCollections.length; ++i) { + if (typeof object.backupCollections[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.ListBackupCollectionsResponse.backupCollections: object expected"); + message.backupCollections[i] = $root.google.cloud.redis.cluster.v1.BackupCollection.fromObject(object.backupCollections[i]); } } - if (object.stateInfo != null) { - if (typeof object.stateInfo !== "object") - throw TypeError(".google.cloud.redis.cluster.v1.Cluster.stateInfo: object expected"); - message.stateInfo = $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.fromObject(object.stateInfo); - } - switch (object.nodeType) { - default: - if (typeof object.nodeType === "number") { - message.nodeType = object.nodeType; - break; - } - break; - case "NODE_TYPE_UNSPECIFIED": - case 0: - message.nodeType = 0; - break; - case "REDIS_SHARED_CORE_NANO": - case 1: - message.nodeType = 1; - break; - case "REDIS_HIGHMEM_MEDIUM": - case 2: - message.nodeType = 2; - break; - case "REDIS_HIGHMEM_XLARGE": - case 3: - message.nodeType = 3; - break; - case "REDIS_STANDARD_SMALL": - case 4: - message.nodeType = 4; - break; - } - if (object.persistenceConfig != null) { - if (typeof object.persistenceConfig !== "object") - throw TypeError(".google.cloud.redis.cluster.v1.Cluster.persistenceConfig: object expected"); - message.persistenceConfig = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.fromObject(object.persistenceConfig); - } - if (object.redisConfigs) { - if (typeof object.redisConfigs !== "object") - throw TypeError(".google.cloud.redis.cluster.v1.Cluster.redisConfigs: object expected"); - message.redisConfigs = {}; - for (var keys = Object.keys(object.redisConfigs), i = 0; i < keys.length; ++i) - message.redisConfigs[keys[i]] = String(object.redisConfigs[keys[i]]); - } - if (object.preciseSizeGb != null) - message.preciseSizeGb = Number(object.preciseSizeGb); - if (object.zoneDistributionConfig != null) { - if (typeof object.zoneDistributionConfig !== "object") - throw TypeError(".google.cloud.redis.cluster.v1.Cluster.zoneDistributionConfig: object expected"); - message.zoneDistributionConfig = $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig.fromObject(object.zoneDistributionConfig); + if (object.nextPageToken != null) + message.nextPageToken = String(object.nextPageToken); + if (object.unreachable) { + if (!Array.isArray(object.unreachable)) + throw TypeError(".google.cloud.redis.cluster.v1.ListBackupCollectionsResponse.unreachable: array expected"); + message.unreachable = []; + for (var i = 0; i < object.unreachable.length; ++i) + message.unreachable[i] = String(object.unreachable[i]); } - if (object.deletionProtectionEnabled != null) - message.deletionProtectionEnabled = Boolean(object.deletionProtectionEnabled); return message; }; /** - * Creates a plain object from a Cluster message. Also converts values to other types if specified. + * Creates a plain object from a ListBackupCollectionsResponse message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.redis.cluster.v1.Cluster + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsResponse * @static - * @param {google.cloud.redis.cluster.v1.Cluster} message Cluster + * @param {google.cloud.redis.cluster.v1.ListBackupCollectionsResponse} message ListBackupCollectionsResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Cluster.toObject = function toObject(message, options) { + ListBackupCollectionsResponse.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.arrays || options.defaults) { - object.pscConfigs = []; - object.discoveryEndpoints = []; - object.pscConnections = []; - } - if (options.objects || options.defaults) - object.redisConfigs = {}; - if (options.defaults) { - object.name = ""; - object.createTime = null; - object.state = options.enums === String ? "STATE_UNSPECIFIED" : 0; - object.uid = ""; - object.authorizationMode = options.enums === String ? "AUTH_MODE_UNSPECIFIED" : 0; - object.transitEncryptionMode = options.enums === String ? "TRANSIT_ENCRYPTION_MODE_UNSPECIFIED" : 0; - object.stateInfo = null; - object.nodeType = options.enums === String ? "NODE_TYPE_UNSPECIFIED" : 0; - object.persistenceConfig = null; - object.zoneDistributionConfig = null; + object.backupCollections = []; + object.unreachable = []; } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.createTime != null && message.hasOwnProperty("createTime")) - object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options); - if (message.state != null && message.hasOwnProperty("state")) - object.state = options.enums === String ? $root.google.cloud.redis.cluster.v1.Cluster.State[message.state] === undefined ? message.state : $root.google.cloud.redis.cluster.v1.Cluster.State[message.state] : message.state; - if (message.uid != null && message.hasOwnProperty("uid")) - object.uid = message.uid; - if (message.replicaCount != null && message.hasOwnProperty("replicaCount")) { - object.replicaCount = message.replicaCount; - if (options.oneofs) - object._replicaCount = "replicaCount"; + if (options.defaults) + object.nextPageToken = ""; + if (message.backupCollections && message.backupCollections.length) { + object.backupCollections = []; + for (var j = 0; j < message.backupCollections.length; ++j) + object.backupCollections[j] = $root.google.cloud.redis.cluster.v1.BackupCollection.toObject(message.backupCollections[j], options); } - if (message.authorizationMode != null && message.hasOwnProperty("authorizationMode")) - object.authorizationMode = options.enums === String ? $root.google.cloud.redis.cluster.v1.AuthorizationMode[message.authorizationMode] === undefined ? message.authorizationMode : $root.google.cloud.redis.cluster.v1.AuthorizationMode[message.authorizationMode] : message.authorizationMode; - if (message.transitEncryptionMode != null && message.hasOwnProperty("transitEncryptionMode")) - object.transitEncryptionMode = options.enums === String ? $root.google.cloud.redis.cluster.v1.TransitEncryptionMode[message.transitEncryptionMode] === undefined ? message.transitEncryptionMode : $root.google.cloud.redis.cluster.v1.TransitEncryptionMode[message.transitEncryptionMode] : message.transitEncryptionMode; - if (message.sizeGb != null && message.hasOwnProperty("sizeGb")) { - object.sizeGb = message.sizeGb; - if (options.oneofs) - object._sizeGb = "sizeGb"; - } - if (message.shardCount != null && message.hasOwnProperty("shardCount")) { - object.shardCount = message.shardCount; - if (options.oneofs) - object._shardCount = "shardCount"; - } - if (message.pscConfigs && message.pscConfigs.length) { - object.pscConfigs = []; - for (var j = 0; j < message.pscConfigs.length; ++j) - object.pscConfigs[j] = $root.google.cloud.redis.cluster.v1.PscConfig.toObject(message.pscConfigs[j], options); - } - if (message.discoveryEndpoints && message.discoveryEndpoints.length) { - object.discoveryEndpoints = []; - for (var j = 0; j < message.discoveryEndpoints.length; ++j) - object.discoveryEndpoints[j] = $root.google.cloud.redis.cluster.v1.DiscoveryEndpoint.toObject(message.discoveryEndpoints[j], options); - } - if (message.pscConnections && message.pscConnections.length) { - object.pscConnections = []; - for (var j = 0; j < message.pscConnections.length; ++j) - object.pscConnections[j] = $root.google.cloud.redis.cluster.v1.PscConnection.toObject(message.pscConnections[j], options); - } - if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) - object.stateInfo = $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.toObject(message.stateInfo, options); - if (message.nodeType != null && message.hasOwnProperty("nodeType")) - object.nodeType = options.enums === String ? $root.google.cloud.redis.cluster.v1.NodeType[message.nodeType] === undefined ? message.nodeType : $root.google.cloud.redis.cluster.v1.NodeType[message.nodeType] : message.nodeType; - if (message.persistenceConfig != null && message.hasOwnProperty("persistenceConfig")) - object.persistenceConfig = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.toObject(message.persistenceConfig, options); - var keys2; - if (message.redisConfigs && (keys2 = Object.keys(message.redisConfigs)).length) { - object.redisConfigs = {}; - for (var j = 0; j < keys2.length; ++j) - object.redisConfigs[keys2[j]] = message.redisConfigs[keys2[j]]; - } - if (message.preciseSizeGb != null && message.hasOwnProperty("preciseSizeGb")) { - object.preciseSizeGb = options.json && !isFinite(message.preciseSizeGb) ? String(message.preciseSizeGb) : message.preciseSizeGb; - if (options.oneofs) - object._preciseSizeGb = "preciseSizeGb"; - } - if (message.zoneDistributionConfig != null && message.hasOwnProperty("zoneDistributionConfig")) - object.zoneDistributionConfig = $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig.toObject(message.zoneDistributionConfig, options); - if (message.deletionProtectionEnabled != null && message.hasOwnProperty("deletionProtectionEnabled")) { - object.deletionProtectionEnabled = message.deletionProtectionEnabled; - if (options.oneofs) - object._deletionProtectionEnabled = "deletionProtectionEnabled"; + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + object.nextPageToken = message.nextPageToken; + if (message.unreachable && message.unreachable.length) { + object.unreachable = []; + for (var j = 0; j < message.unreachable.length; ++j) + object.unreachable[j] = message.unreachable[j]; } return object; }; /** - * Converts this Cluster to JSON. + * Converts this ListBackupCollectionsResponse to JSON. * @function toJSON - * @memberof google.cloud.redis.cluster.v1.Cluster + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsResponse * @instance * @returns {Object.} JSON object */ - Cluster.prototype.toJSON = function toJSON() { + ListBackupCollectionsResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for Cluster + * Gets the default type url for ListBackupCollectionsResponse * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1.Cluster + * @memberof google.cloud.redis.cluster.v1.ListBackupCollectionsResponse * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - Cluster.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + ListBackupCollectionsResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1.Cluster"; + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.ListBackupCollectionsResponse"; }; - Cluster.StateInfo = (function() { - - /** - * Properties of a StateInfo. - * @memberof google.cloud.redis.cluster.v1.Cluster - * @interface IStateInfo - * @property {google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo|null} [updateInfo] StateInfo updateInfo - */ + return ListBackupCollectionsResponse; + })(); - /** - * Constructs a new StateInfo. - * @memberof google.cloud.redis.cluster.v1.Cluster - * @classdesc Represents a StateInfo. - * @implements IStateInfo - * @constructor - * @param {google.cloud.redis.cluster.v1.Cluster.IStateInfo=} [properties] Properties to set - */ - function StateInfo(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + v1.GetBackupCollectionRequest = (function() { - /** - * StateInfo updateInfo. - * @member {google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo|null|undefined} updateInfo - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo - * @instance - */ - StateInfo.prototype.updateInfo = null; + /** + * Properties of a GetBackupCollectionRequest. + * @memberof google.cloud.redis.cluster.v1 + * @interface IGetBackupCollectionRequest + * @property {string|null} [name] GetBackupCollectionRequest name + */ - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * Constructs a new GetBackupCollectionRequest. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a GetBackupCollectionRequest. + * @implements IGetBackupCollectionRequest + * @constructor + * @param {google.cloud.redis.cluster.v1.IGetBackupCollectionRequest=} [properties] Properties to set + */ + function GetBackupCollectionRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * StateInfo info. - * @member {"updateInfo"|undefined} info - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo - * @instance - */ - Object.defineProperty(StateInfo.prototype, "info", { - get: $util.oneOfGetter($oneOfFields = ["updateInfo"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * GetBackupCollectionRequest name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1.GetBackupCollectionRequest + * @instance + */ + GetBackupCollectionRequest.prototype.name = ""; - /** - * Creates a new StateInfo instance using the specified properties. - * @function create - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo - * @static - * @param {google.cloud.redis.cluster.v1.Cluster.IStateInfo=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1.Cluster.StateInfo} StateInfo instance - */ - StateInfo.create = function create(properties) { - return new StateInfo(properties); - }; + /** + * Creates a new GetBackupCollectionRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.GetBackupCollectionRequest + * @static + * @param {google.cloud.redis.cluster.v1.IGetBackupCollectionRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.GetBackupCollectionRequest} GetBackupCollectionRequest instance + */ + GetBackupCollectionRequest.create = function create(properties) { + return new GetBackupCollectionRequest(properties); + }; - /** - * Encodes the specified StateInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.StateInfo.verify|verify} messages. - * @function encode - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo - * @static - * @param {google.cloud.redis.cluster.v1.Cluster.IStateInfo} message StateInfo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - StateInfo.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.updateInfo != null && Object.hasOwnProperty.call(message, "updateInfo")) - $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo.encode(message.updateInfo, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; + /** + * Encodes the specified GetBackupCollectionRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1.GetBackupCollectionRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.GetBackupCollectionRequest + * @static + * @param {google.cloud.redis.cluster.v1.IGetBackupCollectionRequest} message GetBackupCollectionRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetBackupCollectionRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + return writer; + }; - /** - * Encodes the specified StateInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.StateInfo.verify|verify} messages. - * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo - * @static - * @param {google.cloud.redis.cluster.v1.Cluster.IStateInfo} message StateInfo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - StateInfo.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified GetBackupCollectionRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.GetBackupCollectionRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.GetBackupCollectionRequest + * @static + * @param {google.cloud.redis.cluster.v1.IGetBackupCollectionRequest} message GetBackupCollectionRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetBackupCollectionRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Decodes a StateInfo message from the specified reader or buffer. - * @function decode - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1.Cluster.StateInfo} StateInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - StateInfo.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.Cluster.StateInfo(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - message.updateInfo = $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo.decode(reader, reader.uint32()); - break; - } - default: - reader.skipType(tag & 7); + /** + * Decodes a GetBackupCollectionRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.GetBackupCollectionRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.GetBackupCollectionRequest} GetBackupCollectionRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetBackupCollectionRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.GetBackupCollectionRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.name = reader.string(); break; } + default: + reader.skipType(tag & 7); + break; } - return message; - }; - - /** - * Decodes a StateInfo message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1.Cluster.StateInfo} StateInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - StateInfo.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + } + return message; + }; - /** - * Verifies a StateInfo message. - * @function verify - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - StateInfo.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.updateInfo != null && message.hasOwnProperty("updateInfo")) { - properties.info = 1; - { - var error = $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo.verify(message.updateInfo); - if (error) - return "updateInfo." + error; - } - } - return null; - }; + /** + * Decodes a GetBackupCollectionRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.GetBackupCollectionRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.GetBackupCollectionRequest} GetBackupCollectionRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetBackupCollectionRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Creates a StateInfo message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo - * @static - * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1.Cluster.StateInfo} StateInfo - */ - StateInfo.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1.Cluster.StateInfo) - return object; - var message = new $root.google.cloud.redis.cluster.v1.Cluster.StateInfo(); - if (object.updateInfo != null) { - if (typeof object.updateInfo !== "object") - throw TypeError(".google.cloud.redis.cluster.v1.Cluster.StateInfo.updateInfo: object expected"); - message.updateInfo = $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo.fromObject(object.updateInfo); - } - return message; - }; + /** + * Verifies a GetBackupCollectionRequest message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.GetBackupCollectionRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetBackupCollectionRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + return null; + }; - /** - * Creates a plain object from a StateInfo message. Also converts values to other types if specified. - * @function toObject - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo - * @static - * @param {google.cloud.redis.cluster.v1.Cluster.StateInfo} message StateInfo - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - StateInfo.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (message.updateInfo != null && message.hasOwnProperty("updateInfo")) { - object.updateInfo = $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo.toObject(message.updateInfo, options); - if (options.oneofs) - object.info = "updateInfo"; - } + /** + * Creates a GetBackupCollectionRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.GetBackupCollectionRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.GetBackupCollectionRequest} GetBackupCollectionRequest + */ + GetBackupCollectionRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.GetBackupCollectionRequest) return object; - }; - - /** - * Converts this StateInfo to JSON. - * @function toJSON - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo - * @instance - * @returns {Object.} JSON object - */ - StateInfo.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + var message = new $root.google.cloud.redis.cluster.v1.GetBackupCollectionRequest(); + if (object.name != null) + message.name = String(object.name); + return message; + }; - /** - * Gets the default type url for StateInfo - * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - StateInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1.Cluster.StateInfo"; - }; + /** + * Creates a plain object from a GetBackupCollectionRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.GetBackupCollectionRequest + * @static + * @param {google.cloud.redis.cluster.v1.GetBackupCollectionRequest} message GetBackupCollectionRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetBackupCollectionRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.name = ""; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + return object; + }; - StateInfo.UpdateInfo = (function() { + /** + * Converts this GetBackupCollectionRequest to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.GetBackupCollectionRequest + * @instance + * @returns {Object.} JSON object + */ + GetBackupCollectionRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Properties of an UpdateInfo. - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo - * @interface IUpdateInfo - * @property {number|null} [targetShardCount] UpdateInfo targetShardCount - * @property {number|null} [targetReplicaCount] UpdateInfo targetReplicaCount - */ + /** + * Gets the default type url for GetBackupCollectionRequest + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.GetBackupCollectionRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + GetBackupCollectionRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.GetBackupCollectionRequest"; + }; - /** - * Constructs a new UpdateInfo. - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo - * @classdesc Represents an UpdateInfo. - * @implements IUpdateInfo - * @constructor - * @param {google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo=} [properties] Properties to set - */ - function UpdateInfo(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + return GetBackupCollectionRequest; + })(); - /** - * UpdateInfo targetShardCount. - * @member {number|null|undefined} targetShardCount - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo - * @instance - */ - UpdateInfo.prototype.targetShardCount = null; + v1.ListBackupsRequest = (function() { - /** - * UpdateInfo targetReplicaCount. - * @member {number|null|undefined} targetReplicaCount - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo - * @instance - */ - UpdateInfo.prototype.targetReplicaCount = null; + /** + * Properties of a ListBackupsRequest. + * @memberof google.cloud.redis.cluster.v1 + * @interface IListBackupsRequest + * @property {string|null} [parent] ListBackupsRequest parent + * @property {number|null} [pageSize] ListBackupsRequest pageSize + * @property {string|null} [pageToken] ListBackupsRequest pageToken + */ - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * Constructs a new ListBackupsRequest. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a ListBackupsRequest. + * @implements IListBackupsRequest + * @constructor + * @param {google.cloud.redis.cluster.v1.IListBackupsRequest=} [properties] Properties to set + */ + function ListBackupsRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * UpdateInfo _targetShardCount. - * @member {"targetShardCount"|undefined} _targetShardCount - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo - * @instance - */ - Object.defineProperty(UpdateInfo.prototype, "_targetShardCount", { - get: $util.oneOfGetter($oneOfFields = ["targetShardCount"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * ListBackupsRequest parent. + * @member {string} parent + * @memberof google.cloud.redis.cluster.v1.ListBackupsRequest + * @instance + */ + ListBackupsRequest.prototype.parent = ""; - /** - * UpdateInfo _targetReplicaCount. - * @member {"targetReplicaCount"|undefined} _targetReplicaCount - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo - * @instance - */ - Object.defineProperty(UpdateInfo.prototype, "_targetReplicaCount", { - get: $util.oneOfGetter($oneOfFields = ["targetReplicaCount"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * ListBackupsRequest pageSize. + * @member {number} pageSize + * @memberof google.cloud.redis.cluster.v1.ListBackupsRequest + * @instance + */ + ListBackupsRequest.prototype.pageSize = 0; - /** - * Creates a new UpdateInfo instance using the specified properties. - * @function create - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo - * @static - * @param {google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo} UpdateInfo instance - */ - UpdateInfo.create = function create(properties) { - return new UpdateInfo(properties); - }; + /** + * ListBackupsRequest pageToken. + * @member {string} pageToken + * @memberof google.cloud.redis.cluster.v1.ListBackupsRequest + * @instance + */ + ListBackupsRequest.prototype.pageToken = ""; - /** - * Encodes the specified UpdateInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo.verify|verify} messages. - * @function encode - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo - * @static - * @param {google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo} message UpdateInfo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - UpdateInfo.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.targetShardCount != null && Object.hasOwnProperty.call(message, "targetShardCount")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.targetShardCount); - if (message.targetReplicaCount != null && Object.hasOwnProperty.call(message, "targetReplicaCount")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.targetReplicaCount); - return writer; - }; - - /** - * Encodes the specified UpdateInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo.verify|verify} messages. - * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo - * @static - * @param {google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo} message UpdateInfo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - UpdateInfo.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes an UpdateInfo message from the specified reader or buffer. - * @function decode - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo} UpdateInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - UpdateInfo.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - message.targetShardCount = reader.int32(); - break; - } - case 2: { - message.targetReplicaCount = reader.int32(); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes an UpdateInfo message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo} UpdateInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - UpdateInfo.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies an UpdateInfo message. - * @function verify - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - UpdateInfo.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.targetShardCount != null && message.hasOwnProperty("targetShardCount")) { - properties._targetShardCount = 1; - if (!$util.isInteger(message.targetShardCount)) - return "targetShardCount: integer expected"; - } - if (message.targetReplicaCount != null && message.hasOwnProperty("targetReplicaCount")) { - properties._targetReplicaCount = 1; - if (!$util.isInteger(message.targetReplicaCount)) - return "targetReplicaCount: integer expected"; - } - return null; - }; - - /** - * Creates an UpdateInfo message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo - * @static - * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo} UpdateInfo - */ - UpdateInfo.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo) - return object; - var message = new $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo(); - if (object.targetShardCount != null) - message.targetShardCount = object.targetShardCount | 0; - if (object.targetReplicaCount != null) - message.targetReplicaCount = object.targetReplicaCount | 0; - return message; - }; - - /** - * Creates a plain object from an UpdateInfo message. Also converts values to other types if specified. - * @function toObject - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo - * @static - * @param {google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo} message UpdateInfo - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - UpdateInfo.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (message.targetShardCount != null && message.hasOwnProperty("targetShardCount")) { - object.targetShardCount = message.targetShardCount; - if (options.oneofs) - object._targetShardCount = "targetShardCount"; - } - if (message.targetReplicaCount != null && message.hasOwnProperty("targetReplicaCount")) { - object.targetReplicaCount = message.targetReplicaCount; - if (options.oneofs) - object._targetReplicaCount = "targetReplicaCount"; - } - return object; - }; - - /** - * Converts this UpdateInfo to JSON. - * @function toJSON - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo - * @instance - * @returns {Object.} JSON object - */ - UpdateInfo.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - /** - * Gets the default type url for UpdateInfo - * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - UpdateInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo"; - }; - - return UpdateInfo; - })(); - - return StateInfo; - })(); - - /** - * State enum. - * @name google.cloud.redis.cluster.v1.Cluster.State - * @enum {number} - * @property {number} STATE_UNSPECIFIED=0 STATE_UNSPECIFIED value - * @property {number} CREATING=1 CREATING value - * @property {number} ACTIVE=2 ACTIVE value - * @property {number} UPDATING=3 UPDATING value - * @property {number} DELETING=4 DELETING value - */ - Cluster.State = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "STATE_UNSPECIFIED"] = 0; - values[valuesById[1] = "CREATING"] = 1; - values[valuesById[2] = "ACTIVE"] = 2; - values[valuesById[3] = "UPDATING"] = 3; - values[valuesById[4] = "DELETING"] = 4; - return values; - })(); - - return Cluster; - })(); - - v1.PscConfig = (function() { - - /** - * Properties of a PscConfig. - * @memberof google.cloud.redis.cluster.v1 - * @interface IPscConfig - * @property {string|null} [network] PscConfig network - */ - - /** - * Constructs a new PscConfig. - * @memberof google.cloud.redis.cluster.v1 - * @classdesc Represents a PscConfig. - * @implements IPscConfig - * @constructor - * @param {google.cloud.redis.cluster.v1.IPscConfig=} [properties] Properties to set - */ - function PscConfig(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * PscConfig network. - * @member {string} network - * @memberof google.cloud.redis.cluster.v1.PscConfig - * @instance - */ - PscConfig.prototype.network = ""; - - /** - * Creates a new PscConfig instance using the specified properties. - * @function create - * @memberof google.cloud.redis.cluster.v1.PscConfig - * @static - * @param {google.cloud.redis.cluster.v1.IPscConfig=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1.PscConfig} PscConfig instance - */ - PscConfig.create = function create(properties) { - return new PscConfig(properties); - }; + /** + * Creates a new ListBackupsRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.ListBackupsRequest + * @static + * @param {google.cloud.redis.cluster.v1.IListBackupsRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.ListBackupsRequest} ListBackupsRequest instance + */ + ListBackupsRequest.create = function create(properties) { + return new ListBackupsRequest(properties); + }; /** - * Encodes the specified PscConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.PscConfig.verify|verify} messages. + * Encodes the specified ListBackupsRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1.ListBackupsRequest.verify|verify} messages. * @function encode - * @memberof google.cloud.redis.cluster.v1.PscConfig + * @memberof google.cloud.redis.cluster.v1.ListBackupsRequest * @static - * @param {google.cloud.redis.cluster.v1.IPscConfig} message PscConfig message or plain object to encode + * @param {google.cloud.redis.cluster.v1.IListBackupsRequest} message ListBackupsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PscConfig.encode = function encode(message, writer) { + ListBackupsRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.network != null && Object.hasOwnProperty.call(message, "network")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.network); + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); + if (message.pageSize != null && Object.hasOwnProperty.call(message, "pageSize")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.pageSize); + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.pageToken); return writer; }; /** - * Encodes the specified PscConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.PscConfig.verify|verify} messages. + * Encodes the specified ListBackupsRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ListBackupsRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1.PscConfig + * @memberof google.cloud.redis.cluster.v1.ListBackupsRequest * @static - * @param {google.cloud.redis.cluster.v1.IPscConfig} message PscConfig message or plain object to encode + * @param {google.cloud.redis.cluster.v1.IListBackupsRequest} message ListBackupsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PscConfig.encodeDelimited = function encodeDelimited(message, writer) { + ListBackupsRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a PscConfig message from the specified reader or buffer. + * Decodes a ListBackupsRequest message from the specified reader or buffer. * @function decode - * @memberof google.cloud.redis.cluster.v1.PscConfig + * @memberof google.cloud.redis.cluster.v1.ListBackupsRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1.PscConfig} PscConfig + * @returns {google.cloud.redis.cluster.v1.ListBackupsRequest} ListBackupsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PscConfig.decode = function decode(reader, length) { + ListBackupsRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.PscConfig(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.ListBackupsRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { + case 1: { + message.parent = reader.string(); + break; + } case 2: { - message.network = reader.string(); + message.pageSize = reader.int32(); + break; + } + case 3: { + message.pageToken = reader.string(); break; } default: @@ -3614,124 +3243,143 @@ }; /** - * Decodes a PscConfig message from the specified reader or buffer, length delimited. + * Decodes a ListBackupsRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1.PscConfig + * @memberof google.cloud.redis.cluster.v1.ListBackupsRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1.PscConfig} PscConfig + * @returns {google.cloud.redis.cluster.v1.ListBackupsRequest} ListBackupsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PscConfig.decodeDelimited = function decodeDelimited(reader) { + ListBackupsRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a PscConfig message. + * Verifies a ListBackupsRequest message. * @function verify - * @memberof google.cloud.redis.cluster.v1.PscConfig + * @memberof google.cloud.redis.cluster.v1.ListBackupsRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PscConfig.verify = function verify(message) { + ListBackupsRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.network != null && message.hasOwnProperty("network")) - if (!$util.isString(message.network)) - return "network: string expected"; + if (message.parent != null && message.hasOwnProperty("parent")) + if (!$util.isString(message.parent)) + return "parent: string expected"; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + if (!$util.isInteger(message.pageSize)) + return "pageSize: integer expected"; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (!$util.isString(message.pageToken)) + return "pageToken: string expected"; return null; }; /** - * Creates a PscConfig message from a plain object. Also converts values to their respective internal types. + * Creates a ListBackupsRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.redis.cluster.v1.PscConfig + * @memberof google.cloud.redis.cluster.v1.ListBackupsRequest * @static * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1.PscConfig} PscConfig + * @returns {google.cloud.redis.cluster.v1.ListBackupsRequest} ListBackupsRequest */ - PscConfig.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1.PscConfig) + ListBackupsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.ListBackupsRequest) return object; - var message = new $root.google.cloud.redis.cluster.v1.PscConfig(); - if (object.network != null) - message.network = String(object.network); + var message = new $root.google.cloud.redis.cluster.v1.ListBackupsRequest(); + if (object.parent != null) + message.parent = String(object.parent); + if (object.pageSize != null) + message.pageSize = object.pageSize | 0; + if (object.pageToken != null) + message.pageToken = String(object.pageToken); return message; }; /** - * Creates a plain object from a PscConfig message. Also converts values to other types if specified. + * Creates a plain object from a ListBackupsRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.redis.cluster.v1.PscConfig + * @memberof google.cloud.redis.cluster.v1.ListBackupsRequest * @static - * @param {google.cloud.redis.cluster.v1.PscConfig} message PscConfig + * @param {google.cloud.redis.cluster.v1.ListBackupsRequest} message ListBackupsRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PscConfig.toObject = function toObject(message, options) { + ListBackupsRequest.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.network = ""; - if (message.network != null && message.hasOwnProperty("network")) - object.network = message.network; + if (options.defaults) { + object.parent = ""; + object.pageSize = 0; + object.pageToken = ""; + } + if (message.parent != null && message.hasOwnProperty("parent")) + object.parent = message.parent; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + object.pageSize = message.pageSize; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + object.pageToken = message.pageToken; return object; }; /** - * Converts this PscConfig to JSON. + * Converts this ListBackupsRequest to JSON. * @function toJSON - * @memberof google.cloud.redis.cluster.v1.PscConfig + * @memberof google.cloud.redis.cluster.v1.ListBackupsRequest * @instance * @returns {Object.} JSON object */ - PscConfig.prototype.toJSON = function toJSON() { + ListBackupsRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for PscConfig + * Gets the default type url for ListBackupsRequest * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1.PscConfig + * @memberof google.cloud.redis.cluster.v1.ListBackupsRequest * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - PscConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + ListBackupsRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1.PscConfig"; + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.ListBackupsRequest"; }; - return PscConfig; + return ListBackupsRequest; })(); - v1.DiscoveryEndpoint = (function() { + v1.ListBackupsResponse = (function() { /** - * Properties of a DiscoveryEndpoint. + * Properties of a ListBackupsResponse. * @memberof google.cloud.redis.cluster.v1 - * @interface IDiscoveryEndpoint - * @property {string|null} [address] DiscoveryEndpoint address - * @property {number|null} [port] DiscoveryEndpoint port - * @property {google.cloud.redis.cluster.v1.IPscConfig|null} [pscConfig] DiscoveryEndpoint pscConfig + * @interface IListBackupsResponse + * @property {Array.|null} [backups] ListBackupsResponse backups + * @property {string|null} [nextPageToken] ListBackupsResponse nextPageToken + * @property {Array.|null} [unreachable] ListBackupsResponse unreachable */ /** - * Constructs a new DiscoveryEndpoint. + * Constructs a new ListBackupsResponse. * @memberof google.cloud.redis.cluster.v1 - * @classdesc Represents a DiscoveryEndpoint. - * @implements IDiscoveryEndpoint + * @classdesc Represents a ListBackupsResponse. + * @implements IListBackupsResponse * @constructor - * @param {google.cloud.redis.cluster.v1.IDiscoveryEndpoint=} [properties] Properties to set + * @param {google.cloud.redis.cluster.v1.IListBackupsResponse=} [properties] Properties to set */ - function DiscoveryEndpoint(properties) { + function ListBackupsResponse(properties) { + this.backups = []; + this.unreachable = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -3739,103 +3387,109 @@ } /** - * DiscoveryEndpoint address. - * @member {string} address - * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * ListBackupsResponse backups. + * @member {Array.} backups + * @memberof google.cloud.redis.cluster.v1.ListBackupsResponse * @instance */ - DiscoveryEndpoint.prototype.address = ""; + ListBackupsResponse.prototype.backups = $util.emptyArray; /** - * DiscoveryEndpoint port. - * @member {number} port - * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * ListBackupsResponse nextPageToken. + * @member {string} nextPageToken + * @memberof google.cloud.redis.cluster.v1.ListBackupsResponse * @instance */ - DiscoveryEndpoint.prototype.port = 0; + ListBackupsResponse.prototype.nextPageToken = ""; /** - * DiscoveryEndpoint pscConfig. - * @member {google.cloud.redis.cluster.v1.IPscConfig|null|undefined} pscConfig - * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * ListBackupsResponse unreachable. + * @member {Array.} unreachable + * @memberof google.cloud.redis.cluster.v1.ListBackupsResponse * @instance */ - DiscoveryEndpoint.prototype.pscConfig = null; + ListBackupsResponse.prototype.unreachable = $util.emptyArray; /** - * Creates a new DiscoveryEndpoint instance using the specified properties. + * Creates a new ListBackupsResponse instance using the specified properties. * @function create - * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1.ListBackupsResponse * @static - * @param {google.cloud.redis.cluster.v1.IDiscoveryEndpoint=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1.DiscoveryEndpoint} DiscoveryEndpoint instance + * @param {google.cloud.redis.cluster.v1.IListBackupsResponse=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.ListBackupsResponse} ListBackupsResponse instance */ - DiscoveryEndpoint.create = function create(properties) { - return new DiscoveryEndpoint(properties); + ListBackupsResponse.create = function create(properties) { + return new ListBackupsResponse(properties); }; /** - * Encodes the specified DiscoveryEndpoint message. Does not implicitly {@link google.cloud.redis.cluster.v1.DiscoveryEndpoint.verify|verify} messages. + * Encodes the specified ListBackupsResponse message. Does not implicitly {@link google.cloud.redis.cluster.v1.ListBackupsResponse.verify|verify} messages. * @function encode - * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1.ListBackupsResponse * @static - * @param {google.cloud.redis.cluster.v1.IDiscoveryEndpoint} message DiscoveryEndpoint message or plain object to encode + * @param {google.cloud.redis.cluster.v1.IListBackupsResponse} message ListBackupsResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DiscoveryEndpoint.encode = function encode(message, writer) { + ListBackupsResponse.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.address != null && Object.hasOwnProperty.call(message, "address")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.address); - if (message.port != null && Object.hasOwnProperty.call(message, "port")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.port); - if (message.pscConfig != null && Object.hasOwnProperty.call(message, "pscConfig")) - $root.google.cloud.redis.cluster.v1.PscConfig.encode(message.pscConfig, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.backups != null && message.backups.length) + for (var i = 0; i < message.backups.length; ++i) + $root.google.cloud.redis.cluster.v1.Backup.encode(message.backups[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.nextPageToken); + if (message.unreachable != null && message.unreachable.length) + for (var i = 0; i < message.unreachable.length; ++i) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.unreachable[i]); return writer; }; /** - * Encodes the specified DiscoveryEndpoint message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.DiscoveryEndpoint.verify|verify} messages. + * Encodes the specified ListBackupsResponse message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ListBackupsResponse.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1.ListBackupsResponse * @static - * @param {google.cloud.redis.cluster.v1.IDiscoveryEndpoint} message DiscoveryEndpoint message or plain object to encode + * @param {google.cloud.redis.cluster.v1.IListBackupsResponse} message ListBackupsResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DiscoveryEndpoint.encodeDelimited = function encodeDelimited(message, writer) { + ListBackupsResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a DiscoveryEndpoint message from the specified reader or buffer. + * Decodes a ListBackupsResponse message from the specified reader or buffer. * @function decode - * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1.ListBackupsResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1.DiscoveryEndpoint} DiscoveryEndpoint + * @returns {google.cloud.redis.cluster.v1.ListBackupsResponse} ListBackupsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DiscoveryEndpoint.decode = function decode(reader, length) { + ListBackupsResponse.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.DiscoveryEndpoint(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.ListBackupsResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.address = reader.string(); + if (!(message.backups && message.backups.length)) + message.backups = []; + message.backups.push($root.google.cloud.redis.cluster.v1.Backup.decode(reader, reader.uint32())); break; } case 2: { - message.port = reader.int32(); + message.nextPageToken = reader.string(); break; } case 3: { - message.pscConfig = $root.google.cloud.redis.cluster.v1.PscConfig.decode(reader, reader.uint32()); + if (!(message.unreachable && message.unreachable.length)) + message.unreachable = []; + message.unreachable.push(reader.string()); break; } default: @@ -3847,148 +3501,169 @@ }; /** - * Decodes a DiscoveryEndpoint message from the specified reader or buffer, length delimited. + * Decodes a ListBackupsResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1.ListBackupsResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1.DiscoveryEndpoint} DiscoveryEndpoint + * @returns {google.cloud.redis.cluster.v1.ListBackupsResponse} ListBackupsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DiscoveryEndpoint.decodeDelimited = function decodeDelimited(reader) { + ListBackupsResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a DiscoveryEndpoint message. + * Verifies a ListBackupsResponse message. * @function verify - * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1.ListBackupsResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DiscoveryEndpoint.verify = function verify(message) { + ListBackupsResponse.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.address != null && message.hasOwnProperty("address")) - if (!$util.isString(message.address)) - return "address: string expected"; - if (message.port != null && message.hasOwnProperty("port")) - if (!$util.isInteger(message.port)) - return "port: integer expected"; - if (message.pscConfig != null && message.hasOwnProperty("pscConfig")) { - var error = $root.google.cloud.redis.cluster.v1.PscConfig.verify(message.pscConfig); - if (error) - return "pscConfig." + error; + if (message.backups != null && message.hasOwnProperty("backups")) { + if (!Array.isArray(message.backups)) + return "backups: array expected"; + for (var i = 0; i < message.backups.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1.Backup.verify(message.backups[i]); + if (error) + return "backups." + error; + } + } + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (!$util.isString(message.nextPageToken)) + return "nextPageToken: string expected"; + if (message.unreachable != null && message.hasOwnProperty("unreachable")) { + if (!Array.isArray(message.unreachable)) + return "unreachable: array expected"; + for (var i = 0; i < message.unreachable.length; ++i) + if (!$util.isString(message.unreachable[i])) + return "unreachable: string[] expected"; } return null; }; /** - * Creates a DiscoveryEndpoint message from a plain object. Also converts values to their respective internal types. + * Creates a ListBackupsResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1.ListBackupsResponse * @static * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1.DiscoveryEndpoint} DiscoveryEndpoint + * @returns {google.cloud.redis.cluster.v1.ListBackupsResponse} ListBackupsResponse */ - DiscoveryEndpoint.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1.DiscoveryEndpoint) + ListBackupsResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.ListBackupsResponse) return object; - var message = new $root.google.cloud.redis.cluster.v1.DiscoveryEndpoint(); - if (object.address != null) - message.address = String(object.address); - if (object.port != null) - message.port = object.port | 0; - if (object.pscConfig != null) { - if (typeof object.pscConfig !== "object") - throw TypeError(".google.cloud.redis.cluster.v1.DiscoveryEndpoint.pscConfig: object expected"); - message.pscConfig = $root.google.cloud.redis.cluster.v1.PscConfig.fromObject(object.pscConfig); + var message = new $root.google.cloud.redis.cluster.v1.ListBackupsResponse(); + if (object.backups) { + if (!Array.isArray(object.backups)) + throw TypeError(".google.cloud.redis.cluster.v1.ListBackupsResponse.backups: array expected"); + message.backups = []; + for (var i = 0; i < object.backups.length; ++i) { + if (typeof object.backups[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.ListBackupsResponse.backups: object expected"); + message.backups[i] = $root.google.cloud.redis.cluster.v1.Backup.fromObject(object.backups[i]); + } + } + if (object.nextPageToken != null) + message.nextPageToken = String(object.nextPageToken); + if (object.unreachable) { + if (!Array.isArray(object.unreachable)) + throw TypeError(".google.cloud.redis.cluster.v1.ListBackupsResponse.unreachable: array expected"); + message.unreachable = []; + for (var i = 0; i < object.unreachable.length; ++i) + message.unreachable[i] = String(object.unreachable[i]); } return message; }; /** - * Creates a plain object from a DiscoveryEndpoint message. Also converts values to other types if specified. + * Creates a plain object from a ListBackupsResponse message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1.ListBackupsResponse * @static - * @param {google.cloud.redis.cluster.v1.DiscoveryEndpoint} message DiscoveryEndpoint + * @param {google.cloud.redis.cluster.v1.ListBackupsResponse} message ListBackupsResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DiscoveryEndpoint.toObject = function toObject(message, options) { + ListBackupsResponse.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.address = ""; - object.port = 0; - object.pscConfig = null; + if (options.arrays || options.defaults) { + object.backups = []; + object.unreachable = []; + } + if (options.defaults) + object.nextPageToken = ""; + if (message.backups && message.backups.length) { + object.backups = []; + for (var j = 0; j < message.backups.length; ++j) + object.backups[j] = $root.google.cloud.redis.cluster.v1.Backup.toObject(message.backups[j], options); + } + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + object.nextPageToken = message.nextPageToken; + if (message.unreachable && message.unreachable.length) { + object.unreachable = []; + for (var j = 0; j < message.unreachable.length; ++j) + object.unreachable[j] = message.unreachable[j]; } - if (message.address != null && message.hasOwnProperty("address")) - object.address = message.address; - if (message.port != null && message.hasOwnProperty("port")) - object.port = message.port; - if (message.pscConfig != null && message.hasOwnProperty("pscConfig")) - object.pscConfig = $root.google.cloud.redis.cluster.v1.PscConfig.toObject(message.pscConfig, options); return object; }; /** - * Converts this DiscoveryEndpoint to JSON. + * Converts this ListBackupsResponse to JSON. * @function toJSON - * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1.ListBackupsResponse * @instance * @returns {Object.} JSON object */ - DiscoveryEndpoint.prototype.toJSON = function toJSON() { + ListBackupsResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for DiscoveryEndpoint + * Gets the default type url for ListBackupsResponse * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1.ListBackupsResponse * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - DiscoveryEndpoint.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + ListBackupsResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1.DiscoveryEndpoint"; + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.ListBackupsResponse"; }; - return DiscoveryEndpoint; + return ListBackupsResponse; })(); - v1.PscConnection = (function() { + v1.GetBackupRequest = (function() { /** - * Properties of a PscConnection. + * Properties of a GetBackupRequest. * @memberof google.cloud.redis.cluster.v1 - * @interface IPscConnection - * @property {string|null} [pscConnectionId] PscConnection pscConnectionId - * @property {string|null} [address] PscConnection address - * @property {string|null} [forwardingRule] PscConnection forwardingRule - * @property {string|null} [projectId] PscConnection projectId - * @property {string|null} [network] PscConnection network + * @interface IGetBackupRequest + * @property {string|null} [name] GetBackupRequest name */ /** - * Constructs a new PscConnection. + * Constructs a new GetBackupRequest. * @memberof google.cloud.redis.cluster.v1 - * @classdesc Represents a PscConnection. - * @implements IPscConnection + * @classdesc Represents a GetBackupRequest. + * @implements IGetBackupRequest * @constructor - * @param {google.cloud.redis.cluster.v1.IPscConnection=} [properties] Properties to set + * @param {google.cloud.redis.cluster.v1.IGetBackupRequest=} [properties] Properties to set */ - function PscConnection(properties) { + function GetBackupRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -3996,131 +3671,75 @@ } /** - * PscConnection pscConnectionId. - * @member {string} pscConnectionId - * @memberof google.cloud.redis.cluster.v1.PscConnection + * GetBackupRequest name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1.GetBackupRequest * @instance */ - PscConnection.prototype.pscConnectionId = ""; + GetBackupRequest.prototype.name = ""; /** - * PscConnection address. - * @member {string} address - * @memberof google.cloud.redis.cluster.v1.PscConnection - * @instance + * Creates a new GetBackupRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.GetBackupRequest + * @static + * @param {google.cloud.redis.cluster.v1.IGetBackupRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.GetBackupRequest} GetBackupRequest instance */ - PscConnection.prototype.address = ""; + GetBackupRequest.create = function create(properties) { + return new GetBackupRequest(properties); + }; /** - * PscConnection forwardingRule. - * @member {string} forwardingRule - * @memberof google.cloud.redis.cluster.v1.PscConnection - * @instance + * Encodes the specified GetBackupRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1.GetBackupRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.GetBackupRequest + * @static + * @param {google.cloud.redis.cluster.v1.IGetBackupRequest} message GetBackupRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ - PscConnection.prototype.forwardingRule = ""; + GetBackupRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + return writer; + }; /** - * PscConnection projectId. - * @member {string} projectId - * @memberof google.cloud.redis.cluster.v1.PscConnection - * @instance + * Encodes the specified GetBackupRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.GetBackupRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.GetBackupRequest + * @static + * @param {google.cloud.redis.cluster.v1.IGetBackupRequest} message GetBackupRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ - PscConnection.prototype.projectId = ""; - - /** - * PscConnection network. - * @member {string} network - * @memberof google.cloud.redis.cluster.v1.PscConnection - * @instance - */ - PscConnection.prototype.network = ""; - - /** - * Creates a new PscConnection instance using the specified properties. - * @function create - * @memberof google.cloud.redis.cluster.v1.PscConnection - * @static - * @param {google.cloud.redis.cluster.v1.IPscConnection=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1.PscConnection} PscConnection instance - */ - PscConnection.create = function create(properties) { - return new PscConnection(properties); - }; - - /** - * Encodes the specified PscConnection message. Does not implicitly {@link google.cloud.redis.cluster.v1.PscConnection.verify|verify} messages. - * @function encode - * @memberof google.cloud.redis.cluster.v1.PscConnection - * @static - * @param {google.cloud.redis.cluster.v1.IPscConnection} message PscConnection message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - PscConnection.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.pscConnectionId != null && Object.hasOwnProperty.call(message, "pscConnectionId")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.pscConnectionId); - if (message.address != null && Object.hasOwnProperty.call(message, "address")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.address); - if (message.forwardingRule != null && Object.hasOwnProperty.call(message, "forwardingRule")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.forwardingRule); - if (message.projectId != null && Object.hasOwnProperty.call(message, "projectId")) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.projectId); - if (message.network != null && Object.hasOwnProperty.call(message, "network")) - writer.uint32(/* id 5, wireType 2 =*/42).string(message.network); - return writer; - }; - - /** - * Encodes the specified PscConnection message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.PscConnection.verify|verify} messages. - * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1.PscConnection - * @static - * @param {google.cloud.redis.cluster.v1.IPscConnection} message PscConnection message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - PscConnection.encodeDelimited = function encodeDelimited(message, writer) { + GetBackupRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a PscConnection message from the specified reader or buffer. + * Decodes a GetBackupRequest message from the specified reader or buffer. * @function decode - * @memberof google.cloud.redis.cluster.v1.PscConnection + * @memberof google.cloud.redis.cluster.v1.GetBackupRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1.PscConnection} PscConnection + * @returns {google.cloud.redis.cluster.v1.GetBackupRequest} GetBackupRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PscConnection.decode = function decode(reader, length) { + GetBackupRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.PscConnection(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.GetBackupRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.pscConnectionId = reader.string(); - break; - } - case 2: { - message.address = reader.string(); - break; - } - case 3: { - message.forwardingRule = reader.string(); - break; - } - case 4: { - message.projectId = reader.string(); - break; - } - case 5: { - message.network = reader.string(); + message.name = reader.string(); break; } default: @@ -4132,161 +3751,123 @@ }; /** - * Decodes a PscConnection message from the specified reader or buffer, length delimited. + * Decodes a GetBackupRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1.PscConnection + * @memberof google.cloud.redis.cluster.v1.GetBackupRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1.PscConnection} PscConnection + * @returns {google.cloud.redis.cluster.v1.GetBackupRequest} GetBackupRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PscConnection.decodeDelimited = function decodeDelimited(reader) { + GetBackupRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a PscConnection message. + * Verifies a GetBackupRequest message. * @function verify - * @memberof google.cloud.redis.cluster.v1.PscConnection + * @memberof google.cloud.redis.cluster.v1.GetBackupRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PscConnection.verify = function verify(message) { + GetBackupRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.pscConnectionId != null && message.hasOwnProperty("pscConnectionId")) - if (!$util.isString(message.pscConnectionId)) - return "pscConnectionId: string expected"; - if (message.address != null && message.hasOwnProperty("address")) - if (!$util.isString(message.address)) - return "address: string expected"; - if (message.forwardingRule != null && message.hasOwnProperty("forwardingRule")) - if (!$util.isString(message.forwardingRule)) - return "forwardingRule: string expected"; - if (message.projectId != null && message.hasOwnProperty("projectId")) - if (!$util.isString(message.projectId)) - return "projectId: string expected"; - if (message.network != null && message.hasOwnProperty("network")) - if (!$util.isString(message.network)) - return "network: string expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; return null; }; /** - * Creates a PscConnection message from a plain object. Also converts values to their respective internal types. + * Creates a GetBackupRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.redis.cluster.v1.PscConnection + * @memberof google.cloud.redis.cluster.v1.GetBackupRequest * @static * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1.PscConnection} PscConnection + * @returns {google.cloud.redis.cluster.v1.GetBackupRequest} GetBackupRequest */ - PscConnection.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1.PscConnection) + GetBackupRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.GetBackupRequest) return object; - var message = new $root.google.cloud.redis.cluster.v1.PscConnection(); - if (object.pscConnectionId != null) - message.pscConnectionId = String(object.pscConnectionId); - if (object.address != null) - message.address = String(object.address); - if (object.forwardingRule != null) - message.forwardingRule = String(object.forwardingRule); - if (object.projectId != null) - message.projectId = String(object.projectId); - if (object.network != null) - message.network = String(object.network); + var message = new $root.google.cloud.redis.cluster.v1.GetBackupRequest(); + if (object.name != null) + message.name = String(object.name); return message; }; /** - * Creates a plain object from a PscConnection message. Also converts values to other types if specified. + * Creates a plain object from a GetBackupRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.redis.cluster.v1.PscConnection + * @memberof google.cloud.redis.cluster.v1.GetBackupRequest * @static - * @param {google.cloud.redis.cluster.v1.PscConnection} message PscConnection + * @param {google.cloud.redis.cluster.v1.GetBackupRequest} message GetBackupRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PscConnection.toObject = function toObject(message, options) { + GetBackupRequest.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.pscConnectionId = ""; - object.address = ""; - object.forwardingRule = ""; - object.projectId = ""; - object.network = ""; - } - if (message.pscConnectionId != null && message.hasOwnProperty("pscConnectionId")) - object.pscConnectionId = message.pscConnectionId; - if (message.address != null && message.hasOwnProperty("address")) - object.address = message.address; - if (message.forwardingRule != null && message.hasOwnProperty("forwardingRule")) - object.forwardingRule = message.forwardingRule; - if (message.projectId != null && message.hasOwnProperty("projectId")) - object.projectId = message.projectId; - if (message.network != null && message.hasOwnProperty("network")) - object.network = message.network; + if (options.defaults) + object.name = ""; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; return object; }; /** - * Converts this PscConnection to JSON. + * Converts this GetBackupRequest to JSON. * @function toJSON - * @memberof google.cloud.redis.cluster.v1.PscConnection + * @memberof google.cloud.redis.cluster.v1.GetBackupRequest * @instance * @returns {Object.} JSON object */ - PscConnection.prototype.toJSON = function toJSON() { + GetBackupRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for PscConnection + * Gets the default type url for GetBackupRequest * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1.PscConnection + * @memberof google.cloud.redis.cluster.v1.GetBackupRequest * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - PscConnection.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + GetBackupRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1.PscConnection"; + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.GetBackupRequest"; }; - return PscConnection; + return GetBackupRequest; })(); - v1.OperationMetadata = (function() { + v1.DeleteBackupRequest = (function() { /** - * Properties of an OperationMetadata. + * Properties of a DeleteBackupRequest. * @memberof google.cloud.redis.cluster.v1 - * @interface IOperationMetadata - * @property {google.protobuf.ITimestamp|null} [createTime] OperationMetadata createTime - * @property {google.protobuf.ITimestamp|null} [endTime] OperationMetadata endTime - * @property {string|null} [target] OperationMetadata target - * @property {string|null} [verb] OperationMetadata verb - * @property {string|null} [statusMessage] OperationMetadata statusMessage - * @property {boolean|null} [requestedCancellation] OperationMetadata requestedCancellation - * @property {string|null} [apiVersion] OperationMetadata apiVersion + * @interface IDeleteBackupRequest + * @property {string|null} [name] DeleteBackupRequest name + * @property {string|null} [requestId] DeleteBackupRequest requestId */ /** - * Constructs a new OperationMetadata. + * Constructs a new DeleteBackupRequest. * @memberof google.cloud.redis.cluster.v1 - * @classdesc Represents an OperationMetadata. - * @implements IOperationMetadata + * @classdesc Represents a DeleteBackupRequest. + * @implements IDeleteBackupRequest * @constructor - * @param {google.cloud.redis.cluster.v1.IOperationMetadata=} [properties] Properties to set + * @param {google.cloud.redis.cluster.v1.IDeleteBackupRequest=} [properties] Properties to set */ - function OperationMetadata(properties) { + function DeleteBackupRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -4294,159 +3875,89 @@ } /** - * OperationMetadata createTime. - * @member {google.protobuf.ITimestamp|null|undefined} createTime - * @memberof google.cloud.redis.cluster.v1.OperationMetadata - * @instance - */ - OperationMetadata.prototype.createTime = null; - - /** - * OperationMetadata endTime. - * @member {google.protobuf.ITimestamp|null|undefined} endTime - * @memberof google.cloud.redis.cluster.v1.OperationMetadata - * @instance - */ - OperationMetadata.prototype.endTime = null; - - /** - * OperationMetadata target. - * @member {string} target - * @memberof google.cloud.redis.cluster.v1.OperationMetadata - * @instance - */ - OperationMetadata.prototype.target = ""; - - /** - * OperationMetadata verb. - * @member {string} verb - * @memberof google.cloud.redis.cluster.v1.OperationMetadata - * @instance - */ - OperationMetadata.prototype.verb = ""; - - /** - * OperationMetadata statusMessage. - * @member {string} statusMessage - * @memberof google.cloud.redis.cluster.v1.OperationMetadata - * @instance - */ - OperationMetadata.prototype.statusMessage = ""; - - /** - * OperationMetadata requestedCancellation. - * @member {boolean} requestedCancellation - * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * DeleteBackupRequest name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1.DeleteBackupRequest * @instance */ - OperationMetadata.prototype.requestedCancellation = false; + DeleteBackupRequest.prototype.name = ""; /** - * OperationMetadata apiVersion. - * @member {string} apiVersion - * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * DeleteBackupRequest requestId. + * @member {string} requestId + * @memberof google.cloud.redis.cluster.v1.DeleteBackupRequest * @instance */ - OperationMetadata.prototype.apiVersion = ""; + DeleteBackupRequest.prototype.requestId = ""; /** - * Creates a new OperationMetadata instance using the specified properties. + * Creates a new DeleteBackupRequest instance using the specified properties. * @function create - * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @memberof google.cloud.redis.cluster.v1.DeleteBackupRequest * @static - * @param {google.cloud.redis.cluster.v1.IOperationMetadata=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1.OperationMetadata} OperationMetadata instance + * @param {google.cloud.redis.cluster.v1.IDeleteBackupRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.DeleteBackupRequest} DeleteBackupRequest instance */ - OperationMetadata.create = function create(properties) { - return new OperationMetadata(properties); + DeleteBackupRequest.create = function create(properties) { + return new DeleteBackupRequest(properties); }; /** - * Encodes the specified OperationMetadata message. Does not implicitly {@link google.cloud.redis.cluster.v1.OperationMetadata.verify|verify} messages. + * Encodes the specified DeleteBackupRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1.DeleteBackupRequest.verify|verify} messages. * @function encode - * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @memberof google.cloud.redis.cluster.v1.DeleteBackupRequest * @static - * @param {google.cloud.redis.cluster.v1.IOperationMetadata} message OperationMetadata message or plain object to encode + * @param {google.cloud.redis.cluster.v1.IDeleteBackupRequest} message DeleteBackupRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - OperationMetadata.encode = function encode(message, writer) { + DeleteBackupRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) - $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) - $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.target != null && Object.hasOwnProperty.call(message, "target")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.target); - if (message.verb != null && Object.hasOwnProperty.call(message, "verb")) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.verb); - if (message.statusMessage != null && Object.hasOwnProperty.call(message, "statusMessage")) - writer.uint32(/* id 5, wireType 2 =*/42).string(message.statusMessage); - if (message.requestedCancellation != null && Object.hasOwnProperty.call(message, "requestedCancellation")) - writer.uint32(/* id 6, wireType 0 =*/48).bool(message.requestedCancellation); - if (message.apiVersion != null && Object.hasOwnProperty.call(message, "apiVersion")) - writer.uint32(/* id 7, wireType 2 =*/58).string(message.apiVersion); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.requestId != null && Object.hasOwnProperty.call(message, "requestId")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.requestId); return writer; }; /** - * Encodes the specified OperationMetadata message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.OperationMetadata.verify|verify} messages. + * Encodes the specified DeleteBackupRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.DeleteBackupRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @memberof google.cloud.redis.cluster.v1.DeleteBackupRequest * @static - * @param {google.cloud.redis.cluster.v1.IOperationMetadata} message OperationMetadata message or plain object to encode + * @param {google.cloud.redis.cluster.v1.IDeleteBackupRequest} message DeleteBackupRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - OperationMetadata.encodeDelimited = function encodeDelimited(message, writer) { + DeleteBackupRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an OperationMetadata message from the specified reader or buffer. + * Decodes a DeleteBackupRequest message from the specified reader or buffer. * @function decode - * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @memberof google.cloud.redis.cluster.v1.DeleteBackupRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1.OperationMetadata} OperationMetadata + * @returns {google.cloud.redis.cluster.v1.DeleteBackupRequest} DeleteBackupRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OperationMetadata.decode = function decode(reader, length) { + DeleteBackupRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.OperationMetadata(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.DeleteBackupRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.name = reader.string(); break; } case 2: { - message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); - break; - } - case 3: { - message.target = reader.string(); - break; - } - case 4: { - message.verb = reader.string(); - break; - } - case 5: { - message.statusMessage = reader.string(); - break; - } - case 6: { - message.requestedCancellation = reader.bool(); - break; - } - case 7: { - message.apiVersion = reader.string(); + message.requestId = reader.string(); break; } default: @@ -4458,182 +3969,132 @@ }; /** - * Decodes an OperationMetadata message from the specified reader or buffer, length delimited. + * Decodes a DeleteBackupRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @memberof google.cloud.redis.cluster.v1.DeleteBackupRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1.OperationMetadata} OperationMetadata + * @returns {google.cloud.redis.cluster.v1.DeleteBackupRequest} DeleteBackupRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OperationMetadata.decodeDelimited = function decodeDelimited(reader) { + DeleteBackupRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies an OperationMetadata message. + * Verifies a DeleteBackupRequest message. * @function verify - * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @memberof google.cloud.redis.cluster.v1.DeleteBackupRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OperationMetadata.verify = function verify(message) { + DeleteBackupRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.createTime != null && message.hasOwnProperty("createTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.createTime); - if (error) - return "createTime." + error; - } - if (message.endTime != null && message.hasOwnProperty("endTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.endTime); - if (error) - return "endTime." + error; - } - if (message.target != null && message.hasOwnProperty("target")) - if (!$util.isString(message.target)) - return "target: string expected"; - if (message.verb != null && message.hasOwnProperty("verb")) - if (!$util.isString(message.verb)) - return "verb: string expected"; - if (message.statusMessage != null && message.hasOwnProperty("statusMessage")) - if (!$util.isString(message.statusMessage)) - return "statusMessage: string expected"; - if (message.requestedCancellation != null && message.hasOwnProperty("requestedCancellation")) - if (typeof message.requestedCancellation !== "boolean") - return "requestedCancellation: boolean expected"; - if (message.apiVersion != null && message.hasOwnProperty("apiVersion")) - if (!$util.isString(message.apiVersion)) - return "apiVersion: string expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.requestId != null && message.hasOwnProperty("requestId")) + if (!$util.isString(message.requestId)) + return "requestId: string expected"; return null; }; /** - * Creates an OperationMetadata message from a plain object. Also converts values to their respective internal types. + * Creates a DeleteBackupRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @memberof google.cloud.redis.cluster.v1.DeleteBackupRequest * @static * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1.OperationMetadata} OperationMetadata + * @returns {google.cloud.redis.cluster.v1.DeleteBackupRequest} DeleteBackupRequest */ - OperationMetadata.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1.OperationMetadata) + DeleteBackupRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.DeleteBackupRequest) return object; - var message = new $root.google.cloud.redis.cluster.v1.OperationMetadata(); - if (object.createTime != null) { - if (typeof object.createTime !== "object") - throw TypeError(".google.cloud.redis.cluster.v1.OperationMetadata.createTime: object expected"); - message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime); - } - if (object.endTime != null) { - if (typeof object.endTime !== "object") - throw TypeError(".google.cloud.redis.cluster.v1.OperationMetadata.endTime: object expected"); - message.endTime = $root.google.protobuf.Timestamp.fromObject(object.endTime); - } - if (object.target != null) - message.target = String(object.target); - if (object.verb != null) - message.verb = String(object.verb); - if (object.statusMessage != null) - message.statusMessage = String(object.statusMessage); - if (object.requestedCancellation != null) - message.requestedCancellation = Boolean(object.requestedCancellation); - if (object.apiVersion != null) - message.apiVersion = String(object.apiVersion); + var message = new $root.google.cloud.redis.cluster.v1.DeleteBackupRequest(); + if (object.name != null) + message.name = String(object.name); + if (object.requestId != null) + message.requestId = String(object.requestId); return message; }; /** - * Creates a plain object from an OperationMetadata message. Also converts values to other types if specified. + * Creates a plain object from a DeleteBackupRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @memberof google.cloud.redis.cluster.v1.DeleteBackupRequest * @static - * @param {google.cloud.redis.cluster.v1.OperationMetadata} message OperationMetadata + * @param {google.cloud.redis.cluster.v1.DeleteBackupRequest} message DeleteBackupRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - OperationMetadata.toObject = function toObject(message, options) { + DeleteBackupRequest.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.createTime = null; - object.endTime = null; - object.target = ""; - object.verb = ""; - object.statusMessage = ""; - object.requestedCancellation = false; - object.apiVersion = ""; + object.name = ""; + object.requestId = ""; } - if (message.createTime != null && message.hasOwnProperty("createTime")) - object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options); - if (message.endTime != null && message.hasOwnProperty("endTime")) - object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options); - if (message.target != null && message.hasOwnProperty("target")) - object.target = message.target; - if (message.verb != null && message.hasOwnProperty("verb")) - object.verb = message.verb; - if (message.statusMessage != null && message.hasOwnProperty("statusMessage")) - object.statusMessage = message.statusMessage; - if (message.requestedCancellation != null && message.hasOwnProperty("requestedCancellation")) - object.requestedCancellation = message.requestedCancellation; - if (message.apiVersion != null && message.hasOwnProperty("apiVersion")) - object.apiVersion = message.apiVersion; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.requestId != null && message.hasOwnProperty("requestId")) + object.requestId = message.requestId; return object; }; /** - * Converts this OperationMetadata to JSON. + * Converts this DeleteBackupRequest to JSON. * @function toJSON - * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @memberof google.cloud.redis.cluster.v1.DeleteBackupRequest * @instance * @returns {Object.} JSON object */ - OperationMetadata.prototype.toJSON = function toJSON() { + DeleteBackupRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for OperationMetadata + * Gets the default type url for DeleteBackupRequest * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @memberof google.cloud.redis.cluster.v1.DeleteBackupRequest * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - OperationMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + DeleteBackupRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1.OperationMetadata"; + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.DeleteBackupRequest"; }; - return OperationMetadata; + return DeleteBackupRequest; })(); - v1.CertificateAuthority = (function() { + v1.ExportBackupRequest = (function() { /** - * Properties of a CertificateAuthority. + * Properties of an ExportBackupRequest. * @memberof google.cloud.redis.cluster.v1 - * @interface ICertificateAuthority - * @property {google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority|null} [managedServerCa] CertificateAuthority managedServerCa - * @property {string|null} [name] CertificateAuthority name + * @interface IExportBackupRequest + * @property {string|null} [gcsBucket] ExportBackupRequest gcsBucket + * @property {string|null} [name] ExportBackupRequest name */ /** - * Constructs a new CertificateAuthority. + * Constructs a new ExportBackupRequest. * @memberof google.cloud.redis.cluster.v1 - * @classdesc Represents a CertificateAuthority. - * @implements ICertificateAuthority + * @classdesc Represents an ExportBackupRequest. + * @implements IExportBackupRequest * @constructor - * @param {google.cloud.redis.cluster.v1.ICertificateAuthority=} [properties] Properties to set + * @param {google.cloud.redis.cluster.v1.IExportBackupRequest=} [properties] Properties to set */ - function CertificateAuthority(properties) { + function ExportBackupRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -4641,102 +4102,102 @@ } /** - * CertificateAuthority managedServerCa. - * @member {google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority|null|undefined} managedServerCa - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * ExportBackupRequest gcsBucket. + * @member {string|null|undefined} gcsBucket + * @memberof google.cloud.redis.cluster.v1.ExportBackupRequest * @instance */ - CertificateAuthority.prototype.managedServerCa = null; + ExportBackupRequest.prototype.gcsBucket = null; /** - * CertificateAuthority name. + * ExportBackupRequest name. * @member {string} name - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @memberof google.cloud.redis.cluster.v1.ExportBackupRequest * @instance */ - CertificateAuthority.prototype.name = ""; + ExportBackupRequest.prototype.name = ""; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * CertificateAuthority serverCa. - * @member {"managedServerCa"|undefined} serverCa - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * ExportBackupRequest destination. + * @member {"gcsBucket"|undefined} destination + * @memberof google.cloud.redis.cluster.v1.ExportBackupRequest * @instance */ - Object.defineProperty(CertificateAuthority.prototype, "serverCa", { - get: $util.oneOfGetter($oneOfFields = ["managedServerCa"]), + Object.defineProperty(ExportBackupRequest.prototype, "destination", { + get: $util.oneOfGetter($oneOfFields = ["gcsBucket"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new CertificateAuthority instance using the specified properties. + * Creates a new ExportBackupRequest instance using the specified properties. * @function create - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @memberof google.cloud.redis.cluster.v1.ExportBackupRequest * @static - * @param {google.cloud.redis.cluster.v1.ICertificateAuthority=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1.CertificateAuthority} CertificateAuthority instance + * @param {google.cloud.redis.cluster.v1.IExportBackupRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.ExportBackupRequest} ExportBackupRequest instance */ - CertificateAuthority.create = function create(properties) { - return new CertificateAuthority(properties); + ExportBackupRequest.create = function create(properties) { + return new ExportBackupRequest(properties); }; /** - * Encodes the specified CertificateAuthority message. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.verify|verify} messages. + * Encodes the specified ExportBackupRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1.ExportBackupRequest.verify|verify} messages. * @function encode - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @memberof google.cloud.redis.cluster.v1.ExportBackupRequest * @static - * @param {google.cloud.redis.cluster.v1.ICertificateAuthority} message CertificateAuthority message or plain object to encode + * @param {google.cloud.redis.cluster.v1.IExportBackupRequest} message ExportBackupRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CertificateAuthority.encode = function encode(message, writer) { + ExportBackupRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.managedServerCa != null && Object.hasOwnProperty.call(message, "managedServerCa")) - $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.encode(message.managedServerCa, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.name); + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.gcsBucket != null && Object.hasOwnProperty.call(message, "gcsBucket")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.gcsBucket); return writer; }; /** - * Encodes the specified CertificateAuthority message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.verify|verify} messages. + * Encodes the specified ExportBackupRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ExportBackupRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @memberof google.cloud.redis.cluster.v1.ExportBackupRequest * @static - * @param {google.cloud.redis.cluster.v1.ICertificateAuthority} message CertificateAuthority message or plain object to encode + * @param {google.cloud.redis.cluster.v1.IExportBackupRequest} message ExportBackupRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CertificateAuthority.encodeDelimited = function encodeDelimited(message, writer) { + ExportBackupRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a CertificateAuthority message from the specified reader or buffer. + * Decodes an ExportBackupRequest message from the specified reader or buffer. * @function decode - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @memberof google.cloud.redis.cluster.v1.ExportBackupRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1.CertificateAuthority} CertificateAuthority + * @returns {google.cloud.redis.cluster.v1.ExportBackupRequest} ExportBackupRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CertificateAuthority.decode = function decode(reader, length) { + ExportBackupRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.CertificateAuthority(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.ExportBackupRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: { - message.managedServerCa = $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.decode(reader, reader.uint32()); + case 3: { + message.gcsBucket = reader.string(); break; } - case 2: { + case 1: { message.name = reader.string(); break; } @@ -4749,40 +4210,37 @@ }; /** - * Decodes a CertificateAuthority message from the specified reader or buffer, length delimited. + * Decodes an ExportBackupRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @memberof google.cloud.redis.cluster.v1.ExportBackupRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1.CertificateAuthority} CertificateAuthority + * @returns {google.cloud.redis.cluster.v1.ExportBackupRequest} ExportBackupRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CertificateAuthority.decodeDelimited = function decodeDelimited(reader) { + ExportBackupRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a CertificateAuthority message. + * Verifies an ExportBackupRequest message. * @function verify - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @memberof google.cloud.redis.cluster.v1.ExportBackupRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CertificateAuthority.verify = function verify(message) { + ExportBackupRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.managedServerCa != null && message.hasOwnProperty("managedServerCa")) { - properties.serverCa = 1; - { - var error = $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.verify(message.managedServerCa); - if (error) - return "managedServerCa." + error; - } + if (message.gcsBucket != null && message.hasOwnProperty("gcsBucket")) { + properties.destination = 1; + if (!$util.isString(message.gcsBucket)) + return "gcsBucket: string expected"; } if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) @@ -4791,544 +4249,98 @@ }; /** - * Creates a CertificateAuthority message from a plain object. Also converts values to their respective internal types. + * Creates an ExportBackupRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @memberof google.cloud.redis.cluster.v1.ExportBackupRequest * @static * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1.CertificateAuthority} CertificateAuthority + * @returns {google.cloud.redis.cluster.v1.ExportBackupRequest} ExportBackupRequest */ - CertificateAuthority.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1.CertificateAuthority) + ExportBackupRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.ExportBackupRequest) return object; - var message = new $root.google.cloud.redis.cluster.v1.CertificateAuthority(); - if (object.managedServerCa != null) { - if (typeof object.managedServerCa !== "object") - throw TypeError(".google.cloud.redis.cluster.v1.CertificateAuthority.managedServerCa: object expected"); - message.managedServerCa = $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.fromObject(object.managedServerCa); - } + var message = new $root.google.cloud.redis.cluster.v1.ExportBackupRequest(); + if (object.gcsBucket != null) + message.gcsBucket = String(object.gcsBucket); if (object.name != null) message.name = String(object.name); return message; }; /** - * Creates a plain object from a CertificateAuthority message. Also converts values to other types if specified. + * Creates a plain object from an ExportBackupRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @memberof google.cloud.redis.cluster.v1.ExportBackupRequest * @static - * @param {google.cloud.redis.cluster.v1.CertificateAuthority} message CertificateAuthority + * @param {google.cloud.redis.cluster.v1.ExportBackupRequest} message ExportBackupRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CertificateAuthority.toObject = function toObject(message, options) { + ExportBackupRequest.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) object.name = ""; - if (message.managedServerCa != null && message.hasOwnProperty("managedServerCa")) { - object.managedServerCa = $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.toObject(message.managedServerCa, options); - if (options.oneofs) - object.serverCa = "managedServerCa"; - } if (message.name != null && message.hasOwnProperty("name")) object.name = message.name; + if (message.gcsBucket != null && message.hasOwnProperty("gcsBucket")) { + object.gcsBucket = message.gcsBucket; + if (options.oneofs) + object.destination = "gcsBucket"; + } return object; }; /** - * Converts this CertificateAuthority to JSON. + * Converts this ExportBackupRequest to JSON. * @function toJSON - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @memberof google.cloud.redis.cluster.v1.ExportBackupRequest * @instance * @returns {Object.} JSON object */ - CertificateAuthority.prototype.toJSON = function toJSON() { + ExportBackupRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for CertificateAuthority + * Gets the default type url for ExportBackupRequest * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @memberof google.cloud.redis.cluster.v1.ExportBackupRequest * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - CertificateAuthority.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + ExportBackupRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1.CertificateAuthority"; + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.ExportBackupRequest"; }; - CertificateAuthority.ManagedCertificateAuthority = (function() { + return ExportBackupRequest; + })(); - /** - * Properties of a ManagedCertificateAuthority. - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority - * @interface IManagedCertificateAuthority - * @property {Array.|null} [caCerts] ManagedCertificateAuthority caCerts - */ + v1.BackupClusterRequest = (function() { - /** - * Constructs a new ManagedCertificateAuthority. - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority - * @classdesc Represents a ManagedCertificateAuthority. - * @implements IManagedCertificateAuthority - * @constructor - * @param {google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority=} [properties] Properties to set - */ - function ManagedCertificateAuthority(properties) { - this.caCerts = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * ManagedCertificateAuthority caCerts. - * @member {Array.} caCerts - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority - * @instance - */ - ManagedCertificateAuthority.prototype.caCerts = $util.emptyArray; - - /** - * Creates a new ManagedCertificateAuthority instance using the specified properties. - * @function create - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority - * @static - * @param {google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority} ManagedCertificateAuthority instance - */ - ManagedCertificateAuthority.create = function create(properties) { - return new ManagedCertificateAuthority(properties); - }; - - /** - * Encodes the specified ManagedCertificateAuthority message. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.verify|verify} messages. - * @function encode - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority - * @static - * @param {google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority} message ManagedCertificateAuthority message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ManagedCertificateAuthority.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.caCerts != null && message.caCerts.length) - for (var i = 0; i < message.caCerts.length; ++i) - $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.encode(message.caCerts[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; - - /** - * Encodes the specified ManagedCertificateAuthority message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.verify|verify} messages. - * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority - * @static - * @param {google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority} message ManagedCertificateAuthority message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ManagedCertificateAuthority.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a ManagedCertificateAuthority message from the specified reader or buffer. - * @function decode - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority} ManagedCertificateAuthority - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ManagedCertificateAuthority.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - if (!(message.caCerts && message.caCerts.length)) - message.caCerts = []; - message.caCerts.push($root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.decode(reader, reader.uint32())); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a ManagedCertificateAuthority message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority} ManagedCertificateAuthority - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ManagedCertificateAuthority.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a ManagedCertificateAuthority message. - * @function verify - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ManagedCertificateAuthority.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.caCerts != null && message.hasOwnProperty("caCerts")) { - if (!Array.isArray(message.caCerts)) - return "caCerts: array expected"; - for (var i = 0; i < message.caCerts.length; ++i) { - var error = $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.verify(message.caCerts[i]); - if (error) - return "caCerts." + error; - } - } - return null; - }; - - /** - * Creates a ManagedCertificateAuthority message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority - * @static - * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority} ManagedCertificateAuthority - */ - ManagedCertificateAuthority.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority) - return object; - var message = new $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority(); - if (object.caCerts) { - if (!Array.isArray(object.caCerts)) - throw TypeError(".google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.caCerts: array expected"); - message.caCerts = []; - for (var i = 0; i < object.caCerts.length; ++i) { - if (typeof object.caCerts[i] !== "object") - throw TypeError(".google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.caCerts: object expected"); - message.caCerts[i] = $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.fromObject(object.caCerts[i]); - } - } - return message; - }; - - /** - * Creates a plain object from a ManagedCertificateAuthority message. Also converts values to other types if specified. - * @function toObject - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority - * @static - * @param {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority} message ManagedCertificateAuthority - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ManagedCertificateAuthority.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.caCerts = []; - if (message.caCerts && message.caCerts.length) { - object.caCerts = []; - for (var j = 0; j < message.caCerts.length; ++j) - object.caCerts[j] = $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.toObject(message.caCerts[j], options); - } - return object; - }; - - /** - * Converts this ManagedCertificateAuthority to JSON. - * @function toJSON - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority - * @instance - * @returns {Object.} JSON object - */ - ManagedCertificateAuthority.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - /** - * Gets the default type url for ManagedCertificateAuthority - * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - ManagedCertificateAuthority.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority"; - }; - - ManagedCertificateAuthority.CertChain = (function() { - - /** - * Properties of a CertChain. - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority - * @interface ICertChain - * @property {Array.|null} [certificates] CertChain certificates - */ - - /** - * Constructs a new CertChain. - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority - * @classdesc Represents a CertChain. - * @implements ICertChain - * @constructor - * @param {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain=} [properties] Properties to set - */ - function CertChain(properties) { - this.certificates = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * CertChain certificates. - * @member {Array.} certificates - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain - * @instance - */ - CertChain.prototype.certificates = $util.emptyArray; - - /** - * Creates a new CertChain instance using the specified properties. - * @function create - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain - * @static - * @param {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain} CertChain instance - */ - CertChain.create = function create(properties) { - return new CertChain(properties); - }; - - /** - * Encodes the specified CertChain message. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.verify|verify} messages. - * @function encode - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain - * @static - * @param {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain} message CertChain message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - CertChain.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.certificates != null && message.certificates.length) - for (var i = 0; i < message.certificates.length; ++i) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.certificates[i]); - return writer; - }; - - /** - * Encodes the specified CertChain message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.verify|verify} messages. - * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain - * @static - * @param {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain} message CertChain message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - CertChain.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a CertChain message from the specified reader or buffer. - * @function decode - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain} CertChain - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - CertChain.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - if (!(message.certificates && message.certificates.length)) - message.certificates = []; - message.certificates.push(reader.string()); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a CertChain message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain} CertChain - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - CertChain.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a CertChain message. - * @function verify - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - CertChain.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.certificates != null && message.hasOwnProperty("certificates")) { - if (!Array.isArray(message.certificates)) - return "certificates: array expected"; - for (var i = 0; i < message.certificates.length; ++i) - if (!$util.isString(message.certificates[i])) - return "certificates: string[] expected"; - } - return null; - }; - - /** - * Creates a CertChain message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain - * @static - * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain} CertChain - */ - CertChain.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain) - return object; - var message = new $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain(); - if (object.certificates) { - if (!Array.isArray(object.certificates)) - throw TypeError(".google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.certificates: array expected"); - message.certificates = []; - for (var i = 0; i < object.certificates.length; ++i) - message.certificates[i] = String(object.certificates[i]); - } - return message; - }; - - /** - * Creates a plain object from a CertChain message. Also converts values to other types if specified. - * @function toObject - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain - * @static - * @param {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain} message CertChain - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - CertChain.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.certificates = []; - if (message.certificates && message.certificates.length) { - object.certificates = []; - for (var j = 0; j < message.certificates.length; ++j) - object.certificates[j] = message.certificates[j]; - } - return object; - }; - - /** - * Converts this CertChain to JSON. - * @function toJSON - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain - * @instance - * @returns {Object.} JSON object - */ - CertChain.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - /** - * Gets the default type url for CertChain - * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - CertChain.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain"; - }; - - return CertChain; - })(); - - return ManagedCertificateAuthority; - })(); - - return CertificateAuthority; - })(); - - v1.ClusterPersistenceConfig = (function() { - - /** - * Properties of a ClusterPersistenceConfig. - * @memberof google.cloud.redis.cluster.v1 - * @interface IClusterPersistenceConfig - * @property {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceMode|null} [mode] ClusterPersistenceConfig mode - * @property {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig|null} [rdbConfig] ClusterPersistenceConfig rdbConfig - * @property {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig|null} [aofConfig] ClusterPersistenceConfig aofConfig - */ + /** + * Properties of a BackupClusterRequest. + * @memberof google.cloud.redis.cluster.v1 + * @interface IBackupClusterRequest + * @property {string|null} [name] BackupClusterRequest name + * @property {google.protobuf.IDuration|null} [ttl] BackupClusterRequest ttl + * @property {string|null} [backupId] BackupClusterRequest backupId + */ /** - * Constructs a new ClusterPersistenceConfig. + * Constructs a new BackupClusterRequest. * @memberof google.cloud.redis.cluster.v1 - * @classdesc Represents a ClusterPersistenceConfig. - * @implements IClusterPersistenceConfig + * @classdesc Represents a BackupClusterRequest. + * @implements IBackupClusterRequest * @constructor - * @param {google.cloud.redis.cluster.v1.IClusterPersistenceConfig=} [properties] Properties to set + * @param {google.cloud.redis.cluster.v1.IBackupClusterRequest=} [properties] Properties to set */ - function ClusterPersistenceConfig(properties) { + function BackupClusterRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -5336,103 +4348,117 @@ } /** - * ClusterPersistenceConfig mode. - * @member {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceMode} mode - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * BackupClusterRequest name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1.BackupClusterRequest * @instance */ - ClusterPersistenceConfig.prototype.mode = 0; + BackupClusterRequest.prototype.name = ""; /** - * ClusterPersistenceConfig rdbConfig. - * @member {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig|null|undefined} rdbConfig - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * BackupClusterRequest ttl. + * @member {google.protobuf.IDuration|null|undefined} ttl + * @memberof google.cloud.redis.cluster.v1.BackupClusterRequest * @instance */ - ClusterPersistenceConfig.prototype.rdbConfig = null; + BackupClusterRequest.prototype.ttl = null; /** - * ClusterPersistenceConfig aofConfig. - * @member {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig|null|undefined} aofConfig - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * BackupClusterRequest backupId. + * @member {string|null|undefined} backupId + * @memberof google.cloud.redis.cluster.v1.BackupClusterRequest * @instance */ - ClusterPersistenceConfig.prototype.aofConfig = null; + BackupClusterRequest.prototype.backupId = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; /** - * Creates a new ClusterPersistenceConfig instance using the specified properties. + * BackupClusterRequest _backupId. + * @member {"backupId"|undefined} _backupId + * @memberof google.cloud.redis.cluster.v1.BackupClusterRequest + * @instance + */ + Object.defineProperty(BackupClusterRequest.prototype, "_backupId", { + get: $util.oneOfGetter($oneOfFields = ["backupId"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new BackupClusterRequest instance using the specified properties. * @function create - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @memberof google.cloud.redis.cluster.v1.BackupClusterRequest * @static - * @param {google.cloud.redis.cluster.v1.IClusterPersistenceConfig=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig} ClusterPersistenceConfig instance + * @param {google.cloud.redis.cluster.v1.IBackupClusterRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.BackupClusterRequest} BackupClusterRequest instance */ - ClusterPersistenceConfig.create = function create(properties) { - return new ClusterPersistenceConfig(properties); + BackupClusterRequest.create = function create(properties) { + return new BackupClusterRequest(properties); }; /** - * Encodes the specified ClusterPersistenceConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.verify|verify} messages. + * Encodes the specified BackupClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1.BackupClusterRequest.verify|verify} messages. * @function encode - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @memberof google.cloud.redis.cluster.v1.BackupClusterRequest * @static - * @param {google.cloud.redis.cluster.v1.IClusterPersistenceConfig} message ClusterPersistenceConfig message or plain object to encode + * @param {google.cloud.redis.cluster.v1.IBackupClusterRequest} message BackupClusterRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ClusterPersistenceConfig.encode = function encode(message, writer) { + BackupClusterRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.mode != null && Object.hasOwnProperty.call(message, "mode")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.mode); - if (message.rdbConfig != null && Object.hasOwnProperty.call(message, "rdbConfig")) - $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.encode(message.rdbConfig, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.aofConfig != null && Object.hasOwnProperty.call(message, "aofConfig")) - $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.encode(message.aofConfig, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.ttl != null && Object.hasOwnProperty.call(message, "ttl")) + $root.google.protobuf.Duration.encode(message.ttl, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.backupId != null && Object.hasOwnProperty.call(message, "backupId")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.backupId); return writer; }; /** - * Encodes the specified ClusterPersistenceConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.verify|verify} messages. + * Encodes the specified BackupClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.BackupClusterRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @memberof google.cloud.redis.cluster.v1.BackupClusterRequest * @static - * @param {google.cloud.redis.cluster.v1.IClusterPersistenceConfig} message ClusterPersistenceConfig message or plain object to encode + * @param {google.cloud.redis.cluster.v1.IBackupClusterRequest} message BackupClusterRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ClusterPersistenceConfig.encodeDelimited = function encodeDelimited(message, writer) { + BackupClusterRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a ClusterPersistenceConfig message from the specified reader or buffer. + * Decodes a BackupClusterRequest message from the specified reader or buffer. * @function decode - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @memberof google.cloud.redis.cluster.v1.BackupClusterRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig} ClusterPersistenceConfig + * @returns {google.cloud.redis.cluster.v1.BackupClusterRequest} BackupClusterRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ClusterPersistenceConfig.decode = function decode(reader, length) { + BackupClusterRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.BackupClusterRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.mode = reader.int32(); + message.name = reader.string(); break; } case 2: { - message.rdbConfig = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.decode(reader, reader.uint32()); + message.ttl = $root.google.protobuf.Duration.decode(reader, reader.uint32()); break; } case 3: { - message.aofConfig = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.decode(reader, reader.uint32()); + message.backupId = reader.string(); break; } default: @@ -5444,1576 +4470,17633 @@ }; /** - * Decodes a ClusterPersistenceConfig message from the specified reader or buffer, length delimited. + * Decodes a BackupClusterRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @memberof google.cloud.redis.cluster.v1.BackupClusterRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig} ClusterPersistenceConfig + * @returns {google.cloud.redis.cluster.v1.BackupClusterRequest} BackupClusterRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ClusterPersistenceConfig.decodeDelimited = function decodeDelimited(reader) { + BackupClusterRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a ClusterPersistenceConfig message. + * Verifies a BackupClusterRequest message. * @function verify - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @memberof google.cloud.redis.cluster.v1.BackupClusterRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ClusterPersistenceConfig.verify = function verify(message) { + BackupClusterRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.mode != null && message.hasOwnProperty("mode")) - switch (message.mode) { - default: - return "mode: enum value expected"; - case 0: - case 1: - case 2: - case 3: - break; - } - if (message.rdbConfig != null && message.hasOwnProperty("rdbConfig")) { - var error = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.verify(message.rdbConfig); + var properties = {}; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.ttl != null && message.hasOwnProperty("ttl")) { + var error = $root.google.protobuf.Duration.verify(message.ttl); if (error) - return "rdbConfig." + error; + return "ttl." + error; } - if (message.aofConfig != null && message.hasOwnProperty("aofConfig")) { - var error = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.verify(message.aofConfig); - if (error) - return "aofConfig." + error; + if (message.backupId != null && message.hasOwnProperty("backupId")) { + properties._backupId = 1; + if (!$util.isString(message.backupId)) + return "backupId: string expected"; } return null; }; /** - * Creates a ClusterPersistenceConfig message from a plain object. Also converts values to their respective internal types. + * Creates a BackupClusterRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @memberof google.cloud.redis.cluster.v1.BackupClusterRequest * @static * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig} ClusterPersistenceConfig + * @returns {google.cloud.redis.cluster.v1.BackupClusterRequest} BackupClusterRequest */ - ClusterPersistenceConfig.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig) + BackupClusterRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.BackupClusterRequest) return object; - var message = new $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig(); - switch (object.mode) { - default: - if (typeof object.mode === "number") { - message.mode = object.mode; - break; - } - break; - case "PERSISTENCE_MODE_UNSPECIFIED": - case 0: - message.mode = 0; - break; - case "DISABLED": - case 1: - message.mode = 1; - break; - case "RDB": - case 2: - message.mode = 2; - break; - case "AOF": - case 3: - message.mode = 3; - break; - } - if (object.rdbConfig != null) { - if (typeof object.rdbConfig !== "object") - throw TypeError(".google.cloud.redis.cluster.v1.ClusterPersistenceConfig.rdbConfig: object expected"); - message.rdbConfig = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.fromObject(object.rdbConfig); - } - if (object.aofConfig != null) { - if (typeof object.aofConfig !== "object") - throw TypeError(".google.cloud.redis.cluster.v1.ClusterPersistenceConfig.aofConfig: object expected"); - message.aofConfig = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.fromObject(object.aofConfig); + var message = new $root.google.cloud.redis.cluster.v1.BackupClusterRequest(); + if (object.name != null) + message.name = String(object.name); + if (object.ttl != null) { + if (typeof object.ttl !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.BackupClusterRequest.ttl: object expected"); + message.ttl = $root.google.protobuf.Duration.fromObject(object.ttl); } + if (object.backupId != null) + message.backupId = String(object.backupId); return message; }; /** - * Creates a plain object from a ClusterPersistenceConfig message. Also converts values to other types if specified. + * Creates a plain object from a BackupClusterRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @memberof google.cloud.redis.cluster.v1.BackupClusterRequest * @static - * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig} message ClusterPersistenceConfig + * @param {google.cloud.redis.cluster.v1.BackupClusterRequest} message BackupClusterRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ClusterPersistenceConfig.toObject = function toObject(message, options) { + BackupClusterRequest.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.mode = options.enums === String ? "PERSISTENCE_MODE_UNSPECIFIED" : 0; - object.rdbConfig = null; - object.aofConfig = null; + object.name = ""; + object.ttl = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.ttl != null && message.hasOwnProperty("ttl")) + object.ttl = $root.google.protobuf.Duration.toObject(message.ttl, options); + if (message.backupId != null && message.hasOwnProperty("backupId")) { + object.backupId = message.backupId; + if (options.oneofs) + object._backupId = "backupId"; } - if (message.mode != null && message.hasOwnProperty("mode")) - object.mode = options.enums === String ? $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceMode[message.mode] === undefined ? message.mode : $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceMode[message.mode] : message.mode; - if (message.rdbConfig != null && message.hasOwnProperty("rdbConfig")) - object.rdbConfig = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.toObject(message.rdbConfig, options); - if (message.aofConfig != null && message.hasOwnProperty("aofConfig")) - object.aofConfig = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.toObject(message.aofConfig, options); return object; }; /** - * Converts this ClusterPersistenceConfig to JSON. + * Converts this BackupClusterRequest to JSON. * @function toJSON - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @memberof google.cloud.redis.cluster.v1.BackupClusterRequest * @instance * @returns {Object.} JSON object */ - ClusterPersistenceConfig.prototype.toJSON = function toJSON() { + BackupClusterRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for ClusterPersistenceConfig + * Gets the default type url for BackupClusterRequest * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @memberof google.cloud.redis.cluster.v1.BackupClusterRequest * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - ClusterPersistenceConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + BackupClusterRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1.ClusterPersistenceConfig"; + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.BackupClusterRequest"; }; - ClusterPersistenceConfig.RDBConfig = (function() { + return BackupClusterRequest; + })(); - /** - * Properties of a RDBConfig. - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig - * @interface IRDBConfig - * @property {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriod|null} [rdbSnapshotPeriod] RDBConfig rdbSnapshotPeriod - * @property {google.protobuf.ITimestamp|null} [rdbSnapshotStartTime] RDBConfig rdbSnapshotStartTime - */ + v1.Cluster = (function() { - /** - * Constructs a new RDBConfig. - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig - * @classdesc Represents a RDBConfig. - * @implements IRDBConfig - * @constructor - * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig=} [properties] Properties to set - */ - function RDBConfig(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a Cluster. + * @memberof google.cloud.redis.cluster.v1 + * @interface ICluster + * @property {google.cloud.redis.cluster.v1.Cluster.IGcsBackupSource|null} [gcsSource] Cluster gcsSource + * @property {google.cloud.redis.cluster.v1.Cluster.IManagedBackupSource|null} [managedBackupSource] Cluster managedBackupSource + * @property {string|null} [name] Cluster name + * @property {google.protobuf.ITimestamp|null} [createTime] Cluster createTime + * @property {google.cloud.redis.cluster.v1.Cluster.State|null} [state] Cluster state + * @property {string|null} [uid] Cluster uid + * @property {number|null} [replicaCount] Cluster replicaCount + * @property {google.cloud.redis.cluster.v1.AuthorizationMode|null} [authorizationMode] Cluster authorizationMode + * @property {google.cloud.redis.cluster.v1.TransitEncryptionMode|null} [transitEncryptionMode] Cluster transitEncryptionMode + * @property {number|null} [sizeGb] Cluster sizeGb + * @property {number|null} [shardCount] Cluster shardCount + * @property {Array.|null} [pscConfigs] Cluster pscConfigs + * @property {Array.|null} [discoveryEndpoints] Cluster discoveryEndpoints + * @property {Array.|null} [pscConnections] Cluster pscConnections + * @property {google.cloud.redis.cluster.v1.Cluster.IStateInfo|null} [stateInfo] Cluster stateInfo + * @property {google.cloud.redis.cluster.v1.NodeType|null} [nodeType] Cluster nodeType + * @property {google.cloud.redis.cluster.v1.IClusterPersistenceConfig|null} [persistenceConfig] Cluster persistenceConfig + * @property {Object.|null} [redisConfigs] Cluster redisConfigs + * @property {number|null} [preciseSizeGb] Cluster preciseSizeGb + * @property {google.cloud.redis.cluster.v1.IZoneDistributionConfig|null} [zoneDistributionConfig] Cluster zoneDistributionConfig + * @property {google.cloud.redis.cluster.v1.ICrossClusterReplicationConfig|null} [crossClusterReplicationConfig] Cluster crossClusterReplicationConfig + * @property {boolean|null} [deletionProtectionEnabled] Cluster deletionProtectionEnabled + * @property {google.cloud.redis.cluster.v1.IClusterMaintenancePolicy|null} [maintenancePolicy] Cluster maintenancePolicy + * @property {google.cloud.redis.cluster.v1.IClusterMaintenanceSchedule|null} [maintenanceSchedule] Cluster maintenanceSchedule + * @property {Array.|null} [pscServiceAttachments] Cluster pscServiceAttachments + * @property {Array.|null} [clusterEndpoints] Cluster clusterEndpoints + * @property {string|null} [backupCollection] Cluster backupCollection + * @property {string|null} [kmsKey] Cluster kmsKey + * @property {google.cloud.redis.cluster.v1.IAutomatedBackupConfig|null} [automatedBackupConfig] Cluster automatedBackupConfig + * @property {google.cloud.redis.cluster.v1.IEncryptionInfo|null} [encryptionInfo] Cluster encryptionInfo + */ - /** - * RDBConfig rdbSnapshotPeriod. - * @member {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriod} rdbSnapshotPeriod - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig - * @instance - */ - RDBConfig.prototype.rdbSnapshotPeriod = 0; + /** + * Constructs a new Cluster. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a Cluster. + * @implements ICluster + * @constructor + * @param {google.cloud.redis.cluster.v1.ICluster=} [properties] Properties to set + */ + function Cluster(properties) { + this.pscConfigs = []; + this.discoveryEndpoints = []; + this.pscConnections = []; + this.redisConfigs = {}; + this.pscServiceAttachments = []; + this.clusterEndpoints = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * RDBConfig rdbSnapshotStartTime. - * @member {google.protobuf.ITimestamp|null|undefined} rdbSnapshotStartTime - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig - * @instance - */ - RDBConfig.prototype.rdbSnapshotStartTime = null; + /** + * Cluster gcsSource. + * @member {google.cloud.redis.cluster.v1.Cluster.IGcsBackupSource|null|undefined} gcsSource + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.gcsSource = null; - /** - * Creates a new RDBConfig instance using the specified properties. - * @function create - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig - * @static - * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig} RDBConfig instance - */ - RDBConfig.create = function create(properties) { - return new RDBConfig(properties); - }; + /** + * Cluster managedBackupSource. + * @member {google.cloud.redis.cluster.v1.Cluster.IManagedBackupSource|null|undefined} managedBackupSource + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.managedBackupSource = null; - /** - * Encodes the specified RDBConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.verify|verify} messages. - * @function encode - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig - * @static - * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig} message RDBConfig message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - RDBConfig.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.rdbSnapshotPeriod != null && Object.hasOwnProperty.call(message, "rdbSnapshotPeriod")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.rdbSnapshotPeriod); - if (message.rdbSnapshotStartTime != null && Object.hasOwnProperty.call(message, "rdbSnapshotStartTime")) - $root.google.protobuf.Timestamp.encode(message.rdbSnapshotStartTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - return writer; - }; + /** + * Cluster name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.name = ""; - /** - * Encodes the specified RDBConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.verify|verify} messages. - * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig - * @static - * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig} message RDBConfig message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - RDBConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Cluster createTime. + * @member {google.protobuf.ITimestamp|null|undefined} createTime + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.createTime = null; - /** - * Decodes a RDBConfig message from the specified reader or buffer. - * @function decode - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig} RDBConfig - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - RDBConfig.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - message.rdbSnapshotPeriod = reader.int32(); - break; - } - case 2: { - message.rdbSnapshotStartTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Cluster state. + * @member {google.cloud.redis.cluster.v1.Cluster.State} state + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.state = 0; - /** - * Decodes a RDBConfig message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig} RDBConfig - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - RDBConfig.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Cluster uid. + * @member {string} uid + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.uid = ""; - /** - * Verifies a RDBConfig message. - * @function verify - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - RDBConfig.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.rdbSnapshotPeriod != null && message.hasOwnProperty("rdbSnapshotPeriod")) - switch (message.rdbSnapshotPeriod) { - default: - return "rdbSnapshotPeriod: enum value expected"; - case 0: - case 1: - case 2: - case 3: - case 4: - break; - } - if (message.rdbSnapshotStartTime != null && message.hasOwnProperty("rdbSnapshotStartTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.rdbSnapshotStartTime); - if (error) - return "rdbSnapshotStartTime." + error; - } - return null; - }; + /** + * Cluster replicaCount. + * @member {number|null|undefined} replicaCount + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.replicaCount = null; - /** - * Creates a RDBConfig message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig - * @static - * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig} RDBConfig - */ - RDBConfig.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig) - return object; - var message = new $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig(); - switch (object.rdbSnapshotPeriod) { - default: - if (typeof object.rdbSnapshotPeriod === "number") { - message.rdbSnapshotPeriod = object.rdbSnapshotPeriod; - break; - } - break; - case "SNAPSHOT_PERIOD_UNSPECIFIED": - case 0: - message.rdbSnapshotPeriod = 0; - break; - case "ONE_HOUR": - case 1: - message.rdbSnapshotPeriod = 1; - break; - case "SIX_HOURS": - case 2: - message.rdbSnapshotPeriod = 2; - break; - case "TWELVE_HOURS": - case 3: - message.rdbSnapshotPeriod = 3; - break; - case "TWENTY_FOUR_HOURS": - case 4: - message.rdbSnapshotPeriod = 4; - break; - } - if (object.rdbSnapshotStartTime != null) { - if (typeof object.rdbSnapshotStartTime !== "object") - throw TypeError(".google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.rdbSnapshotStartTime: object expected"); - message.rdbSnapshotStartTime = $root.google.protobuf.Timestamp.fromObject(object.rdbSnapshotStartTime); - } - return message; - }; + /** + * Cluster authorizationMode. + * @member {google.cloud.redis.cluster.v1.AuthorizationMode} authorizationMode + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.authorizationMode = 0; - /** - * Creates a plain object from a RDBConfig message. Also converts values to other types if specified. - * @function toObject - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig - * @static - * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig} message RDBConfig - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - RDBConfig.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.rdbSnapshotPeriod = options.enums === String ? "SNAPSHOT_PERIOD_UNSPECIFIED" : 0; - object.rdbSnapshotStartTime = null; - } - if (message.rdbSnapshotPeriod != null && message.hasOwnProperty("rdbSnapshotPeriod")) - object.rdbSnapshotPeriod = options.enums === String ? $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriod[message.rdbSnapshotPeriod] === undefined ? message.rdbSnapshotPeriod : $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriod[message.rdbSnapshotPeriod] : message.rdbSnapshotPeriod; - if (message.rdbSnapshotStartTime != null && message.hasOwnProperty("rdbSnapshotStartTime")) - object.rdbSnapshotStartTime = $root.google.protobuf.Timestamp.toObject(message.rdbSnapshotStartTime, options); - return object; - }; + /** + * Cluster transitEncryptionMode. + * @member {google.cloud.redis.cluster.v1.TransitEncryptionMode} transitEncryptionMode + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.transitEncryptionMode = 0; - /** - * Converts this RDBConfig to JSON. - * @function toJSON - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig - * @instance - * @returns {Object.} JSON object - */ - RDBConfig.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Cluster sizeGb. + * @member {number|null|undefined} sizeGb + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.sizeGb = null; - /** - * Gets the default type url for RDBConfig - * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - RDBConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig"; - }; + /** + * Cluster shardCount. + * @member {number|null|undefined} shardCount + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.shardCount = null; - /** - * SnapshotPeriod enum. - * @name google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriod - * @enum {number} - * @property {number} SNAPSHOT_PERIOD_UNSPECIFIED=0 SNAPSHOT_PERIOD_UNSPECIFIED value - * @property {number} ONE_HOUR=1 ONE_HOUR value - * @property {number} SIX_HOURS=2 SIX_HOURS value - * @property {number} TWELVE_HOURS=3 TWELVE_HOURS value - * @property {number} TWENTY_FOUR_HOURS=4 TWENTY_FOUR_HOURS value - */ - RDBConfig.SnapshotPeriod = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "SNAPSHOT_PERIOD_UNSPECIFIED"] = 0; - values[valuesById[1] = "ONE_HOUR"] = 1; - values[valuesById[2] = "SIX_HOURS"] = 2; - values[valuesById[3] = "TWELVE_HOURS"] = 3; - values[valuesById[4] = "TWENTY_FOUR_HOURS"] = 4; - return values; - })(); + /** + * Cluster pscConfigs. + * @member {Array.} pscConfigs + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.pscConfigs = $util.emptyArray; - return RDBConfig; - })(); + /** + * Cluster discoveryEndpoints. + * @member {Array.} discoveryEndpoints + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.discoveryEndpoints = $util.emptyArray; - ClusterPersistenceConfig.AOFConfig = (function() { + /** + * Cluster pscConnections. + * @member {Array.} pscConnections + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.pscConnections = $util.emptyArray; - /** - * Properties of a AOFConfig. - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig - * @interface IAOFConfig - * @property {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsync|null} [appendFsync] AOFConfig appendFsync - */ + /** + * Cluster stateInfo. + * @member {google.cloud.redis.cluster.v1.Cluster.IStateInfo|null|undefined} stateInfo + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.stateInfo = null; - /** - * Constructs a new AOFConfig. - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig - * @classdesc Represents a AOFConfig. - * @implements IAOFConfig - * @constructor - * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig=} [properties] Properties to set - */ - function AOFConfig(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Cluster nodeType. + * @member {google.cloud.redis.cluster.v1.NodeType} nodeType + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.nodeType = 0; - /** - * AOFConfig appendFsync. - * @member {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsync} appendFsync - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig - * @instance - */ - AOFConfig.prototype.appendFsync = 0; + /** + * Cluster persistenceConfig. + * @member {google.cloud.redis.cluster.v1.IClusterPersistenceConfig|null|undefined} persistenceConfig + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.persistenceConfig = null; - /** - * Creates a new AOFConfig instance using the specified properties. - * @function create - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig - * @static - * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig} AOFConfig instance - */ - AOFConfig.create = function create(properties) { - return new AOFConfig(properties); - }; + /** + * Cluster redisConfigs. + * @member {Object.} redisConfigs + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.redisConfigs = $util.emptyObject; - /** - * Encodes the specified AOFConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.verify|verify} messages. - * @function encode - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig - * @static - * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig} message AOFConfig message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - AOFConfig.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.appendFsync != null && Object.hasOwnProperty.call(message, "appendFsync")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.appendFsync); - return writer; - }; + /** + * Cluster preciseSizeGb. + * @member {number|null|undefined} preciseSizeGb + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.preciseSizeGb = null; - /** - * Encodes the specified AOFConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.verify|verify} messages. - * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig - * @static - * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig} message AOFConfig message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - AOFConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Cluster zoneDistributionConfig. + * @member {google.cloud.redis.cluster.v1.IZoneDistributionConfig|null|undefined} zoneDistributionConfig + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.zoneDistributionConfig = null; - /** - * Decodes a AOFConfig message from the specified reader or buffer. - * @function decode - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig} AOFConfig - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - AOFConfig.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - message.appendFsync = reader.int32(); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Cluster crossClusterReplicationConfig. + * @member {google.cloud.redis.cluster.v1.ICrossClusterReplicationConfig|null|undefined} crossClusterReplicationConfig + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.crossClusterReplicationConfig = null; - /** - * Decodes a AOFConfig message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig} AOFConfig - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - AOFConfig.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Cluster deletionProtectionEnabled. + * @member {boolean|null|undefined} deletionProtectionEnabled + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.deletionProtectionEnabled = null; - /** - * Verifies a AOFConfig message. - * @function verify - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - AOFConfig.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.appendFsync != null && message.hasOwnProperty("appendFsync")) - switch (message.appendFsync) { - default: - return "appendFsync: enum value expected"; - case 0: - case 1: - case 2: - case 3: - break; - } - return null; - }; + /** + * Cluster maintenancePolicy. + * @member {google.cloud.redis.cluster.v1.IClusterMaintenancePolicy|null|undefined} maintenancePolicy + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.maintenancePolicy = null; - /** - * Creates a AOFConfig message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig - * @static - * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig} AOFConfig - */ - AOFConfig.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig) - return object; - var message = new $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig(); - switch (object.appendFsync) { - default: - if (typeof object.appendFsync === "number") { - message.appendFsync = object.appendFsync; - break; - } - break; - case "APPEND_FSYNC_UNSPECIFIED": - case 0: - message.appendFsync = 0; - break; - case "NO": - case 1: - message.appendFsync = 1; - break; - case "EVERYSEC": - case 2: - message.appendFsync = 2; - break; - case "ALWAYS": - case 3: - message.appendFsync = 3; - break; - } - return message; - }; + /** + * Cluster maintenanceSchedule. + * @member {google.cloud.redis.cluster.v1.IClusterMaintenanceSchedule|null|undefined} maintenanceSchedule + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.maintenanceSchedule = null; - /** - * Creates a plain object from a AOFConfig message. Also converts values to other types if specified. - * @function toObject - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig - * @static - * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig} message AOFConfig - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - AOFConfig.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.appendFsync = options.enums === String ? "APPEND_FSYNC_UNSPECIFIED" : 0; - if (message.appendFsync != null && message.hasOwnProperty("appendFsync")) - object.appendFsync = options.enums === String ? $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsync[message.appendFsync] === undefined ? message.appendFsync : $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsync[message.appendFsync] : message.appendFsync; - return object; - }; + /** + * Cluster pscServiceAttachments. + * @member {Array.} pscServiceAttachments + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.pscServiceAttachments = $util.emptyArray; - /** - * Converts this AOFConfig to JSON. - * @function toJSON - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig - * @instance - * @returns {Object.} JSON object - */ - AOFConfig.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Cluster clusterEndpoints. + * @member {Array.} clusterEndpoints + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.clusterEndpoints = $util.emptyArray; - /** - * Gets the default type url for AOFConfig - * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - AOFConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig"; - }; + /** + * Cluster backupCollection. + * @member {string|null|undefined} backupCollection + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.backupCollection = null; - /** - * AppendFsync enum. - * @name google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsync - * @enum {number} - * @property {number} APPEND_FSYNC_UNSPECIFIED=0 APPEND_FSYNC_UNSPECIFIED value - * @property {number} NO=1 NO value - * @property {number} EVERYSEC=2 EVERYSEC value - * @property {number} ALWAYS=3 ALWAYS value - */ - AOFConfig.AppendFsync = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "APPEND_FSYNC_UNSPECIFIED"] = 0; - values[valuesById[1] = "NO"] = 1; - values[valuesById[2] = "EVERYSEC"] = 2; - values[valuesById[3] = "ALWAYS"] = 3; - return values; - })(); + /** + * Cluster kmsKey. + * @member {string|null|undefined} kmsKey + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.kmsKey = null; - return AOFConfig; - })(); + /** + * Cluster automatedBackupConfig. + * @member {google.cloud.redis.cluster.v1.IAutomatedBackupConfig|null|undefined} automatedBackupConfig + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Cluster.prototype.automatedBackupConfig = null; /** - * PersistenceMode enum. - * @name google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceMode - * @enum {number} - * @property {number} PERSISTENCE_MODE_UNSPECIFIED=0 PERSISTENCE_MODE_UNSPECIFIED value - * @property {number} DISABLED=1 DISABLED value - * @property {number} RDB=2 RDB value - * @property {number} AOF=3 AOF value + * Cluster encryptionInfo. + * @member {google.cloud.redis.cluster.v1.IEncryptionInfo|null|undefined} encryptionInfo + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance */ - ClusterPersistenceConfig.PersistenceMode = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "PERSISTENCE_MODE_UNSPECIFIED"] = 0; - values[valuesById[1] = "DISABLED"] = 1; - values[valuesById[2] = "RDB"] = 2; - values[valuesById[3] = "AOF"] = 3; - return values; - })(); + Cluster.prototype.encryptionInfo = null; - return ClusterPersistenceConfig; - })(); + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - v1.ZoneDistributionConfig = (function() { + /** + * Cluster importSources. + * @member {"gcsSource"|"managedBackupSource"|undefined} importSources + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Object.defineProperty(Cluster.prototype, "importSources", { + get: $util.oneOfGetter($oneOfFields = ["gcsSource", "managedBackupSource"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * Properties of a ZoneDistributionConfig. - * @memberof google.cloud.redis.cluster.v1 - * @interface IZoneDistributionConfig - * @property {google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionMode|null} [mode] ZoneDistributionConfig mode - * @property {string|null} [zone] ZoneDistributionConfig zone + * Cluster _replicaCount. + * @member {"replicaCount"|undefined} _replicaCount + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance */ + Object.defineProperty(Cluster.prototype, "_replicaCount", { + get: $util.oneOfGetter($oneOfFields = ["replicaCount"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * Constructs a new ZoneDistributionConfig. - * @memberof google.cloud.redis.cluster.v1 - * @classdesc Represents a ZoneDistributionConfig. - * @implements IZoneDistributionConfig - * @constructor - * @param {google.cloud.redis.cluster.v1.IZoneDistributionConfig=} [properties] Properties to set + * Cluster _sizeGb. + * @member {"sizeGb"|undefined} _sizeGb + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance */ - function ZoneDistributionConfig(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + Object.defineProperty(Cluster.prototype, "_sizeGb", { + get: $util.oneOfGetter($oneOfFields = ["sizeGb"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * ZoneDistributionConfig mode. - * @member {google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionMode} mode - * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * Cluster _shardCount. + * @member {"shardCount"|undefined} _shardCount + * @memberof google.cloud.redis.cluster.v1.Cluster * @instance */ - ZoneDistributionConfig.prototype.mode = 0; + Object.defineProperty(Cluster.prototype, "_shardCount", { + get: $util.oneOfGetter($oneOfFields = ["shardCount"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * ZoneDistributionConfig zone. - * @member {string} zone - * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * Cluster _preciseSizeGb. + * @member {"preciseSizeGb"|undefined} _preciseSizeGb + * @memberof google.cloud.redis.cluster.v1.Cluster * @instance */ - ZoneDistributionConfig.prototype.zone = ""; + Object.defineProperty(Cluster.prototype, "_preciseSizeGb", { + get: $util.oneOfGetter($oneOfFields = ["preciseSizeGb"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * Creates a new ZoneDistributionConfig instance using the specified properties. + * Cluster _deletionProtectionEnabled. + * @member {"deletionProtectionEnabled"|undefined} _deletionProtectionEnabled + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Object.defineProperty(Cluster.prototype, "_deletionProtectionEnabled", { + get: $util.oneOfGetter($oneOfFields = ["deletionProtectionEnabled"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Cluster _maintenancePolicy. + * @member {"maintenancePolicy"|undefined} _maintenancePolicy + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Object.defineProperty(Cluster.prototype, "_maintenancePolicy", { + get: $util.oneOfGetter($oneOfFields = ["maintenancePolicy"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Cluster _maintenanceSchedule. + * @member {"maintenanceSchedule"|undefined} _maintenanceSchedule + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Object.defineProperty(Cluster.prototype, "_maintenanceSchedule", { + get: $util.oneOfGetter($oneOfFields = ["maintenanceSchedule"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Cluster _backupCollection. + * @member {"backupCollection"|undefined} _backupCollection + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Object.defineProperty(Cluster.prototype, "_backupCollection", { + get: $util.oneOfGetter($oneOfFields = ["backupCollection"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Cluster _kmsKey. + * @member {"kmsKey"|undefined} _kmsKey + * @memberof google.cloud.redis.cluster.v1.Cluster + * @instance + */ + Object.defineProperty(Cluster.prototype, "_kmsKey", { + get: $util.oneOfGetter($oneOfFields = ["kmsKey"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new Cluster instance using the specified properties. * @function create - * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @memberof google.cloud.redis.cluster.v1.Cluster * @static - * @param {google.cloud.redis.cluster.v1.IZoneDistributionConfig=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1.ZoneDistributionConfig} ZoneDistributionConfig instance + * @param {google.cloud.redis.cluster.v1.ICluster=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.Cluster} Cluster instance */ - ZoneDistributionConfig.create = function create(properties) { - return new ZoneDistributionConfig(properties); + Cluster.create = function create(properties) { + return new Cluster(properties); }; /** - * Encodes the specified ZoneDistributionConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.ZoneDistributionConfig.verify|verify} messages. + * Encodes the specified Cluster message. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.verify|verify} messages. * @function encode - * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @memberof google.cloud.redis.cluster.v1.Cluster * @static - * @param {google.cloud.redis.cluster.v1.IZoneDistributionConfig} message ZoneDistributionConfig message or plain object to encode + * @param {google.cloud.redis.cluster.v1.ICluster} message Cluster message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ZoneDistributionConfig.encode = function encode(message, writer) { + Cluster.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.mode != null && Object.hasOwnProperty.call(message, "mode")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.mode); - if (message.zone != null && Object.hasOwnProperty.call(message, "zone")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.zone); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) + $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.state != null && Object.hasOwnProperty.call(message, "state")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.state); + if (message.uid != null && Object.hasOwnProperty.call(message, "uid")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.uid); + if (message.replicaCount != null && Object.hasOwnProperty.call(message, "replicaCount")) + writer.uint32(/* id 8, wireType 0 =*/64).int32(message.replicaCount); + if (message.authorizationMode != null && Object.hasOwnProperty.call(message, "authorizationMode")) + writer.uint32(/* id 11, wireType 0 =*/88).int32(message.authorizationMode); + if (message.transitEncryptionMode != null && Object.hasOwnProperty.call(message, "transitEncryptionMode")) + writer.uint32(/* id 12, wireType 0 =*/96).int32(message.transitEncryptionMode); + if (message.sizeGb != null && Object.hasOwnProperty.call(message, "sizeGb")) + writer.uint32(/* id 13, wireType 0 =*/104).int32(message.sizeGb); + if (message.shardCount != null && Object.hasOwnProperty.call(message, "shardCount")) + writer.uint32(/* id 14, wireType 0 =*/112).int32(message.shardCount); + if (message.pscConfigs != null && message.pscConfigs.length) + for (var i = 0; i < message.pscConfigs.length; ++i) + $root.google.cloud.redis.cluster.v1.PscConfig.encode(message.pscConfigs[i], writer.uint32(/* id 15, wireType 2 =*/122).fork()).ldelim(); + if (message.discoveryEndpoints != null && message.discoveryEndpoints.length) + for (var i = 0; i < message.discoveryEndpoints.length; ++i) + $root.google.cloud.redis.cluster.v1.DiscoveryEndpoint.encode(message.discoveryEndpoints[i], writer.uint32(/* id 16, wireType 2 =*/130).fork()).ldelim(); + if (message.pscConnections != null && message.pscConnections.length) + for (var i = 0; i < message.pscConnections.length; ++i) + $root.google.cloud.redis.cluster.v1.PscConnection.encode(message.pscConnections[i], writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); + if (message.stateInfo != null && Object.hasOwnProperty.call(message, "stateInfo")) + $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.encode(message.stateInfo, writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim(); + if (message.nodeType != null && Object.hasOwnProperty.call(message, "nodeType")) + writer.uint32(/* id 19, wireType 0 =*/152).int32(message.nodeType); + if (message.persistenceConfig != null && Object.hasOwnProperty.call(message, "persistenceConfig")) + $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.encode(message.persistenceConfig, writer.uint32(/* id 20, wireType 2 =*/162).fork()).ldelim(); + if (message.redisConfigs != null && Object.hasOwnProperty.call(message, "redisConfigs")) + for (var keys = Object.keys(message.redisConfigs), i = 0; i < keys.length; ++i) + writer.uint32(/* id 21, wireType 2 =*/170).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.redisConfigs[keys[i]]).ldelim(); + if (message.preciseSizeGb != null && Object.hasOwnProperty.call(message, "preciseSizeGb")) + writer.uint32(/* id 22, wireType 1 =*/177).double(message.preciseSizeGb); + if (message.zoneDistributionConfig != null && Object.hasOwnProperty.call(message, "zoneDistributionConfig")) + $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig.encode(message.zoneDistributionConfig, writer.uint32(/* id 23, wireType 2 =*/186).fork()).ldelim(); + if (message.crossClusterReplicationConfig != null && Object.hasOwnProperty.call(message, "crossClusterReplicationConfig")) + $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.encode(message.crossClusterReplicationConfig, writer.uint32(/* id 24, wireType 2 =*/194).fork()).ldelim(); + if (message.deletionProtectionEnabled != null && Object.hasOwnProperty.call(message, "deletionProtectionEnabled")) + writer.uint32(/* id 25, wireType 0 =*/200).bool(message.deletionProtectionEnabled); + if (message.maintenancePolicy != null && Object.hasOwnProperty.call(message, "maintenancePolicy")) + $root.google.cloud.redis.cluster.v1.ClusterMaintenancePolicy.encode(message.maintenancePolicy, writer.uint32(/* id 26, wireType 2 =*/210).fork()).ldelim(); + if (message.maintenanceSchedule != null && Object.hasOwnProperty.call(message, "maintenanceSchedule")) + $root.google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule.encode(message.maintenanceSchedule, writer.uint32(/* id 27, wireType 2 =*/218).fork()).ldelim(); + if (message.pscServiceAttachments != null && message.pscServiceAttachments.length) + for (var i = 0; i < message.pscServiceAttachments.length; ++i) + $root.google.cloud.redis.cluster.v1.PscServiceAttachment.encode(message.pscServiceAttachments[i], writer.uint32(/* id 30, wireType 2 =*/242).fork()).ldelim(); + if (message.gcsSource != null && Object.hasOwnProperty.call(message, "gcsSource")) + $root.google.cloud.redis.cluster.v1.Cluster.GcsBackupSource.encode(message.gcsSource, writer.uint32(/* id 34, wireType 2 =*/274).fork()).ldelim(); + if (message.managedBackupSource != null && Object.hasOwnProperty.call(message, "managedBackupSource")) + $root.google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource.encode(message.managedBackupSource, writer.uint32(/* id 35, wireType 2 =*/282).fork()).ldelim(); + if (message.clusterEndpoints != null && message.clusterEndpoints.length) + for (var i = 0; i < message.clusterEndpoints.length; ++i) + $root.google.cloud.redis.cluster.v1.ClusterEndpoint.encode(message.clusterEndpoints[i], writer.uint32(/* id 36, wireType 2 =*/290).fork()).ldelim(); + if (message.backupCollection != null && Object.hasOwnProperty.call(message, "backupCollection")) + writer.uint32(/* id 39, wireType 2 =*/314).string(message.backupCollection); + if (message.kmsKey != null && Object.hasOwnProperty.call(message, "kmsKey")) + writer.uint32(/* id 40, wireType 2 =*/322).string(message.kmsKey); + if (message.automatedBackupConfig != null && Object.hasOwnProperty.call(message, "automatedBackupConfig")) + $root.google.cloud.redis.cluster.v1.AutomatedBackupConfig.encode(message.automatedBackupConfig, writer.uint32(/* id 42, wireType 2 =*/338).fork()).ldelim(); + if (message.encryptionInfo != null && Object.hasOwnProperty.call(message, "encryptionInfo")) + $root.google.cloud.redis.cluster.v1.EncryptionInfo.encode(message.encryptionInfo, writer.uint32(/* id 43, wireType 2 =*/346).fork()).ldelim(); return writer; }; /** - * Encodes the specified ZoneDistributionConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ZoneDistributionConfig.verify|verify} messages. + * Encodes the specified Cluster message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @memberof google.cloud.redis.cluster.v1.Cluster * @static - * @param {google.cloud.redis.cluster.v1.IZoneDistributionConfig} message ZoneDistributionConfig message or plain object to encode + * @param {google.cloud.redis.cluster.v1.ICluster} message Cluster message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ZoneDistributionConfig.encodeDelimited = function encodeDelimited(message, writer) { + Cluster.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a ZoneDistributionConfig message from the specified reader or buffer. + * Decodes a Cluster message from the specified reader or buffer. * @function decode - * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @memberof google.cloud.redis.cluster.v1.Cluster * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1.ZoneDistributionConfig} ZoneDistributionConfig + * @returns {google.cloud.redis.cluster.v1.Cluster} Cluster * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ZoneDistributionConfig.decode = function decode(reader, length) { + Cluster.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.Cluster(), key, value; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { + case 34: { + message.gcsSource = $root.google.cloud.redis.cluster.v1.Cluster.GcsBackupSource.decode(reader, reader.uint32()); + break; + } + case 35: { + message.managedBackupSource = $root.google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource.decode(reader, reader.uint32()); + break; + } case 1: { - message.mode = reader.int32(); + message.name = reader.string(); break; } - case 2: { - message.zone = reader.string(); + case 3: { + message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); break; } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a ZoneDistributionConfig message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1.ZoneDistributionConfig} ZoneDistributionConfig - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ZoneDistributionConfig.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); + case 4: { + message.state = reader.int32(); + break; + } + case 5: { + message.uid = reader.string(); + break; + } + case 8: { + message.replicaCount = reader.int32(); + break; + } + case 11: { + message.authorizationMode = reader.int32(); + break; + } + case 12: { + message.transitEncryptionMode = reader.int32(); + break; + } + case 13: { + message.sizeGb = reader.int32(); + break; + } + case 14: { + message.shardCount = reader.int32(); + break; + } + case 15: { + if (!(message.pscConfigs && message.pscConfigs.length)) + message.pscConfigs = []; + message.pscConfigs.push($root.google.cloud.redis.cluster.v1.PscConfig.decode(reader, reader.uint32())); + break; + } + case 16: { + if (!(message.discoveryEndpoints && message.discoveryEndpoints.length)) + message.discoveryEndpoints = []; + message.discoveryEndpoints.push($root.google.cloud.redis.cluster.v1.DiscoveryEndpoint.decode(reader, reader.uint32())); + break; + } + case 17: { + if (!(message.pscConnections && message.pscConnections.length)) + message.pscConnections = []; + message.pscConnections.push($root.google.cloud.redis.cluster.v1.PscConnection.decode(reader, reader.uint32())); + break; + } + case 18: { + message.stateInfo = $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.decode(reader, reader.uint32()); + break; + } + case 19: { + message.nodeType = reader.int32(); + break; + } + case 20: { + message.persistenceConfig = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.decode(reader, reader.uint32()); + break; + } + case 21: { + if (message.redisConfigs === $util.emptyObject) + message.redisConfigs = {}; + var end2 = reader.uint32() + reader.pos; + key = ""; + value = ""; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = reader.string(); + break; + default: + reader.skipType(tag2 & 7); + break; + } + } + message.redisConfigs[key] = value; + break; + } + case 22: { + message.preciseSizeGb = reader.double(); + break; + } + case 23: { + message.zoneDistributionConfig = $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig.decode(reader, reader.uint32()); + break; + } + case 24: { + message.crossClusterReplicationConfig = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.decode(reader, reader.uint32()); + break; + } + case 25: { + message.deletionProtectionEnabled = reader.bool(); + break; + } + case 26: { + message.maintenancePolicy = $root.google.cloud.redis.cluster.v1.ClusterMaintenancePolicy.decode(reader, reader.uint32()); + break; + } + case 27: { + message.maintenanceSchedule = $root.google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule.decode(reader, reader.uint32()); + break; + } + case 30: { + if (!(message.pscServiceAttachments && message.pscServiceAttachments.length)) + message.pscServiceAttachments = []; + message.pscServiceAttachments.push($root.google.cloud.redis.cluster.v1.PscServiceAttachment.decode(reader, reader.uint32())); + break; + } + case 36: { + if (!(message.clusterEndpoints && message.clusterEndpoints.length)) + message.clusterEndpoints = []; + message.clusterEndpoints.push($root.google.cloud.redis.cluster.v1.ClusterEndpoint.decode(reader, reader.uint32())); + break; + } + case 39: { + message.backupCollection = reader.string(); + break; + } + case 40: { + message.kmsKey = reader.string(); + break; + } + case 42: { + message.automatedBackupConfig = $root.google.cloud.redis.cluster.v1.AutomatedBackupConfig.decode(reader, reader.uint32()); + break; + } + case 43: { + message.encryptionInfo = $root.google.cloud.redis.cluster.v1.EncryptionInfo.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; }; /** - * Verifies a ZoneDistributionConfig message. + * Decodes a Cluster message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.Cluster + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.Cluster} Cluster + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Cluster.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Cluster message. * @function verify - * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @memberof google.cloud.redis.cluster.v1.Cluster * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ZoneDistributionConfig.verify = function verify(message) { + Cluster.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.mode != null && message.hasOwnProperty("mode")) - switch (message.mode) { + var properties = {}; + if (message.gcsSource != null && message.hasOwnProperty("gcsSource")) { + properties.importSources = 1; + { + var error = $root.google.cloud.redis.cluster.v1.Cluster.GcsBackupSource.verify(message.gcsSource); + if (error) + return "gcsSource." + error; + } + } + if (message.managedBackupSource != null && message.hasOwnProperty("managedBackupSource")) { + if (properties.importSources === 1) + return "importSources: multiple values"; + properties.importSources = 1; + { + var error = $root.google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource.verify(message.managedBackupSource); + if (error) + return "managedBackupSource." + error; + } + } + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.createTime != null && message.hasOwnProperty("createTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.createTime); + if (error) + return "createTime." + error; + } + if (message.state != null && message.hasOwnProperty("state")) + switch (message.state) { default: - return "mode: enum value expected"; + return "state: enum value expected"; case 0: case 1: case 2: + case 3: + case 4: break; } - if (message.zone != null && message.hasOwnProperty("zone")) - if (!$util.isString(message.zone)) - return "zone: string expected"; + if (message.uid != null && message.hasOwnProperty("uid")) + if (!$util.isString(message.uid)) + return "uid: string expected"; + if (message.replicaCount != null && message.hasOwnProperty("replicaCount")) { + properties._replicaCount = 1; + if (!$util.isInteger(message.replicaCount)) + return "replicaCount: integer expected"; + } + if (message.authorizationMode != null && message.hasOwnProperty("authorizationMode")) + switch (message.authorizationMode) { + default: + return "authorizationMode: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.transitEncryptionMode != null && message.hasOwnProperty("transitEncryptionMode")) + switch (message.transitEncryptionMode) { + default: + return "transitEncryptionMode: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.sizeGb != null && message.hasOwnProperty("sizeGb")) { + properties._sizeGb = 1; + if (!$util.isInteger(message.sizeGb)) + return "sizeGb: integer expected"; + } + if (message.shardCount != null && message.hasOwnProperty("shardCount")) { + properties._shardCount = 1; + if (!$util.isInteger(message.shardCount)) + return "shardCount: integer expected"; + } + if (message.pscConfigs != null && message.hasOwnProperty("pscConfigs")) { + if (!Array.isArray(message.pscConfigs)) + return "pscConfigs: array expected"; + for (var i = 0; i < message.pscConfigs.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1.PscConfig.verify(message.pscConfigs[i]); + if (error) + return "pscConfigs." + error; + } + } + if (message.discoveryEndpoints != null && message.hasOwnProperty("discoveryEndpoints")) { + if (!Array.isArray(message.discoveryEndpoints)) + return "discoveryEndpoints: array expected"; + for (var i = 0; i < message.discoveryEndpoints.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1.DiscoveryEndpoint.verify(message.discoveryEndpoints[i]); + if (error) + return "discoveryEndpoints." + error; + } + } + if (message.pscConnections != null && message.hasOwnProperty("pscConnections")) { + if (!Array.isArray(message.pscConnections)) + return "pscConnections: array expected"; + for (var i = 0; i < message.pscConnections.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1.PscConnection.verify(message.pscConnections[i]); + if (error) + return "pscConnections." + error; + } + } + if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) { + var error = $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.verify(message.stateInfo); + if (error) + return "stateInfo." + error; + } + if (message.nodeType != null && message.hasOwnProperty("nodeType")) + switch (message.nodeType) { + default: + return "nodeType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + break; + } + if (message.persistenceConfig != null && message.hasOwnProperty("persistenceConfig")) { + var error = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.verify(message.persistenceConfig); + if (error) + return "persistenceConfig." + error; + } + if (message.redisConfigs != null && message.hasOwnProperty("redisConfigs")) { + if (!$util.isObject(message.redisConfigs)) + return "redisConfigs: object expected"; + var key = Object.keys(message.redisConfigs); + for (var i = 0; i < key.length; ++i) + if (!$util.isString(message.redisConfigs[key[i]])) + return "redisConfigs: string{k:string} expected"; + } + if (message.preciseSizeGb != null && message.hasOwnProperty("preciseSizeGb")) { + properties._preciseSizeGb = 1; + if (typeof message.preciseSizeGb !== "number") + return "preciseSizeGb: number expected"; + } + if (message.zoneDistributionConfig != null && message.hasOwnProperty("zoneDistributionConfig")) { + var error = $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig.verify(message.zoneDistributionConfig); + if (error) + return "zoneDistributionConfig." + error; + } + if (message.crossClusterReplicationConfig != null && message.hasOwnProperty("crossClusterReplicationConfig")) { + var error = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.verify(message.crossClusterReplicationConfig); + if (error) + return "crossClusterReplicationConfig." + error; + } + if (message.deletionProtectionEnabled != null && message.hasOwnProperty("deletionProtectionEnabled")) { + properties._deletionProtectionEnabled = 1; + if (typeof message.deletionProtectionEnabled !== "boolean") + return "deletionProtectionEnabled: boolean expected"; + } + if (message.maintenancePolicy != null && message.hasOwnProperty("maintenancePolicy")) { + properties._maintenancePolicy = 1; + { + var error = $root.google.cloud.redis.cluster.v1.ClusterMaintenancePolicy.verify(message.maintenancePolicy); + if (error) + return "maintenancePolicy." + error; + } + } + if (message.maintenanceSchedule != null && message.hasOwnProperty("maintenanceSchedule")) { + properties._maintenanceSchedule = 1; + { + var error = $root.google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule.verify(message.maintenanceSchedule); + if (error) + return "maintenanceSchedule." + error; + } + } + if (message.pscServiceAttachments != null && message.hasOwnProperty("pscServiceAttachments")) { + if (!Array.isArray(message.pscServiceAttachments)) + return "pscServiceAttachments: array expected"; + for (var i = 0; i < message.pscServiceAttachments.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1.PscServiceAttachment.verify(message.pscServiceAttachments[i]); + if (error) + return "pscServiceAttachments." + error; + } + } + if (message.clusterEndpoints != null && message.hasOwnProperty("clusterEndpoints")) { + if (!Array.isArray(message.clusterEndpoints)) + return "clusterEndpoints: array expected"; + for (var i = 0; i < message.clusterEndpoints.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1.ClusterEndpoint.verify(message.clusterEndpoints[i]); + if (error) + return "clusterEndpoints." + error; + } + } + if (message.backupCollection != null && message.hasOwnProperty("backupCollection")) { + properties._backupCollection = 1; + if (!$util.isString(message.backupCollection)) + return "backupCollection: string expected"; + } + if (message.kmsKey != null && message.hasOwnProperty("kmsKey")) { + properties._kmsKey = 1; + if (!$util.isString(message.kmsKey)) + return "kmsKey: string expected"; + } + if (message.automatedBackupConfig != null && message.hasOwnProperty("automatedBackupConfig")) { + var error = $root.google.cloud.redis.cluster.v1.AutomatedBackupConfig.verify(message.automatedBackupConfig); + if (error) + return "automatedBackupConfig." + error; + } + if (message.encryptionInfo != null && message.hasOwnProperty("encryptionInfo")) { + var error = $root.google.cloud.redis.cluster.v1.EncryptionInfo.verify(message.encryptionInfo); + if (error) + return "encryptionInfo." + error; + } return null; }; /** - * Creates a ZoneDistributionConfig message from a plain object. Also converts values to their respective internal types. + * Creates a Cluster message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @memberof google.cloud.redis.cluster.v1.Cluster * @static * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1.ZoneDistributionConfig} ZoneDistributionConfig + * @returns {google.cloud.redis.cluster.v1.Cluster} Cluster */ - ZoneDistributionConfig.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig) + Cluster.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.Cluster) return object; - var message = new $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig(); - switch (object.mode) { + var message = new $root.google.cloud.redis.cluster.v1.Cluster(); + if (object.gcsSource != null) { + if (typeof object.gcsSource !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.gcsSource: object expected"); + message.gcsSource = $root.google.cloud.redis.cluster.v1.Cluster.GcsBackupSource.fromObject(object.gcsSource); + } + if (object.managedBackupSource != null) { + if (typeof object.managedBackupSource !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.managedBackupSource: object expected"); + message.managedBackupSource = $root.google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource.fromObject(object.managedBackupSource); + } + if (object.name != null) + message.name = String(object.name); + if (object.createTime != null) { + if (typeof object.createTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.createTime: object expected"); + message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime); + } + switch (object.state) { default: - if (typeof object.mode === "number") { - message.mode = object.mode; + if (typeof object.state === "number") { + message.state = object.state; break; } break; - case "ZONE_DISTRIBUTION_MODE_UNSPECIFIED": + case "STATE_UNSPECIFIED": case 0: - message.mode = 0; + message.state = 0; break; - case "MULTI_ZONE": + case "CREATING": case 1: - message.mode = 1; + message.state = 1; break; - case "SINGLE_ZONE": + case "ACTIVE": case 2: - message.mode = 2; + message.state = 2; + break; + case "UPDATING": + case 3: + message.state = 3; + break; + case "DELETING": + case 4: + message.state = 4; break; } - if (object.zone != null) - message.zone = String(object.zone); + if (object.uid != null) + message.uid = String(object.uid); + if (object.replicaCount != null) + message.replicaCount = object.replicaCount | 0; + switch (object.authorizationMode) { + default: + if (typeof object.authorizationMode === "number") { + message.authorizationMode = object.authorizationMode; + break; + } + break; + case "AUTH_MODE_UNSPECIFIED": + case 0: + message.authorizationMode = 0; + break; + case "AUTH_MODE_IAM_AUTH": + case 1: + message.authorizationMode = 1; + break; + case "AUTH_MODE_DISABLED": + case 2: + message.authorizationMode = 2; + break; + } + switch (object.transitEncryptionMode) { + default: + if (typeof object.transitEncryptionMode === "number") { + message.transitEncryptionMode = object.transitEncryptionMode; + break; + } + break; + case "TRANSIT_ENCRYPTION_MODE_UNSPECIFIED": + case 0: + message.transitEncryptionMode = 0; + break; + case "TRANSIT_ENCRYPTION_MODE_DISABLED": + case 1: + message.transitEncryptionMode = 1; + break; + case "TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION": + case 2: + message.transitEncryptionMode = 2; + break; + } + if (object.sizeGb != null) + message.sizeGb = object.sizeGb | 0; + if (object.shardCount != null) + message.shardCount = object.shardCount | 0; + if (object.pscConfigs) { + if (!Array.isArray(object.pscConfigs)) + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.pscConfigs: array expected"); + message.pscConfigs = []; + for (var i = 0; i < object.pscConfigs.length; ++i) { + if (typeof object.pscConfigs[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.pscConfigs: object expected"); + message.pscConfigs[i] = $root.google.cloud.redis.cluster.v1.PscConfig.fromObject(object.pscConfigs[i]); + } + } + if (object.discoveryEndpoints) { + if (!Array.isArray(object.discoveryEndpoints)) + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.discoveryEndpoints: array expected"); + message.discoveryEndpoints = []; + for (var i = 0; i < object.discoveryEndpoints.length; ++i) { + if (typeof object.discoveryEndpoints[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.discoveryEndpoints: object expected"); + message.discoveryEndpoints[i] = $root.google.cloud.redis.cluster.v1.DiscoveryEndpoint.fromObject(object.discoveryEndpoints[i]); + } + } + if (object.pscConnections) { + if (!Array.isArray(object.pscConnections)) + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.pscConnections: array expected"); + message.pscConnections = []; + for (var i = 0; i < object.pscConnections.length; ++i) { + if (typeof object.pscConnections[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.pscConnections: object expected"); + message.pscConnections[i] = $root.google.cloud.redis.cluster.v1.PscConnection.fromObject(object.pscConnections[i]); + } + } + if (object.stateInfo != null) { + if (typeof object.stateInfo !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.stateInfo: object expected"); + message.stateInfo = $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.fromObject(object.stateInfo); + } + switch (object.nodeType) { + default: + if (typeof object.nodeType === "number") { + message.nodeType = object.nodeType; + break; + } + break; + case "NODE_TYPE_UNSPECIFIED": + case 0: + message.nodeType = 0; + break; + case "REDIS_SHARED_CORE_NANO": + case 1: + message.nodeType = 1; + break; + case "REDIS_HIGHMEM_MEDIUM": + case 2: + message.nodeType = 2; + break; + case "REDIS_HIGHMEM_XLARGE": + case 3: + message.nodeType = 3; + break; + case "REDIS_STANDARD_SMALL": + case 4: + message.nodeType = 4; + break; + } + if (object.persistenceConfig != null) { + if (typeof object.persistenceConfig !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.persistenceConfig: object expected"); + message.persistenceConfig = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.fromObject(object.persistenceConfig); + } + if (object.redisConfigs) { + if (typeof object.redisConfigs !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.redisConfigs: object expected"); + message.redisConfigs = {}; + for (var keys = Object.keys(object.redisConfigs), i = 0; i < keys.length; ++i) + message.redisConfigs[keys[i]] = String(object.redisConfigs[keys[i]]); + } + if (object.preciseSizeGb != null) + message.preciseSizeGb = Number(object.preciseSizeGb); + if (object.zoneDistributionConfig != null) { + if (typeof object.zoneDistributionConfig !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.zoneDistributionConfig: object expected"); + message.zoneDistributionConfig = $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig.fromObject(object.zoneDistributionConfig); + } + if (object.crossClusterReplicationConfig != null) { + if (typeof object.crossClusterReplicationConfig !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.crossClusterReplicationConfig: object expected"); + message.crossClusterReplicationConfig = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.fromObject(object.crossClusterReplicationConfig); + } + if (object.deletionProtectionEnabled != null) + message.deletionProtectionEnabled = Boolean(object.deletionProtectionEnabled); + if (object.maintenancePolicy != null) { + if (typeof object.maintenancePolicy !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.maintenancePolicy: object expected"); + message.maintenancePolicy = $root.google.cloud.redis.cluster.v1.ClusterMaintenancePolicy.fromObject(object.maintenancePolicy); + } + if (object.maintenanceSchedule != null) { + if (typeof object.maintenanceSchedule !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.maintenanceSchedule: object expected"); + message.maintenanceSchedule = $root.google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule.fromObject(object.maintenanceSchedule); + } + if (object.pscServiceAttachments) { + if (!Array.isArray(object.pscServiceAttachments)) + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.pscServiceAttachments: array expected"); + message.pscServiceAttachments = []; + for (var i = 0; i < object.pscServiceAttachments.length; ++i) { + if (typeof object.pscServiceAttachments[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.pscServiceAttachments: object expected"); + message.pscServiceAttachments[i] = $root.google.cloud.redis.cluster.v1.PscServiceAttachment.fromObject(object.pscServiceAttachments[i]); + } + } + if (object.clusterEndpoints) { + if (!Array.isArray(object.clusterEndpoints)) + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.clusterEndpoints: array expected"); + message.clusterEndpoints = []; + for (var i = 0; i < object.clusterEndpoints.length; ++i) { + if (typeof object.clusterEndpoints[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.clusterEndpoints: object expected"); + message.clusterEndpoints[i] = $root.google.cloud.redis.cluster.v1.ClusterEndpoint.fromObject(object.clusterEndpoints[i]); + } + } + if (object.backupCollection != null) + message.backupCollection = String(object.backupCollection); + if (object.kmsKey != null) + message.kmsKey = String(object.kmsKey); + if (object.automatedBackupConfig != null) { + if (typeof object.automatedBackupConfig !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.automatedBackupConfig: object expected"); + message.automatedBackupConfig = $root.google.cloud.redis.cluster.v1.AutomatedBackupConfig.fromObject(object.automatedBackupConfig); + } + if (object.encryptionInfo != null) { + if (typeof object.encryptionInfo !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.encryptionInfo: object expected"); + message.encryptionInfo = $root.google.cloud.redis.cluster.v1.EncryptionInfo.fromObject(object.encryptionInfo); + } return message; }; /** - * Creates a plain object from a ZoneDistributionConfig message. Also converts values to other types if specified. + * Creates a plain object from a Cluster message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @memberof google.cloud.redis.cluster.v1.Cluster * @static - * @param {google.cloud.redis.cluster.v1.ZoneDistributionConfig} message ZoneDistributionConfig + * @param {google.cloud.redis.cluster.v1.Cluster} message Cluster * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ZoneDistributionConfig.toObject = function toObject(message, options) { + Cluster.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.mode = options.enums === String ? "ZONE_DISTRIBUTION_MODE_UNSPECIFIED" : 0; - object.zone = ""; + if (options.arrays || options.defaults) { + object.pscConfigs = []; + object.discoveryEndpoints = []; + object.pscConnections = []; + object.pscServiceAttachments = []; + object.clusterEndpoints = []; } - if (message.mode != null && message.hasOwnProperty("mode")) - object.mode = options.enums === String ? $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionMode[message.mode] === undefined ? message.mode : $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionMode[message.mode] : message.mode; - if (message.zone != null && message.hasOwnProperty("zone")) - object.zone = message.zone; - return object; - }; - - /** - * Converts this ZoneDistributionConfig to JSON. - * @function toJSON - * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + if (options.objects || options.defaults) + object.redisConfigs = {}; + if (options.defaults) { + object.name = ""; + object.createTime = null; + object.state = options.enums === String ? "STATE_UNSPECIFIED" : 0; + object.uid = ""; + object.authorizationMode = options.enums === String ? "AUTH_MODE_UNSPECIFIED" : 0; + object.transitEncryptionMode = options.enums === String ? "TRANSIT_ENCRYPTION_MODE_UNSPECIFIED" : 0; + object.stateInfo = null; + object.nodeType = options.enums === String ? "NODE_TYPE_UNSPECIFIED" : 0; + object.persistenceConfig = null; + object.zoneDistributionConfig = null; + object.crossClusterReplicationConfig = null; + object.automatedBackupConfig = null; + object.encryptionInfo = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.createTime != null && message.hasOwnProperty("createTime")) + object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options); + if (message.state != null && message.hasOwnProperty("state")) + object.state = options.enums === String ? $root.google.cloud.redis.cluster.v1.Cluster.State[message.state] === undefined ? message.state : $root.google.cloud.redis.cluster.v1.Cluster.State[message.state] : message.state; + if (message.uid != null && message.hasOwnProperty("uid")) + object.uid = message.uid; + if (message.replicaCount != null && message.hasOwnProperty("replicaCount")) { + object.replicaCount = message.replicaCount; + if (options.oneofs) + object._replicaCount = "replicaCount"; + } + if (message.authorizationMode != null && message.hasOwnProperty("authorizationMode")) + object.authorizationMode = options.enums === String ? $root.google.cloud.redis.cluster.v1.AuthorizationMode[message.authorizationMode] === undefined ? message.authorizationMode : $root.google.cloud.redis.cluster.v1.AuthorizationMode[message.authorizationMode] : message.authorizationMode; + if (message.transitEncryptionMode != null && message.hasOwnProperty("transitEncryptionMode")) + object.transitEncryptionMode = options.enums === String ? $root.google.cloud.redis.cluster.v1.TransitEncryptionMode[message.transitEncryptionMode] === undefined ? message.transitEncryptionMode : $root.google.cloud.redis.cluster.v1.TransitEncryptionMode[message.transitEncryptionMode] : message.transitEncryptionMode; + if (message.sizeGb != null && message.hasOwnProperty("sizeGb")) { + object.sizeGb = message.sizeGb; + if (options.oneofs) + object._sizeGb = "sizeGb"; + } + if (message.shardCount != null && message.hasOwnProperty("shardCount")) { + object.shardCount = message.shardCount; + if (options.oneofs) + object._shardCount = "shardCount"; + } + if (message.pscConfigs && message.pscConfigs.length) { + object.pscConfigs = []; + for (var j = 0; j < message.pscConfigs.length; ++j) + object.pscConfigs[j] = $root.google.cloud.redis.cluster.v1.PscConfig.toObject(message.pscConfigs[j], options); + } + if (message.discoveryEndpoints && message.discoveryEndpoints.length) { + object.discoveryEndpoints = []; + for (var j = 0; j < message.discoveryEndpoints.length; ++j) + object.discoveryEndpoints[j] = $root.google.cloud.redis.cluster.v1.DiscoveryEndpoint.toObject(message.discoveryEndpoints[j], options); + } + if (message.pscConnections && message.pscConnections.length) { + object.pscConnections = []; + for (var j = 0; j < message.pscConnections.length; ++j) + object.pscConnections[j] = $root.google.cloud.redis.cluster.v1.PscConnection.toObject(message.pscConnections[j], options); + } + if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) + object.stateInfo = $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.toObject(message.stateInfo, options); + if (message.nodeType != null && message.hasOwnProperty("nodeType")) + object.nodeType = options.enums === String ? $root.google.cloud.redis.cluster.v1.NodeType[message.nodeType] === undefined ? message.nodeType : $root.google.cloud.redis.cluster.v1.NodeType[message.nodeType] : message.nodeType; + if (message.persistenceConfig != null && message.hasOwnProperty("persistenceConfig")) + object.persistenceConfig = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.toObject(message.persistenceConfig, options); + var keys2; + if (message.redisConfigs && (keys2 = Object.keys(message.redisConfigs)).length) { + object.redisConfigs = {}; + for (var j = 0; j < keys2.length; ++j) + object.redisConfigs[keys2[j]] = message.redisConfigs[keys2[j]]; + } + if (message.preciseSizeGb != null && message.hasOwnProperty("preciseSizeGb")) { + object.preciseSizeGb = options.json && !isFinite(message.preciseSizeGb) ? String(message.preciseSizeGb) : message.preciseSizeGb; + if (options.oneofs) + object._preciseSizeGb = "preciseSizeGb"; + } + if (message.zoneDistributionConfig != null && message.hasOwnProperty("zoneDistributionConfig")) + object.zoneDistributionConfig = $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig.toObject(message.zoneDistributionConfig, options); + if (message.crossClusterReplicationConfig != null && message.hasOwnProperty("crossClusterReplicationConfig")) + object.crossClusterReplicationConfig = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.toObject(message.crossClusterReplicationConfig, options); + if (message.deletionProtectionEnabled != null && message.hasOwnProperty("deletionProtectionEnabled")) { + object.deletionProtectionEnabled = message.deletionProtectionEnabled; + if (options.oneofs) + object._deletionProtectionEnabled = "deletionProtectionEnabled"; + } + if (message.maintenancePolicy != null && message.hasOwnProperty("maintenancePolicy")) { + object.maintenancePolicy = $root.google.cloud.redis.cluster.v1.ClusterMaintenancePolicy.toObject(message.maintenancePolicy, options); + if (options.oneofs) + object._maintenancePolicy = "maintenancePolicy"; + } + if (message.maintenanceSchedule != null && message.hasOwnProperty("maintenanceSchedule")) { + object.maintenanceSchedule = $root.google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule.toObject(message.maintenanceSchedule, options); + if (options.oneofs) + object._maintenanceSchedule = "maintenanceSchedule"; + } + if (message.pscServiceAttachments && message.pscServiceAttachments.length) { + object.pscServiceAttachments = []; + for (var j = 0; j < message.pscServiceAttachments.length; ++j) + object.pscServiceAttachments[j] = $root.google.cloud.redis.cluster.v1.PscServiceAttachment.toObject(message.pscServiceAttachments[j], options); + } + if (message.gcsSource != null && message.hasOwnProperty("gcsSource")) { + object.gcsSource = $root.google.cloud.redis.cluster.v1.Cluster.GcsBackupSource.toObject(message.gcsSource, options); + if (options.oneofs) + object.importSources = "gcsSource"; + } + if (message.managedBackupSource != null && message.hasOwnProperty("managedBackupSource")) { + object.managedBackupSource = $root.google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource.toObject(message.managedBackupSource, options); + if (options.oneofs) + object.importSources = "managedBackupSource"; + } + if (message.clusterEndpoints && message.clusterEndpoints.length) { + object.clusterEndpoints = []; + for (var j = 0; j < message.clusterEndpoints.length; ++j) + object.clusterEndpoints[j] = $root.google.cloud.redis.cluster.v1.ClusterEndpoint.toObject(message.clusterEndpoints[j], options); + } + if (message.backupCollection != null && message.hasOwnProperty("backupCollection")) { + object.backupCollection = message.backupCollection; + if (options.oneofs) + object._backupCollection = "backupCollection"; + } + if (message.kmsKey != null && message.hasOwnProperty("kmsKey")) { + object.kmsKey = message.kmsKey; + if (options.oneofs) + object._kmsKey = "kmsKey"; + } + if (message.automatedBackupConfig != null && message.hasOwnProperty("automatedBackupConfig")) + object.automatedBackupConfig = $root.google.cloud.redis.cluster.v1.AutomatedBackupConfig.toObject(message.automatedBackupConfig, options); + if (message.encryptionInfo != null && message.hasOwnProperty("encryptionInfo")) + object.encryptionInfo = $root.google.cloud.redis.cluster.v1.EncryptionInfo.toObject(message.encryptionInfo, options); + return object; + }; + + /** + * Converts this Cluster to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.Cluster * @instance * @returns {Object.} JSON object */ - ZoneDistributionConfig.prototype.toJSON = function toJSON() { + Cluster.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for ZoneDistributionConfig + * Gets the default type url for Cluster * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @memberof google.cloud.redis.cluster.v1.Cluster * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - ZoneDistributionConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + Cluster.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1.ZoneDistributionConfig"; + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.Cluster"; }; - /** - * ZoneDistributionMode enum. - * @name google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionMode - * @enum {number} - * @property {number} ZONE_DISTRIBUTION_MODE_UNSPECIFIED=0 ZONE_DISTRIBUTION_MODE_UNSPECIFIED value - * @property {number} MULTI_ZONE=1 MULTI_ZONE value - * @property {number} SINGLE_ZONE=2 SINGLE_ZONE value - */ - ZoneDistributionConfig.ZoneDistributionMode = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "ZONE_DISTRIBUTION_MODE_UNSPECIFIED"] = 0; - values[valuesById[1] = "MULTI_ZONE"] = 1; - values[valuesById[2] = "SINGLE_ZONE"] = 2; - return values; - })(); - - return ZoneDistributionConfig; - })(); + Cluster.StateInfo = (function() { - return v1; - })(); + /** + * Properties of a StateInfo. + * @memberof google.cloud.redis.cluster.v1.Cluster + * @interface IStateInfo + * @property {google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo|null} [updateInfo] StateInfo updateInfo + */ - cluster.v1beta1 = (function() { + /** + * Constructs a new StateInfo. + * @memberof google.cloud.redis.cluster.v1.Cluster + * @classdesc Represents a StateInfo. + * @implements IStateInfo + * @constructor + * @param {google.cloud.redis.cluster.v1.Cluster.IStateInfo=} [properties] Properties to set + */ + function StateInfo(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Namespace v1beta1. - * @memberof google.cloud.redis.cluster - * @namespace - */ - var v1beta1 = {}; + /** + * StateInfo updateInfo. + * @member {google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo|null|undefined} updateInfo + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo + * @instance + */ + StateInfo.prototype.updateInfo = null; - v1beta1.CloudRedisCluster = (function() { + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * Constructs a new CloudRedisCluster service. - * @memberof google.cloud.redis.cluster.v1beta1 - * @classdesc Represents a CloudRedisCluster - * @extends $protobuf.rpc.Service - * @constructor - * @param {$protobuf.RPCImpl} rpcImpl RPC implementation - * @param {boolean} [requestDelimited=false] Whether requests are length-delimited - * @param {boolean} [responseDelimited=false] Whether responses are length-delimited - */ - function CloudRedisCluster(rpcImpl, requestDelimited, responseDelimited) { - $protobuf.rpc.Service.call(this, rpcImpl, requestDelimited, responseDelimited); - } + /** + * StateInfo info. + * @member {"updateInfo"|undefined} info + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo + * @instance + */ + Object.defineProperty(StateInfo.prototype, "info", { + get: $util.oneOfGetter($oneOfFields = ["updateInfo"]), + set: $util.oneOfSetter($oneOfFields) + }); - (CloudRedisCluster.prototype = Object.create($protobuf.rpc.Service.prototype)).constructor = CloudRedisCluster; + /** + * Creates a new StateInfo instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo + * @static + * @param {google.cloud.redis.cluster.v1.Cluster.IStateInfo=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.Cluster.StateInfo} StateInfo instance + */ + StateInfo.create = function create(properties) { + return new StateInfo(properties); + }; - /** - * Creates new CloudRedisCluster service using the specified rpc implementation. - * @function create - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @static - * @param {$protobuf.RPCImpl} rpcImpl RPC implementation - * @param {boolean} [requestDelimited=false] Whether requests are length-delimited - * @param {boolean} [responseDelimited=false] Whether responses are length-delimited - * @returns {CloudRedisCluster} RPC service. Useful where requests and/or responses are streamed. - */ - CloudRedisCluster.create = function create(rpcImpl, requestDelimited, responseDelimited) { - return new this(rpcImpl, requestDelimited, responseDelimited); - }; + /** + * Encodes the specified StateInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.StateInfo.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo + * @static + * @param {google.cloud.redis.cluster.v1.Cluster.IStateInfo} message StateInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StateInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.updateInfo != null && Object.hasOwnProperty.call(message, "updateInfo")) + $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo.encode(message.updateInfo, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; - /** - * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|listClusters}. - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @typedef ListClustersCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.cloud.redis.cluster.v1beta1.ListClustersResponse} [response] ListClustersResponse - */ + /** + * Encodes the specified StateInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.StateInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo + * @static + * @param {google.cloud.redis.cluster.v1.Cluster.IStateInfo} message StateInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StateInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Calls ListClusters. - * @function listClusters - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @instance - * @param {google.cloud.redis.cluster.v1beta1.IListClustersRequest} request ListClustersRequest message or plain object - * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.ListClustersCallback} callback Node-style callback called with the error, if any, and ListClustersResponse - * @returns {undefined} - * @variation 1 - */ - Object.defineProperty(CloudRedisCluster.prototype.listClusters = function listClusters(request, callback) { - return this.rpcCall(listClusters, $root.google.cloud.redis.cluster.v1beta1.ListClustersRequest, $root.google.cloud.redis.cluster.v1beta1.ListClustersResponse, request, callback); - }, "name", { value: "ListClusters" }); + /** + * Decodes a StateInfo message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.Cluster.StateInfo} StateInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StateInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.Cluster.StateInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.updateInfo = $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Calls ListClusters. - * @function listClusters - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @instance - * @param {google.cloud.redis.cluster.v1beta1.IListClustersRequest} request ListClustersRequest message or plain object - * @returns {Promise} Promise - * @variation 2 - */ + /** + * Decodes a StateInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.Cluster.StateInfo} StateInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StateInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|getCluster}. - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @typedef GetClusterCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.cloud.redis.cluster.v1beta1.Cluster} [response] Cluster - */ + /** + * Verifies a StateInfo message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + StateInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.updateInfo != null && message.hasOwnProperty("updateInfo")) { + properties.info = 1; + { + var error = $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo.verify(message.updateInfo); + if (error) + return "updateInfo." + error; + } + } + return null; + }; - /** - * Calls GetCluster. - * @function getCluster - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @instance - * @param {google.cloud.redis.cluster.v1beta1.IGetClusterRequest} request GetClusterRequest message or plain object - * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.GetClusterCallback} callback Node-style callback called with the error, if any, and Cluster - * @returns {undefined} - * @variation 1 - */ - Object.defineProperty(CloudRedisCluster.prototype.getCluster = function getCluster(request, callback) { - return this.rpcCall(getCluster, $root.google.cloud.redis.cluster.v1beta1.GetClusterRequest, $root.google.cloud.redis.cluster.v1beta1.Cluster, request, callback); - }, "name", { value: "GetCluster" }); + /** + * Creates a StateInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.Cluster.StateInfo} StateInfo + */ + StateInfo.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.Cluster.StateInfo) + return object; + var message = new $root.google.cloud.redis.cluster.v1.Cluster.StateInfo(); + if (object.updateInfo != null) { + if (typeof object.updateInfo !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.StateInfo.updateInfo: object expected"); + message.updateInfo = $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo.fromObject(object.updateInfo); + } + return message; + }; - /** - * Calls GetCluster. - * @function getCluster - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @instance - * @param {google.cloud.redis.cluster.v1beta1.IGetClusterRequest} request GetClusterRequest message or plain object - * @returns {Promise} Promise - * @variation 2 - */ + /** + * Creates a plain object from a StateInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo + * @static + * @param {google.cloud.redis.cluster.v1.Cluster.StateInfo} message StateInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + StateInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.updateInfo != null && message.hasOwnProperty("updateInfo")) { + object.updateInfo = $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo.toObject(message.updateInfo, options); + if (options.oneofs) + object.info = "updateInfo"; + } + return object; + }; - /** - * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|updateCluster}. - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @typedef UpdateClusterCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.longrunning.Operation} [response] Operation - */ + /** + * Converts this StateInfo to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo + * @instance + * @returns {Object.} JSON object + */ + StateInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Calls UpdateCluster. - * @function updateCluster - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @instance - * @param {google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest} request UpdateClusterRequest message or plain object - * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.UpdateClusterCallback} callback Node-style callback called with the error, if any, and Operation - * @returns {undefined} - * @variation 1 - */ - Object.defineProperty(CloudRedisCluster.prototype.updateCluster = function updateCluster(request, callback) { - return this.rpcCall(updateCluster, $root.google.cloud.redis.cluster.v1beta1.UpdateClusterRequest, $root.google.longrunning.Operation, request, callback); - }, "name", { value: "UpdateCluster" }); + /** + * Gets the default type url for StateInfo + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + StateInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.Cluster.StateInfo"; + }; - /** - * Calls UpdateCluster. - * @function updateCluster - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @instance - * @param {google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest} request UpdateClusterRequest message or plain object - * @returns {Promise} Promise - * @variation 2 - */ + StateInfo.UpdateInfo = (function() { - /** - * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|deleteCluster}. - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @typedef DeleteClusterCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.longrunning.Operation} [response] Operation - */ + /** + * Properties of an UpdateInfo. + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo + * @interface IUpdateInfo + * @property {number|null} [targetShardCount] UpdateInfo targetShardCount + * @property {number|null} [targetReplicaCount] UpdateInfo targetReplicaCount + */ - /** - * Calls DeleteCluster. - * @function deleteCluster - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @instance - * @param {google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest} request DeleteClusterRequest message or plain object - * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.DeleteClusterCallback} callback Node-style callback called with the error, if any, and Operation - * @returns {undefined} - * @variation 1 - */ - Object.defineProperty(CloudRedisCluster.prototype.deleteCluster = function deleteCluster(request, callback) { - return this.rpcCall(deleteCluster, $root.google.cloud.redis.cluster.v1beta1.DeleteClusterRequest, $root.google.longrunning.Operation, request, callback); - }, "name", { value: "DeleteCluster" }); + /** + * Constructs a new UpdateInfo. + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo + * @classdesc Represents an UpdateInfo. + * @implements IUpdateInfo + * @constructor + * @param {google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo=} [properties] Properties to set + */ + function UpdateInfo(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Calls DeleteCluster. - * @function deleteCluster - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @instance + /** + * UpdateInfo targetShardCount. + * @member {number|null|undefined} targetShardCount + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo + * @instance + */ + UpdateInfo.prototype.targetShardCount = null; + + /** + * UpdateInfo targetReplicaCount. + * @member {number|null|undefined} targetReplicaCount + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo + * @instance + */ + UpdateInfo.prototype.targetReplicaCount = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * UpdateInfo _targetShardCount. + * @member {"targetShardCount"|undefined} _targetShardCount + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo + * @instance + */ + Object.defineProperty(UpdateInfo.prototype, "_targetShardCount", { + get: $util.oneOfGetter($oneOfFields = ["targetShardCount"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * UpdateInfo _targetReplicaCount. + * @member {"targetReplicaCount"|undefined} _targetReplicaCount + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo + * @instance + */ + Object.defineProperty(UpdateInfo.prototype, "_targetReplicaCount", { + get: $util.oneOfGetter($oneOfFields = ["targetReplicaCount"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new UpdateInfo instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo + * @static + * @param {google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo} UpdateInfo instance + */ + UpdateInfo.create = function create(properties) { + return new UpdateInfo(properties); + }; + + /** + * Encodes the specified UpdateInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo + * @static + * @param {google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo} message UpdateInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UpdateInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.targetShardCount != null && Object.hasOwnProperty.call(message, "targetShardCount")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.targetShardCount); + if (message.targetReplicaCount != null && Object.hasOwnProperty.call(message, "targetReplicaCount")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.targetReplicaCount); + return writer; + }; + + /** + * Encodes the specified UpdateInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo + * @static + * @param {google.cloud.redis.cluster.v1.Cluster.StateInfo.IUpdateInfo} message UpdateInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UpdateInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an UpdateInfo message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo} UpdateInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UpdateInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.targetShardCount = reader.int32(); + break; + } + case 2: { + message.targetReplicaCount = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an UpdateInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo} UpdateInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UpdateInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an UpdateInfo message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + UpdateInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.targetShardCount != null && message.hasOwnProperty("targetShardCount")) { + properties._targetShardCount = 1; + if (!$util.isInteger(message.targetShardCount)) + return "targetShardCount: integer expected"; + } + if (message.targetReplicaCount != null && message.hasOwnProperty("targetReplicaCount")) { + properties._targetReplicaCount = 1; + if (!$util.isInteger(message.targetReplicaCount)) + return "targetReplicaCount: integer expected"; + } + return null; + }; + + /** + * Creates an UpdateInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo} UpdateInfo + */ + UpdateInfo.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo) + return object; + var message = new $root.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo(); + if (object.targetShardCount != null) + message.targetShardCount = object.targetShardCount | 0; + if (object.targetReplicaCount != null) + message.targetReplicaCount = object.targetReplicaCount | 0; + return message; + }; + + /** + * Creates a plain object from an UpdateInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo + * @static + * @param {google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo} message UpdateInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + UpdateInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.targetShardCount != null && message.hasOwnProperty("targetShardCount")) { + object.targetShardCount = message.targetShardCount; + if (options.oneofs) + object._targetShardCount = "targetShardCount"; + } + if (message.targetReplicaCount != null && message.hasOwnProperty("targetReplicaCount")) { + object.targetReplicaCount = message.targetReplicaCount; + if (options.oneofs) + object._targetReplicaCount = "targetReplicaCount"; + } + return object; + }; + + /** + * Converts this UpdateInfo to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo + * @instance + * @returns {Object.} JSON object + */ + UpdateInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for UpdateInfo + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + UpdateInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfo"; + }; + + return UpdateInfo; + })(); + + return StateInfo; + })(); + + Cluster.GcsBackupSource = (function() { + + /** + * Properties of a GcsBackupSource. + * @memberof google.cloud.redis.cluster.v1.Cluster + * @interface IGcsBackupSource + * @property {Array.|null} [uris] GcsBackupSource uris + */ + + /** + * Constructs a new GcsBackupSource. + * @memberof google.cloud.redis.cluster.v1.Cluster + * @classdesc Represents a GcsBackupSource. + * @implements IGcsBackupSource + * @constructor + * @param {google.cloud.redis.cluster.v1.Cluster.IGcsBackupSource=} [properties] Properties to set + */ + function GcsBackupSource(properties) { + this.uris = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GcsBackupSource uris. + * @member {Array.} uris + * @memberof google.cloud.redis.cluster.v1.Cluster.GcsBackupSource + * @instance + */ + GcsBackupSource.prototype.uris = $util.emptyArray; + + /** + * Creates a new GcsBackupSource instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.Cluster.GcsBackupSource + * @static + * @param {google.cloud.redis.cluster.v1.Cluster.IGcsBackupSource=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.Cluster.GcsBackupSource} GcsBackupSource instance + */ + GcsBackupSource.create = function create(properties) { + return new GcsBackupSource(properties); + }; + + /** + * Encodes the specified GcsBackupSource message. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.GcsBackupSource.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.Cluster.GcsBackupSource + * @static + * @param {google.cloud.redis.cluster.v1.Cluster.IGcsBackupSource} message GcsBackupSource message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GcsBackupSource.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.uris != null && message.uris.length) + for (var i = 0; i < message.uris.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.uris[i]); + return writer; + }; + + /** + * Encodes the specified GcsBackupSource message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.GcsBackupSource.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.Cluster.GcsBackupSource + * @static + * @param {google.cloud.redis.cluster.v1.Cluster.IGcsBackupSource} message GcsBackupSource message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GcsBackupSource.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GcsBackupSource message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.Cluster.GcsBackupSource + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.Cluster.GcsBackupSource} GcsBackupSource + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GcsBackupSource.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.Cluster.GcsBackupSource(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (!(message.uris && message.uris.length)) + message.uris = []; + message.uris.push(reader.string()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GcsBackupSource message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.Cluster.GcsBackupSource + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.Cluster.GcsBackupSource} GcsBackupSource + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GcsBackupSource.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GcsBackupSource message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.Cluster.GcsBackupSource + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GcsBackupSource.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.uris != null && message.hasOwnProperty("uris")) { + if (!Array.isArray(message.uris)) + return "uris: array expected"; + for (var i = 0; i < message.uris.length; ++i) + if (!$util.isString(message.uris[i])) + return "uris: string[] expected"; + } + return null; + }; + + /** + * Creates a GcsBackupSource message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.Cluster.GcsBackupSource + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.Cluster.GcsBackupSource} GcsBackupSource + */ + GcsBackupSource.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.Cluster.GcsBackupSource) + return object; + var message = new $root.google.cloud.redis.cluster.v1.Cluster.GcsBackupSource(); + if (object.uris) { + if (!Array.isArray(object.uris)) + throw TypeError(".google.cloud.redis.cluster.v1.Cluster.GcsBackupSource.uris: array expected"); + message.uris = []; + for (var i = 0; i < object.uris.length; ++i) + message.uris[i] = String(object.uris[i]); + } + return message; + }; + + /** + * Creates a plain object from a GcsBackupSource message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.Cluster.GcsBackupSource + * @static + * @param {google.cloud.redis.cluster.v1.Cluster.GcsBackupSource} message GcsBackupSource + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GcsBackupSource.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.uris = []; + if (message.uris && message.uris.length) { + object.uris = []; + for (var j = 0; j < message.uris.length; ++j) + object.uris[j] = message.uris[j]; + } + return object; + }; + + /** + * Converts this GcsBackupSource to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.Cluster.GcsBackupSource + * @instance + * @returns {Object.} JSON object + */ + GcsBackupSource.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for GcsBackupSource + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.Cluster.GcsBackupSource + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + GcsBackupSource.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.Cluster.GcsBackupSource"; + }; + + return GcsBackupSource; + })(); + + Cluster.ManagedBackupSource = (function() { + + /** + * Properties of a ManagedBackupSource. + * @memberof google.cloud.redis.cluster.v1.Cluster + * @interface IManagedBackupSource + * @property {string|null} [backup] ManagedBackupSource backup + */ + + /** + * Constructs a new ManagedBackupSource. + * @memberof google.cloud.redis.cluster.v1.Cluster + * @classdesc Represents a ManagedBackupSource. + * @implements IManagedBackupSource + * @constructor + * @param {google.cloud.redis.cluster.v1.Cluster.IManagedBackupSource=} [properties] Properties to set + */ + function ManagedBackupSource(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ManagedBackupSource backup. + * @member {string} backup + * @memberof google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource + * @instance + */ + ManagedBackupSource.prototype.backup = ""; + + /** + * Creates a new ManagedBackupSource instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource + * @static + * @param {google.cloud.redis.cluster.v1.Cluster.IManagedBackupSource=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource} ManagedBackupSource instance + */ + ManagedBackupSource.create = function create(properties) { + return new ManagedBackupSource(properties); + }; + + /** + * Encodes the specified ManagedBackupSource message. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource + * @static + * @param {google.cloud.redis.cluster.v1.Cluster.IManagedBackupSource} message ManagedBackupSource message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ManagedBackupSource.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.backup); + return writer; + }; + + /** + * Encodes the specified ManagedBackupSource message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource + * @static + * @param {google.cloud.redis.cluster.v1.Cluster.IManagedBackupSource} message ManagedBackupSource message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ManagedBackupSource.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ManagedBackupSource message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource} ManagedBackupSource + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ManagedBackupSource.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.backup = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ManagedBackupSource message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource} ManagedBackupSource + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ManagedBackupSource.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ManagedBackupSource message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ManagedBackupSource.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.backup != null && message.hasOwnProperty("backup")) + if (!$util.isString(message.backup)) + return "backup: string expected"; + return null; + }; + + /** + * Creates a ManagedBackupSource message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource} ManagedBackupSource + */ + ManagedBackupSource.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource) + return object; + var message = new $root.google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource(); + if (object.backup != null) + message.backup = String(object.backup); + return message; + }; + + /** + * Creates a plain object from a ManagedBackupSource message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource + * @static + * @param {google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource} message ManagedBackupSource + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ManagedBackupSource.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.backup = ""; + if (message.backup != null && message.hasOwnProperty("backup")) + object.backup = message.backup; + return object; + }; + + /** + * Converts this ManagedBackupSource to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource + * @instance + * @returns {Object.} JSON object + */ + ManagedBackupSource.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ManagedBackupSource + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ManagedBackupSource.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.Cluster.ManagedBackupSource"; + }; + + return ManagedBackupSource; + })(); + + /** + * State enum. + * @name google.cloud.redis.cluster.v1.Cluster.State + * @enum {number} + * @property {number} STATE_UNSPECIFIED=0 STATE_UNSPECIFIED value + * @property {number} CREATING=1 CREATING value + * @property {number} ACTIVE=2 ACTIVE value + * @property {number} UPDATING=3 UPDATING value + * @property {number} DELETING=4 DELETING value + */ + Cluster.State = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "STATE_UNSPECIFIED"] = 0; + values[valuesById[1] = "CREATING"] = 1; + values[valuesById[2] = "ACTIVE"] = 2; + values[valuesById[3] = "UPDATING"] = 3; + values[valuesById[4] = "DELETING"] = 4; + return values; + })(); + + return Cluster; + })(); + + v1.AutomatedBackupConfig = (function() { + + /** + * Properties of an AutomatedBackupConfig. + * @memberof google.cloud.redis.cluster.v1 + * @interface IAutomatedBackupConfig + * @property {google.cloud.redis.cluster.v1.AutomatedBackupConfig.IFixedFrequencySchedule|null} [fixedFrequencySchedule] AutomatedBackupConfig fixedFrequencySchedule + * @property {google.cloud.redis.cluster.v1.AutomatedBackupConfig.AutomatedBackupMode|null} [automatedBackupMode] AutomatedBackupConfig automatedBackupMode + * @property {google.protobuf.IDuration|null} [retention] AutomatedBackupConfig retention + */ + + /** + * Constructs a new AutomatedBackupConfig. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents an AutomatedBackupConfig. + * @implements IAutomatedBackupConfig + * @constructor + * @param {google.cloud.redis.cluster.v1.IAutomatedBackupConfig=} [properties] Properties to set + */ + function AutomatedBackupConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * AutomatedBackupConfig fixedFrequencySchedule. + * @member {google.cloud.redis.cluster.v1.AutomatedBackupConfig.IFixedFrequencySchedule|null|undefined} fixedFrequencySchedule + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig + * @instance + */ + AutomatedBackupConfig.prototype.fixedFrequencySchedule = null; + + /** + * AutomatedBackupConfig automatedBackupMode. + * @member {google.cloud.redis.cluster.v1.AutomatedBackupConfig.AutomatedBackupMode} automatedBackupMode + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig + * @instance + */ + AutomatedBackupConfig.prototype.automatedBackupMode = 0; + + /** + * AutomatedBackupConfig retention. + * @member {google.protobuf.IDuration|null|undefined} retention + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig + * @instance + */ + AutomatedBackupConfig.prototype.retention = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * AutomatedBackupConfig schedule. + * @member {"fixedFrequencySchedule"|undefined} schedule + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig + * @instance + */ + Object.defineProperty(AutomatedBackupConfig.prototype, "schedule", { + get: $util.oneOfGetter($oneOfFields = ["fixedFrequencySchedule"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * AutomatedBackupConfig _retention. + * @member {"retention"|undefined} _retention + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig + * @instance + */ + Object.defineProperty(AutomatedBackupConfig.prototype, "_retention", { + get: $util.oneOfGetter($oneOfFields = ["retention"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new AutomatedBackupConfig instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig + * @static + * @param {google.cloud.redis.cluster.v1.IAutomatedBackupConfig=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.AutomatedBackupConfig} AutomatedBackupConfig instance + */ + AutomatedBackupConfig.create = function create(properties) { + return new AutomatedBackupConfig(properties); + }; + + /** + * Encodes the specified AutomatedBackupConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.AutomatedBackupConfig.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig + * @static + * @param {google.cloud.redis.cluster.v1.IAutomatedBackupConfig} message AutomatedBackupConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + AutomatedBackupConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.automatedBackupMode != null && Object.hasOwnProperty.call(message, "automatedBackupMode")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.automatedBackupMode); + if (message.fixedFrequencySchedule != null && Object.hasOwnProperty.call(message, "fixedFrequencySchedule")) + $root.google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule.encode(message.fixedFrequencySchedule, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.retention != null && Object.hasOwnProperty.call(message, "retention")) + $root.google.protobuf.Duration.encode(message.retention, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified AutomatedBackupConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.AutomatedBackupConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig + * @static + * @param {google.cloud.redis.cluster.v1.IAutomatedBackupConfig} message AutomatedBackupConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + AutomatedBackupConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an AutomatedBackupConfig message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.AutomatedBackupConfig} AutomatedBackupConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + AutomatedBackupConfig.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.AutomatedBackupConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 2: { + message.fixedFrequencySchedule = $root.google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule.decode(reader, reader.uint32()); + break; + } + case 1: { + message.automatedBackupMode = reader.int32(); + break; + } + case 3: { + message.retention = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an AutomatedBackupConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.AutomatedBackupConfig} AutomatedBackupConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + AutomatedBackupConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an AutomatedBackupConfig message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + AutomatedBackupConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.fixedFrequencySchedule != null && message.hasOwnProperty("fixedFrequencySchedule")) { + properties.schedule = 1; + { + var error = $root.google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule.verify(message.fixedFrequencySchedule); + if (error) + return "fixedFrequencySchedule." + error; + } + } + if (message.automatedBackupMode != null && message.hasOwnProperty("automatedBackupMode")) + switch (message.automatedBackupMode) { + default: + return "automatedBackupMode: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.retention != null && message.hasOwnProperty("retention")) { + properties._retention = 1; + { + var error = $root.google.protobuf.Duration.verify(message.retention); + if (error) + return "retention." + error; + } + } + return null; + }; + + /** + * Creates an AutomatedBackupConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.AutomatedBackupConfig} AutomatedBackupConfig + */ + AutomatedBackupConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.AutomatedBackupConfig) + return object; + var message = new $root.google.cloud.redis.cluster.v1.AutomatedBackupConfig(); + if (object.fixedFrequencySchedule != null) { + if (typeof object.fixedFrequencySchedule !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.AutomatedBackupConfig.fixedFrequencySchedule: object expected"); + message.fixedFrequencySchedule = $root.google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule.fromObject(object.fixedFrequencySchedule); + } + switch (object.automatedBackupMode) { + default: + if (typeof object.automatedBackupMode === "number") { + message.automatedBackupMode = object.automatedBackupMode; + break; + } + break; + case "AUTOMATED_BACKUP_MODE_UNSPECIFIED": + case 0: + message.automatedBackupMode = 0; + break; + case "DISABLED": + case 1: + message.automatedBackupMode = 1; + break; + case "ENABLED": + case 2: + message.automatedBackupMode = 2; + break; + } + if (object.retention != null) { + if (typeof object.retention !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.AutomatedBackupConfig.retention: object expected"); + message.retention = $root.google.protobuf.Duration.fromObject(object.retention); + } + return message; + }; + + /** + * Creates a plain object from an AutomatedBackupConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig + * @static + * @param {google.cloud.redis.cluster.v1.AutomatedBackupConfig} message AutomatedBackupConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + AutomatedBackupConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.automatedBackupMode = options.enums === String ? "AUTOMATED_BACKUP_MODE_UNSPECIFIED" : 0; + if (message.automatedBackupMode != null && message.hasOwnProperty("automatedBackupMode")) + object.automatedBackupMode = options.enums === String ? $root.google.cloud.redis.cluster.v1.AutomatedBackupConfig.AutomatedBackupMode[message.automatedBackupMode] === undefined ? message.automatedBackupMode : $root.google.cloud.redis.cluster.v1.AutomatedBackupConfig.AutomatedBackupMode[message.automatedBackupMode] : message.automatedBackupMode; + if (message.fixedFrequencySchedule != null && message.hasOwnProperty("fixedFrequencySchedule")) { + object.fixedFrequencySchedule = $root.google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule.toObject(message.fixedFrequencySchedule, options); + if (options.oneofs) + object.schedule = "fixedFrequencySchedule"; + } + if (message.retention != null && message.hasOwnProperty("retention")) { + object.retention = $root.google.protobuf.Duration.toObject(message.retention, options); + if (options.oneofs) + object._retention = "retention"; + } + return object; + }; + + /** + * Converts this AutomatedBackupConfig to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig + * @instance + * @returns {Object.} JSON object + */ + AutomatedBackupConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for AutomatedBackupConfig + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + AutomatedBackupConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.AutomatedBackupConfig"; + }; + + AutomatedBackupConfig.FixedFrequencySchedule = (function() { + + /** + * Properties of a FixedFrequencySchedule. + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig + * @interface IFixedFrequencySchedule + * @property {google.type.ITimeOfDay|null} [startTime] FixedFrequencySchedule startTime + */ + + /** + * Constructs a new FixedFrequencySchedule. + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig + * @classdesc Represents a FixedFrequencySchedule. + * @implements IFixedFrequencySchedule + * @constructor + * @param {google.cloud.redis.cluster.v1.AutomatedBackupConfig.IFixedFrequencySchedule=} [properties] Properties to set + */ + function FixedFrequencySchedule(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * FixedFrequencySchedule startTime. + * @member {google.type.ITimeOfDay|null|undefined} startTime + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule + * @instance + */ + FixedFrequencySchedule.prototype.startTime = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * FixedFrequencySchedule _startTime. + * @member {"startTime"|undefined} _startTime + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule + * @instance + */ + Object.defineProperty(FixedFrequencySchedule.prototype, "_startTime", { + get: $util.oneOfGetter($oneOfFields = ["startTime"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new FixedFrequencySchedule instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule + * @static + * @param {google.cloud.redis.cluster.v1.AutomatedBackupConfig.IFixedFrequencySchedule=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule} FixedFrequencySchedule instance + */ + FixedFrequencySchedule.create = function create(properties) { + return new FixedFrequencySchedule(properties); + }; + + /** + * Encodes the specified FixedFrequencySchedule message. Does not implicitly {@link google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule + * @static + * @param {google.cloud.redis.cluster.v1.AutomatedBackupConfig.IFixedFrequencySchedule} message FixedFrequencySchedule message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FixedFrequencySchedule.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) + $root.google.type.TimeOfDay.encode(message.startTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified FixedFrequencySchedule message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule + * @static + * @param {google.cloud.redis.cluster.v1.AutomatedBackupConfig.IFixedFrequencySchedule} message FixedFrequencySchedule message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FixedFrequencySchedule.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FixedFrequencySchedule message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule} FixedFrequencySchedule + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FixedFrequencySchedule.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 2: { + message.startTime = $root.google.type.TimeOfDay.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a FixedFrequencySchedule message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule} FixedFrequencySchedule + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FixedFrequencySchedule.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FixedFrequencySchedule message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FixedFrequencySchedule.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.startTime != null && message.hasOwnProperty("startTime")) { + properties._startTime = 1; + { + var error = $root.google.type.TimeOfDay.verify(message.startTime); + if (error) + return "startTime." + error; + } + } + return null; + }; + + /** + * Creates a FixedFrequencySchedule message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule} FixedFrequencySchedule + */ + FixedFrequencySchedule.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule) + return object; + var message = new $root.google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule(); + if (object.startTime != null) { + if (typeof object.startTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule.startTime: object expected"); + message.startTime = $root.google.type.TimeOfDay.fromObject(object.startTime); + } + return message; + }; + + /** + * Creates a plain object from a FixedFrequencySchedule message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule + * @static + * @param {google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule} message FixedFrequencySchedule + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FixedFrequencySchedule.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.startTime != null && message.hasOwnProperty("startTime")) { + object.startTime = $root.google.type.TimeOfDay.toObject(message.startTime, options); + if (options.oneofs) + object._startTime = "startTime"; + } + return object; + }; + + /** + * Converts this FixedFrequencySchedule to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule + * @instance + * @returns {Object.} JSON object + */ + FixedFrequencySchedule.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for FixedFrequencySchedule + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + FixedFrequencySchedule.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencySchedule"; + }; + + return FixedFrequencySchedule; + })(); + + /** + * AutomatedBackupMode enum. + * @name google.cloud.redis.cluster.v1.AutomatedBackupConfig.AutomatedBackupMode + * @enum {number} + * @property {number} AUTOMATED_BACKUP_MODE_UNSPECIFIED=0 AUTOMATED_BACKUP_MODE_UNSPECIFIED value + * @property {number} DISABLED=1 DISABLED value + * @property {number} ENABLED=2 ENABLED value + */ + AutomatedBackupConfig.AutomatedBackupMode = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "AUTOMATED_BACKUP_MODE_UNSPECIFIED"] = 0; + values[valuesById[1] = "DISABLED"] = 1; + values[valuesById[2] = "ENABLED"] = 2; + return values; + })(); + + return AutomatedBackupConfig; + })(); + + v1.BackupCollection = (function() { + + /** + * Properties of a BackupCollection. + * @memberof google.cloud.redis.cluster.v1 + * @interface IBackupCollection + * @property {string|null} [name] BackupCollection name + * @property {string|null} [clusterUid] BackupCollection clusterUid + * @property {string|null} [cluster] BackupCollection cluster + * @property {string|null} [kmsKey] BackupCollection kmsKey + * @property {string|null} [uid] BackupCollection uid + */ + + /** + * Constructs a new BackupCollection. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a BackupCollection. + * @implements IBackupCollection + * @constructor + * @param {google.cloud.redis.cluster.v1.IBackupCollection=} [properties] Properties to set + */ + function BackupCollection(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BackupCollection name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1.BackupCollection + * @instance + */ + BackupCollection.prototype.name = ""; + + /** + * BackupCollection clusterUid. + * @member {string} clusterUid + * @memberof google.cloud.redis.cluster.v1.BackupCollection + * @instance + */ + BackupCollection.prototype.clusterUid = ""; + + /** + * BackupCollection cluster. + * @member {string} cluster + * @memberof google.cloud.redis.cluster.v1.BackupCollection + * @instance + */ + BackupCollection.prototype.cluster = ""; + + /** + * BackupCollection kmsKey. + * @member {string} kmsKey + * @memberof google.cloud.redis.cluster.v1.BackupCollection + * @instance + */ + BackupCollection.prototype.kmsKey = ""; + + /** + * BackupCollection uid. + * @member {string} uid + * @memberof google.cloud.redis.cluster.v1.BackupCollection + * @instance + */ + BackupCollection.prototype.uid = ""; + + /** + * Creates a new BackupCollection instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.BackupCollection + * @static + * @param {google.cloud.redis.cluster.v1.IBackupCollection=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.BackupCollection} BackupCollection instance + */ + BackupCollection.create = function create(properties) { + return new BackupCollection(properties); + }; + + /** + * Encodes the specified BackupCollection message. Does not implicitly {@link google.cloud.redis.cluster.v1.BackupCollection.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.BackupCollection + * @static + * @param {google.cloud.redis.cluster.v1.IBackupCollection} message BackupCollection message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BackupCollection.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.clusterUid != null && Object.hasOwnProperty.call(message, "clusterUid")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.clusterUid); + if (message.cluster != null && Object.hasOwnProperty.call(message, "cluster")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.cluster); + if (message.kmsKey != null && Object.hasOwnProperty.call(message, "kmsKey")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.kmsKey); + if (message.uid != null && Object.hasOwnProperty.call(message, "uid")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.uid); + return writer; + }; + + /** + * Encodes the specified BackupCollection message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.BackupCollection.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.BackupCollection + * @static + * @param {google.cloud.redis.cluster.v1.IBackupCollection} message BackupCollection message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BackupCollection.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BackupCollection message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.BackupCollection + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.BackupCollection} BackupCollection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BackupCollection.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.BackupCollection(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.name = reader.string(); + break; + } + case 3: { + message.clusterUid = reader.string(); + break; + } + case 4: { + message.cluster = reader.string(); + break; + } + case 5: { + message.kmsKey = reader.string(); + break; + } + case 6: { + message.uid = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BackupCollection message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.BackupCollection + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.BackupCollection} BackupCollection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BackupCollection.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BackupCollection message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.BackupCollection + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BackupCollection.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.clusterUid != null && message.hasOwnProperty("clusterUid")) + if (!$util.isString(message.clusterUid)) + return "clusterUid: string expected"; + if (message.cluster != null && message.hasOwnProperty("cluster")) + if (!$util.isString(message.cluster)) + return "cluster: string expected"; + if (message.kmsKey != null && message.hasOwnProperty("kmsKey")) + if (!$util.isString(message.kmsKey)) + return "kmsKey: string expected"; + if (message.uid != null && message.hasOwnProperty("uid")) + if (!$util.isString(message.uid)) + return "uid: string expected"; + return null; + }; + + /** + * Creates a BackupCollection message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.BackupCollection + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.BackupCollection} BackupCollection + */ + BackupCollection.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.BackupCollection) + return object; + var message = new $root.google.cloud.redis.cluster.v1.BackupCollection(); + if (object.name != null) + message.name = String(object.name); + if (object.clusterUid != null) + message.clusterUid = String(object.clusterUid); + if (object.cluster != null) + message.cluster = String(object.cluster); + if (object.kmsKey != null) + message.kmsKey = String(object.kmsKey); + if (object.uid != null) + message.uid = String(object.uid); + return message; + }; + + /** + * Creates a plain object from a BackupCollection message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.BackupCollection + * @static + * @param {google.cloud.redis.cluster.v1.BackupCollection} message BackupCollection + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BackupCollection.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.clusterUid = ""; + object.cluster = ""; + object.kmsKey = ""; + object.uid = ""; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.clusterUid != null && message.hasOwnProperty("clusterUid")) + object.clusterUid = message.clusterUid; + if (message.cluster != null && message.hasOwnProperty("cluster")) + object.cluster = message.cluster; + if (message.kmsKey != null && message.hasOwnProperty("kmsKey")) + object.kmsKey = message.kmsKey; + if (message.uid != null && message.hasOwnProperty("uid")) + object.uid = message.uid; + return object; + }; + + /** + * Converts this BackupCollection to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.BackupCollection + * @instance + * @returns {Object.} JSON object + */ + BackupCollection.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for BackupCollection + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.BackupCollection + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + BackupCollection.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.BackupCollection"; + }; + + return BackupCollection; + })(); + + v1.Backup = (function() { + + /** + * Properties of a Backup. + * @memberof google.cloud.redis.cluster.v1 + * @interface IBackup + * @property {string|null} [name] Backup name + * @property {google.protobuf.ITimestamp|null} [createTime] Backup createTime + * @property {string|null} [cluster] Backup cluster + * @property {string|null} [clusterUid] Backup clusterUid + * @property {number|Long|null} [totalSizeBytes] Backup totalSizeBytes + * @property {google.protobuf.ITimestamp|null} [expireTime] Backup expireTime + * @property {string|null} [engineVersion] Backup engineVersion + * @property {Array.|null} [backupFiles] Backup backupFiles + * @property {google.cloud.redis.cluster.v1.NodeType|null} [nodeType] Backup nodeType + * @property {number|null} [replicaCount] Backup replicaCount + * @property {number|null} [shardCount] Backup shardCount + * @property {google.cloud.redis.cluster.v1.Backup.BackupType|null} [backupType] Backup backupType + * @property {google.cloud.redis.cluster.v1.Backup.State|null} [state] Backup state + * @property {google.cloud.redis.cluster.v1.IEncryptionInfo|null} [encryptionInfo] Backup encryptionInfo + * @property {string|null} [uid] Backup uid + */ + + /** + * Constructs a new Backup. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a Backup. + * @implements IBackup + * @constructor + * @param {google.cloud.redis.cluster.v1.IBackup=} [properties] Properties to set + */ + function Backup(properties) { + this.backupFiles = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Backup name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1.Backup + * @instance + */ + Backup.prototype.name = ""; + + /** + * Backup createTime. + * @member {google.protobuf.ITimestamp|null|undefined} createTime + * @memberof google.cloud.redis.cluster.v1.Backup + * @instance + */ + Backup.prototype.createTime = null; + + /** + * Backup cluster. + * @member {string} cluster + * @memberof google.cloud.redis.cluster.v1.Backup + * @instance + */ + Backup.prototype.cluster = ""; + + /** + * Backup clusterUid. + * @member {string} clusterUid + * @memberof google.cloud.redis.cluster.v1.Backup + * @instance + */ + Backup.prototype.clusterUid = ""; + + /** + * Backup totalSizeBytes. + * @member {number|Long} totalSizeBytes + * @memberof google.cloud.redis.cluster.v1.Backup + * @instance + */ + Backup.prototype.totalSizeBytes = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * Backup expireTime. + * @member {google.protobuf.ITimestamp|null|undefined} expireTime + * @memberof google.cloud.redis.cluster.v1.Backup + * @instance + */ + Backup.prototype.expireTime = null; + + /** + * Backup engineVersion. + * @member {string} engineVersion + * @memberof google.cloud.redis.cluster.v1.Backup + * @instance + */ + Backup.prototype.engineVersion = ""; + + /** + * Backup backupFiles. + * @member {Array.} backupFiles + * @memberof google.cloud.redis.cluster.v1.Backup + * @instance + */ + Backup.prototype.backupFiles = $util.emptyArray; + + /** + * Backup nodeType. + * @member {google.cloud.redis.cluster.v1.NodeType} nodeType + * @memberof google.cloud.redis.cluster.v1.Backup + * @instance + */ + Backup.prototype.nodeType = 0; + + /** + * Backup replicaCount. + * @member {number} replicaCount + * @memberof google.cloud.redis.cluster.v1.Backup + * @instance + */ + Backup.prototype.replicaCount = 0; + + /** + * Backup shardCount. + * @member {number} shardCount + * @memberof google.cloud.redis.cluster.v1.Backup + * @instance + */ + Backup.prototype.shardCount = 0; + + /** + * Backup backupType. + * @member {google.cloud.redis.cluster.v1.Backup.BackupType} backupType + * @memberof google.cloud.redis.cluster.v1.Backup + * @instance + */ + Backup.prototype.backupType = 0; + + /** + * Backup state. + * @member {google.cloud.redis.cluster.v1.Backup.State} state + * @memberof google.cloud.redis.cluster.v1.Backup + * @instance + */ + Backup.prototype.state = 0; + + /** + * Backup encryptionInfo. + * @member {google.cloud.redis.cluster.v1.IEncryptionInfo|null|undefined} encryptionInfo + * @memberof google.cloud.redis.cluster.v1.Backup + * @instance + */ + Backup.prototype.encryptionInfo = null; + + /** + * Backup uid. + * @member {string} uid + * @memberof google.cloud.redis.cluster.v1.Backup + * @instance + */ + Backup.prototype.uid = ""; + + /** + * Creates a new Backup instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.Backup + * @static + * @param {google.cloud.redis.cluster.v1.IBackup=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.Backup} Backup instance + */ + Backup.create = function create(properties) { + return new Backup(properties); + }; + + /** + * Encodes the specified Backup message. Does not implicitly {@link google.cloud.redis.cluster.v1.Backup.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.Backup + * @static + * @param {google.cloud.redis.cluster.v1.IBackup} message Backup message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Backup.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) + $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.cluster != null && Object.hasOwnProperty.call(message, "cluster")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.cluster); + if (message.clusterUid != null && Object.hasOwnProperty.call(message, "clusterUid")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.clusterUid); + if (message.totalSizeBytes != null && Object.hasOwnProperty.call(message, "totalSizeBytes")) + writer.uint32(/* id 5, wireType 0 =*/40).int64(message.totalSizeBytes); + if (message.expireTime != null && Object.hasOwnProperty.call(message, "expireTime")) + $root.google.protobuf.Timestamp.encode(message.expireTime, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.engineVersion != null && Object.hasOwnProperty.call(message, "engineVersion")) + writer.uint32(/* id 7, wireType 2 =*/58).string(message.engineVersion); + if (message.backupFiles != null && message.backupFiles.length) + for (var i = 0; i < message.backupFiles.length; ++i) + $root.google.cloud.redis.cluster.v1.BackupFile.encode(message.backupFiles[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.nodeType != null && Object.hasOwnProperty.call(message, "nodeType")) + writer.uint32(/* id 9, wireType 0 =*/72).int32(message.nodeType); + if (message.replicaCount != null && Object.hasOwnProperty.call(message, "replicaCount")) + writer.uint32(/* id 10, wireType 0 =*/80).int32(message.replicaCount); + if (message.shardCount != null && Object.hasOwnProperty.call(message, "shardCount")) + writer.uint32(/* id 11, wireType 0 =*/88).int32(message.shardCount); + if (message.backupType != null && Object.hasOwnProperty.call(message, "backupType")) + writer.uint32(/* id 12, wireType 0 =*/96).int32(message.backupType); + if (message.state != null && Object.hasOwnProperty.call(message, "state")) + writer.uint32(/* id 13, wireType 0 =*/104).int32(message.state); + if (message.encryptionInfo != null && Object.hasOwnProperty.call(message, "encryptionInfo")) + $root.google.cloud.redis.cluster.v1.EncryptionInfo.encode(message.encryptionInfo, writer.uint32(/* id 14, wireType 2 =*/114).fork()).ldelim(); + if (message.uid != null && Object.hasOwnProperty.call(message, "uid")) + writer.uint32(/* id 15, wireType 2 =*/122).string(message.uid); + return writer; + }; + + /** + * Encodes the specified Backup message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.Backup.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.Backup + * @static + * @param {google.cloud.redis.cluster.v1.IBackup} message Backup message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Backup.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Backup message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.Backup + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.Backup} Backup + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Backup.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.Backup(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.name = reader.string(); + break; + } + case 2: { + message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 3: { + message.cluster = reader.string(); + break; + } + case 4: { + message.clusterUid = reader.string(); + break; + } + case 5: { + message.totalSizeBytes = reader.int64(); + break; + } + case 6: { + message.expireTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 7: { + message.engineVersion = reader.string(); + break; + } + case 8: { + if (!(message.backupFiles && message.backupFiles.length)) + message.backupFiles = []; + message.backupFiles.push($root.google.cloud.redis.cluster.v1.BackupFile.decode(reader, reader.uint32())); + break; + } + case 9: { + message.nodeType = reader.int32(); + break; + } + case 10: { + message.replicaCount = reader.int32(); + break; + } + case 11: { + message.shardCount = reader.int32(); + break; + } + case 12: { + message.backupType = reader.int32(); + break; + } + case 13: { + message.state = reader.int32(); + break; + } + case 14: { + message.encryptionInfo = $root.google.cloud.redis.cluster.v1.EncryptionInfo.decode(reader, reader.uint32()); + break; + } + case 15: { + message.uid = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Backup message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.Backup + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.Backup} Backup + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Backup.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Backup message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.Backup + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Backup.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.createTime != null && message.hasOwnProperty("createTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.createTime); + if (error) + return "createTime." + error; + } + if (message.cluster != null && message.hasOwnProperty("cluster")) + if (!$util.isString(message.cluster)) + return "cluster: string expected"; + if (message.clusterUid != null && message.hasOwnProperty("clusterUid")) + if (!$util.isString(message.clusterUid)) + return "clusterUid: string expected"; + if (message.totalSizeBytes != null && message.hasOwnProperty("totalSizeBytes")) + if (!$util.isInteger(message.totalSizeBytes) && !(message.totalSizeBytes && $util.isInteger(message.totalSizeBytes.low) && $util.isInteger(message.totalSizeBytes.high))) + return "totalSizeBytes: integer|Long expected"; + if (message.expireTime != null && message.hasOwnProperty("expireTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.expireTime); + if (error) + return "expireTime." + error; + } + if (message.engineVersion != null && message.hasOwnProperty("engineVersion")) + if (!$util.isString(message.engineVersion)) + return "engineVersion: string expected"; + if (message.backupFiles != null && message.hasOwnProperty("backupFiles")) { + if (!Array.isArray(message.backupFiles)) + return "backupFiles: array expected"; + for (var i = 0; i < message.backupFiles.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1.BackupFile.verify(message.backupFiles[i]); + if (error) + return "backupFiles." + error; + } + } + if (message.nodeType != null && message.hasOwnProperty("nodeType")) + switch (message.nodeType) { + default: + return "nodeType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + break; + } + if (message.replicaCount != null && message.hasOwnProperty("replicaCount")) + if (!$util.isInteger(message.replicaCount)) + return "replicaCount: integer expected"; + if (message.shardCount != null && message.hasOwnProperty("shardCount")) + if (!$util.isInteger(message.shardCount)) + return "shardCount: integer expected"; + if (message.backupType != null && message.hasOwnProperty("backupType")) + switch (message.backupType) { + default: + return "backupType: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.state != null && message.hasOwnProperty("state")) + switch (message.state) { + default: + return "state: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + break; + } + if (message.encryptionInfo != null && message.hasOwnProperty("encryptionInfo")) { + var error = $root.google.cloud.redis.cluster.v1.EncryptionInfo.verify(message.encryptionInfo); + if (error) + return "encryptionInfo." + error; + } + if (message.uid != null && message.hasOwnProperty("uid")) + if (!$util.isString(message.uid)) + return "uid: string expected"; + return null; + }; + + /** + * Creates a Backup message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.Backup + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.Backup} Backup + */ + Backup.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.Backup) + return object; + var message = new $root.google.cloud.redis.cluster.v1.Backup(); + if (object.name != null) + message.name = String(object.name); + if (object.createTime != null) { + if (typeof object.createTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Backup.createTime: object expected"); + message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime); + } + if (object.cluster != null) + message.cluster = String(object.cluster); + if (object.clusterUid != null) + message.clusterUid = String(object.clusterUid); + if (object.totalSizeBytes != null) + if ($util.Long) + (message.totalSizeBytes = $util.Long.fromValue(object.totalSizeBytes)).unsigned = false; + else if (typeof object.totalSizeBytes === "string") + message.totalSizeBytes = parseInt(object.totalSizeBytes, 10); + else if (typeof object.totalSizeBytes === "number") + message.totalSizeBytes = object.totalSizeBytes; + else if (typeof object.totalSizeBytes === "object") + message.totalSizeBytes = new $util.LongBits(object.totalSizeBytes.low >>> 0, object.totalSizeBytes.high >>> 0).toNumber(); + if (object.expireTime != null) { + if (typeof object.expireTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Backup.expireTime: object expected"); + message.expireTime = $root.google.protobuf.Timestamp.fromObject(object.expireTime); + } + if (object.engineVersion != null) + message.engineVersion = String(object.engineVersion); + if (object.backupFiles) { + if (!Array.isArray(object.backupFiles)) + throw TypeError(".google.cloud.redis.cluster.v1.Backup.backupFiles: array expected"); + message.backupFiles = []; + for (var i = 0; i < object.backupFiles.length; ++i) { + if (typeof object.backupFiles[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Backup.backupFiles: object expected"); + message.backupFiles[i] = $root.google.cloud.redis.cluster.v1.BackupFile.fromObject(object.backupFiles[i]); + } + } + switch (object.nodeType) { + default: + if (typeof object.nodeType === "number") { + message.nodeType = object.nodeType; + break; + } + break; + case "NODE_TYPE_UNSPECIFIED": + case 0: + message.nodeType = 0; + break; + case "REDIS_SHARED_CORE_NANO": + case 1: + message.nodeType = 1; + break; + case "REDIS_HIGHMEM_MEDIUM": + case 2: + message.nodeType = 2; + break; + case "REDIS_HIGHMEM_XLARGE": + case 3: + message.nodeType = 3; + break; + case "REDIS_STANDARD_SMALL": + case 4: + message.nodeType = 4; + break; + } + if (object.replicaCount != null) + message.replicaCount = object.replicaCount | 0; + if (object.shardCount != null) + message.shardCount = object.shardCount | 0; + switch (object.backupType) { + default: + if (typeof object.backupType === "number") { + message.backupType = object.backupType; + break; + } + break; + case "BACKUP_TYPE_UNSPECIFIED": + case 0: + message.backupType = 0; + break; + case "ON_DEMAND": + case 1: + message.backupType = 1; + break; + case "AUTOMATED": + case 2: + message.backupType = 2; + break; + } + switch (object.state) { + default: + if (typeof object.state === "number") { + message.state = object.state; + break; + } + break; + case "STATE_UNSPECIFIED": + case 0: + message.state = 0; + break; + case "CREATING": + case 1: + message.state = 1; + break; + case "ACTIVE": + case 2: + message.state = 2; + break; + case "DELETING": + case 3: + message.state = 3; + break; + case "SUSPENDED": + case 4: + message.state = 4; + break; + } + if (object.encryptionInfo != null) { + if (typeof object.encryptionInfo !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.Backup.encryptionInfo: object expected"); + message.encryptionInfo = $root.google.cloud.redis.cluster.v1.EncryptionInfo.fromObject(object.encryptionInfo); + } + if (object.uid != null) + message.uid = String(object.uid); + return message; + }; + + /** + * Creates a plain object from a Backup message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.Backup + * @static + * @param {google.cloud.redis.cluster.v1.Backup} message Backup + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Backup.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.backupFiles = []; + if (options.defaults) { + object.name = ""; + object.createTime = null; + object.cluster = ""; + object.clusterUid = ""; + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.totalSizeBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.totalSizeBytes = options.longs === String ? "0" : 0; + object.expireTime = null; + object.engineVersion = ""; + object.nodeType = options.enums === String ? "NODE_TYPE_UNSPECIFIED" : 0; + object.replicaCount = 0; + object.shardCount = 0; + object.backupType = options.enums === String ? "BACKUP_TYPE_UNSPECIFIED" : 0; + object.state = options.enums === String ? "STATE_UNSPECIFIED" : 0; + object.encryptionInfo = null; + object.uid = ""; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.createTime != null && message.hasOwnProperty("createTime")) + object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options); + if (message.cluster != null && message.hasOwnProperty("cluster")) + object.cluster = message.cluster; + if (message.clusterUid != null && message.hasOwnProperty("clusterUid")) + object.clusterUid = message.clusterUid; + if (message.totalSizeBytes != null && message.hasOwnProperty("totalSizeBytes")) + if (typeof message.totalSizeBytes === "number") + object.totalSizeBytes = options.longs === String ? String(message.totalSizeBytes) : message.totalSizeBytes; + else + object.totalSizeBytes = options.longs === String ? $util.Long.prototype.toString.call(message.totalSizeBytes) : options.longs === Number ? new $util.LongBits(message.totalSizeBytes.low >>> 0, message.totalSizeBytes.high >>> 0).toNumber() : message.totalSizeBytes; + if (message.expireTime != null && message.hasOwnProperty("expireTime")) + object.expireTime = $root.google.protobuf.Timestamp.toObject(message.expireTime, options); + if (message.engineVersion != null && message.hasOwnProperty("engineVersion")) + object.engineVersion = message.engineVersion; + if (message.backupFiles && message.backupFiles.length) { + object.backupFiles = []; + for (var j = 0; j < message.backupFiles.length; ++j) + object.backupFiles[j] = $root.google.cloud.redis.cluster.v1.BackupFile.toObject(message.backupFiles[j], options); + } + if (message.nodeType != null && message.hasOwnProperty("nodeType")) + object.nodeType = options.enums === String ? $root.google.cloud.redis.cluster.v1.NodeType[message.nodeType] === undefined ? message.nodeType : $root.google.cloud.redis.cluster.v1.NodeType[message.nodeType] : message.nodeType; + if (message.replicaCount != null && message.hasOwnProperty("replicaCount")) + object.replicaCount = message.replicaCount; + if (message.shardCount != null && message.hasOwnProperty("shardCount")) + object.shardCount = message.shardCount; + if (message.backupType != null && message.hasOwnProperty("backupType")) + object.backupType = options.enums === String ? $root.google.cloud.redis.cluster.v1.Backup.BackupType[message.backupType] === undefined ? message.backupType : $root.google.cloud.redis.cluster.v1.Backup.BackupType[message.backupType] : message.backupType; + if (message.state != null && message.hasOwnProperty("state")) + object.state = options.enums === String ? $root.google.cloud.redis.cluster.v1.Backup.State[message.state] === undefined ? message.state : $root.google.cloud.redis.cluster.v1.Backup.State[message.state] : message.state; + if (message.encryptionInfo != null && message.hasOwnProperty("encryptionInfo")) + object.encryptionInfo = $root.google.cloud.redis.cluster.v1.EncryptionInfo.toObject(message.encryptionInfo, options); + if (message.uid != null && message.hasOwnProperty("uid")) + object.uid = message.uid; + return object; + }; + + /** + * Converts this Backup to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.Backup + * @instance + * @returns {Object.} JSON object + */ + Backup.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Backup + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.Backup + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Backup.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.Backup"; + }; + + /** + * BackupType enum. + * @name google.cloud.redis.cluster.v1.Backup.BackupType + * @enum {number} + * @property {number} BACKUP_TYPE_UNSPECIFIED=0 BACKUP_TYPE_UNSPECIFIED value + * @property {number} ON_DEMAND=1 ON_DEMAND value + * @property {number} AUTOMATED=2 AUTOMATED value + */ + Backup.BackupType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "BACKUP_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "ON_DEMAND"] = 1; + values[valuesById[2] = "AUTOMATED"] = 2; + return values; + })(); + + /** + * State enum. + * @name google.cloud.redis.cluster.v1.Backup.State + * @enum {number} + * @property {number} STATE_UNSPECIFIED=0 STATE_UNSPECIFIED value + * @property {number} CREATING=1 CREATING value + * @property {number} ACTIVE=2 ACTIVE value + * @property {number} DELETING=3 DELETING value + * @property {number} SUSPENDED=4 SUSPENDED value + */ + Backup.State = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "STATE_UNSPECIFIED"] = 0; + values[valuesById[1] = "CREATING"] = 1; + values[valuesById[2] = "ACTIVE"] = 2; + values[valuesById[3] = "DELETING"] = 3; + values[valuesById[4] = "SUSPENDED"] = 4; + return values; + })(); + + return Backup; + })(); + + v1.BackupFile = (function() { + + /** + * Properties of a BackupFile. + * @memberof google.cloud.redis.cluster.v1 + * @interface IBackupFile + * @property {string|null} [fileName] BackupFile fileName + * @property {number|Long|null} [sizeBytes] BackupFile sizeBytes + * @property {google.protobuf.ITimestamp|null} [createTime] BackupFile createTime + */ + + /** + * Constructs a new BackupFile. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a BackupFile. + * @implements IBackupFile + * @constructor + * @param {google.cloud.redis.cluster.v1.IBackupFile=} [properties] Properties to set + */ + function BackupFile(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BackupFile fileName. + * @member {string} fileName + * @memberof google.cloud.redis.cluster.v1.BackupFile + * @instance + */ + BackupFile.prototype.fileName = ""; + + /** + * BackupFile sizeBytes. + * @member {number|Long} sizeBytes + * @memberof google.cloud.redis.cluster.v1.BackupFile + * @instance + */ + BackupFile.prototype.sizeBytes = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * BackupFile createTime. + * @member {google.protobuf.ITimestamp|null|undefined} createTime + * @memberof google.cloud.redis.cluster.v1.BackupFile + * @instance + */ + BackupFile.prototype.createTime = null; + + /** + * Creates a new BackupFile instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.BackupFile + * @static + * @param {google.cloud.redis.cluster.v1.IBackupFile=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.BackupFile} BackupFile instance + */ + BackupFile.create = function create(properties) { + return new BackupFile(properties); + }; + + /** + * Encodes the specified BackupFile message. Does not implicitly {@link google.cloud.redis.cluster.v1.BackupFile.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.BackupFile + * @static + * @param {google.cloud.redis.cluster.v1.IBackupFile} message BackupFile message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BackupFile.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.fileName != null && Object.hasOwnProperty.call(message, "fileName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.fileName); + if (message.sizeBytes != null && Object.hasOwnProperty.call(message, "sizeBytes")) + writer.uint32(/* id 2, wireType 0 =*/16).int64(message.sizeBytes); + if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) + $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified BackupFile message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.BackupFile.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.BackupFile + * @static + * @param {google.cloud.redis.cluster.v1.IBackupFile} message BackupFile message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BackupFile.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BackupFile message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.BackupFile + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.BackupFile} BackupFile + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BackupFile.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.BackupFile(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.fileName = reader.string(); + break; + } + case 2: { + message.sizeBytes = reader.int64(); + break; + } + case 3: { + message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BackupFile message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.BackupFile + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.BackupFile} BackupFile + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BackupFile.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BackupFile message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.BackupFile + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BackupFile.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.fileName != null && message.hasOwnProperty("fileName")) + if (!$util.isString(message.fileName)) + return "fileName: string expected"; + if (message.sizeBytes != null && message.hasOwnProperty("sizeBytes")) + if (!$util.isInteger(message.sizeBytes) && !(message.sizeBytes && $util.isInteger(message.sizeBytes.low) && $util.isInteger(message.sizeBytes.high))) + return "sizeBytes: integer|Long expected"; + if (message.createTime != null && message.hasOwnProperty("createTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.createTime); + if (error) + return "createTime." + error; + } + return null; + }; + + /** + * Creates a BackupFile message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.BackupFile + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.BackupFile} BackupFile + */ + BackupFile.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.BackupFile) + return object; + var message = new $root.google.cloud.redis.cluster.v1.BackupFile(); + if (object.fileName != null) + message.fileName = String(object.fileName); + if (object.sizeBytes != null) + if ($util.Long) + (message.sizeBytes = $util.Long.fromValue(object.sizeBytes)).unsigned = false; + else if (typeof object.sizeBytes === "string") + message.sizeBytes = parseInt(object.sizeBytes, 10); + else if (typeof object.sizeBytes === "number") + message.sizeBytes = object.sizeBytes; + else if (typeof object.sizeBytes === "object") + message.sizeBytes = new $util.LongBits(object.sizeBytes.low >>> 0, object.sizeBytes.high >>> 0).toNumber(); + if (object.createTime != null) { + if (typeof object.createTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.BackupFile.createTime: object expected"); + message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime); + } + return message; + }; + + /** + * Creates a plain object from a BackupFile message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.BackupFile + * @static + * @param {google.cloud.redis.cluster.v1.BackupFile} message BackupFile + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BackupFile.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.fileName = ""; + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.sizeBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.sizeBytes = options.longs === String ? "0" : 0; + object.createTime = null; + } + if (message.fileName != null && message.hasOwnProperty("fileName")) + object.fileName = message.fileName; + if (message.sizeBytes != null && message.hasOwnProperty("sizeBytes")) + if (typeof message.sizeBytes === "number") + object.sizeBytes = options.longs === String ? String(message.sizeBytes) : message.sizeBytes; + else + object.sizeBytes = options.longs === String ? $util.Long.prototype.toString.call(message.sizeBytes) : options.longs === Number ? new $util.LongBits(message.sizeBytes.low >>> 0, message.sizeBytes.high >>> 0).toNumber() : message.sizeBytes; + if (message.createTime != null && message.hasOwnProperty("createTime")) + object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options); + return object; + }; + + /** + * Converts this BackupFile to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.BackupFile + * @instance + * @returns {Object.} JSON object + */ + BackupFile.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for BackupFile + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.BackupFile + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + BackupFile.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.BackupFile"; + }; + + return BackupFile; + })(); + + v1.PscServiceAttachment = (function() { + + /** + * Properties of a PscServiceAttachment. + * @memberof google.cloud.redis.cluster.v1 + * @interface IPscServiceAttachment + * @property {string|null} [serviceAttachment] PscServiceAttachment serviceAttachment + * @property {google.cloud.redis.cluster.v1.ConnectionType|null} [connectionType] PscServiceAttachment connectionType + */ + + /** + * Constructs a new PscServiceAttachment. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a PscServiceAttachment. + * @implements IPscServiceAttachment + * @constructor + * @param {google.cloud.redis.cluster.v1.IPscServiceAttachment=} [properties] Properties to set + */ + function PscServiceAttachment(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PscServiceAttachment serviceAttachment. + * @member {string} serviceAttachment + * @memberof google.cloud.redis.cluster.v1.PscServiceAttachment + * @instance + */ + PscServiceAttachment.prototype.serviceAttachment = ""; + + /** + * PscServiceAttachment connectionType. + * @member {google.cloud.redis.cluster.v1.ConnectionType} connectionType + * @memberof google.cloud.redis.cluster.v1.PscServiceAttachment + * @instance + */ + PscServiceAttachment.prototype.connectionType = 0; + + /** + * Creates a new PscServiceAttachment instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.PscServiceAttachment + * @static + * @param {google.cloud.redis.cluster.v1.IPscServiceAttachment=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.PscServiceAttachment} PscServiceAttachment instance + */ + PscServiceAttachment.create = function create(properties) { + return new PscServiceAttachment(properties); + }; + + /** + * Encodes the specified PscServiceAttachment message. Does not implicitly {@link google.cloud.redis.cluster.v1.PscServiceAttachment.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.PscServiceAttachment + * @static + * @param {google.cloud.redis.cluster.v1.IPscServiceAttachment} message PscServiceAttachment message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PscServiceAttachment.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.serviceAttachment != null && Object.hasOwnProperty.call(message, "serviceAttachment")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.serviceAttachment); + if (message.connectionType != null && Object.hasOwnProperty.call(message, "connectionType")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.connectionType); + return writer; + }; + + /** + * Encodes the specified PscServiceAttachment message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.PscServiceAttachment.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.PscServiceAttachment + * @static + * @param {google.cloud.redis.cluster.v1.IPscServiceAttachment} message PscServiceAttachment message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PscServiceAttachment.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PscServiceAttachment message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.PscServiceAttachment + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.PscServiceAttachment} PscServiceAttachment + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PscServiceAttachment.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.PscServiceAttachment(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.serviceAttachment = reader.string(); + break; + } + case 3: { + message.connectionType = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PscServiceAttachment message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.PscServiceAttachment + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.PscServiceAttachment} PscServiceAttachment + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PscServiceAttachment.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PscServiceAttachment message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.PscServiceAttachment + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PscServiceAttachment.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.serviceAttachment != null && message.hasOwnProperty("serviceAttachment")) + if (!$util.isString(message.serviceAttachment)) + return "serviceAttachment: string expected"; + if (message.connectionType != null && message.hasOwnProperty("connectionType")) + switch (message.connectionType) { + default: + return "connectionType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + return null; + }; + + /** + * Creates a PscServiceAttachment message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.PscServiceAttachment + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.PscServiceAttachment} PscServiceAttachment + */ + PscServiceAttachment.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.PscServiceAttachment) + return object; + var message = new $root.google.cloud.redis.cluster.v1.PscServiceAttachment(); + if (object.serviceAttachment != null) + message.serviceAttachment = String(object.serviceAttachment); + switch (object.connectionType) { + default: + if (typeof object.connectionType === "number") { + message.connectionType = object.connectionType; + break; + } + break; + case "CONNECTION_TYPE_UNSPECIFIED": + case 0: + message.connectionType = 0; + break; + case "CONNECTION_TYPE_DISCOVERY": + case 1: + message.connectionType = 1; + break; + case "CONNECTION_TYPE_PRIMARY": + case 2: + message.connectionType = 2; + break; + case "CONNECTION_TYPE_READER": + case 3: + message.connectionType = 3; + break; + } + return message; + }; + + /** + * Creates a plain object from a PscServiceAttachment message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.PscServiceAttachment + * @static + * @param {google.cloud.redis.cluster.v1.PscServiceAttachment} message PscServiceAttachment + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PscServiceAttachment.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.serviceAttachment = ""; + object.connectionType = options.enums === String ? "CONNECTION_TYPE_UNSPECIFIED" : 0; + } + if (message.serviceAttachment != null && message.hasOwnProperty("serviceAttachment")) + object.serviceAttachment = message.serviceAttachment; + if (message.connectionType != null && message.hasOwnProperty("connectionType")) + object.connectionType = options.enums === String ? $root.google.cloud.redis.cluster.v1.ConnectionType[message.connectionType] === undefined ? message.connectionType : $root.google.cloud.redis.cluster.v1.ConnectionType[message.connectionType] : message.connectionType; + return object; + }; + + /** + * Converts this PscServiceAttachment to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.PscServiceAttachment + * @instance + * @returns {Object.} JSON object + */ + PscServiceAttachment.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for PscServiceAttachment + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.PscServiceAttachment + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + PscServiceAttachment.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.PscServiceAttachment"; + }; + + return PscServiceAttachment; + })(); + + v1.CrossClusterReplicationConfig = (function() { + + /** + * Properties of a CrossClusterReplicationConfig. + * @memberof google.cloud.redis.cluster.v1 + * @interface ICrossClusterReplicationConfig + * @property {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.ClusterRole|null} [clusterRole] CrossClusterReplicationConfig clusterRole + * @property {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster|null} [primaryCluster] CrossClusterReplicationConfig primaryCluster + * @property {Array.|null} [secondaryClusters] CrossClusterReplicationConfig secondaryClusters + * @property {google.protobuf.ITimestamp|null} [updateTime] CrossClusterReplicationConfig updateTime + * @property {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IMembership|null} [membership] CrossClusterReplicationConfig membership + */ + + /** + * Constructs a new CrossClusterReplicationConfig. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a CrossClusterReplicationConfig. + * @implements ICrossClusterReplicationConfig + * @constructor + * @param {google.cloud.redis.cluster.v1.ICrossClusterReplicationConfig=} [properties] Properties to set + */ + function CrossClusterReplicationConfig(properties) { + this.secondaryClusters = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CrossClusterReplicationConfig clusterRole. + * @member {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.ClusterRole} clusterRole + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @instance + */ + CrossClusterReplicationConfig.prototype.clusterRole = 0; + + /** + * CrossClusterReplicationConfig primaryCluster. + * @member {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster|null|undefined} primaryCluster + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @instance + */ + CrossClusterReplicationConfig.prototype.primaryCluster = null; + + /** + * CrossClusterReplicationConfig secondaryClusters. + * @member {Array.} secondaryClusters + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @instance + */ + CrossClusterReplicationConfig.prototype.secondaryClusters = $util.emptyArray; + + /** + * CrossClusterReplicationConfig updateTime. + * @member {google.protobuf.ITimestamp|null|undefined} updateTime + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @instance + */ + CrossClusterReplicationConfig.prototype.updateTime = null; + + /** + * CrossClusterReplicationConfig membership. + * @member {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IMembership|null|undefined} membership + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @instance + */ + CrossClusterReplicationConfig.prototype.membership = null; + + /** + * Creates a new CrossClusterReplicationConfig instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @static + * @param {google.cloud.redis.cluster.v1.ICrossClusterReplicationConfig=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig} CrossClusterReplicationConfig instance + */ + CrossClusterReplicationConfig.create = function create(properties) { + return new CrossClusterReplicationConfig(properties); + }; + + /** + * Encodes the specified CrossClusterReplicationConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @static + * @param {google.cloud.redis.cluster.v1.ICrossClusterReplicationConfig} message CrossClusterReplicationConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CrossClusterReplicationConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.clusterRole != null && Object.hasOwnProperty.call(message, "clusterRole")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.clusterRole); + if (message.primaryCluster != null && Object.hasOwnProperty.call(message, "primaryCluster")) + $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.encode(message.primaryCluster, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.secondaryClusters != null && message.secondaryClusters.length) + for (var i = 0; i < message.secondaryClusters.length; ++i) + $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.encode(message.secondaryClusters[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.updateTime != null && Object.hasOwnProperty.call(message, "updateTime")) + $root.google.protobuf.Timestamp.encode(message.updateTime, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.membership != null && Object.hasOwnProperty.call(message, "membership")) + $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership.encode(message.membership, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified CrossClusterReplicationConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @static + * @param {google.cloud.redis.cluster.v1.ICrossClusterReplicationConfig} message CrossClusterReplicationConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CrossClusterReplicationConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CrossClusterReplicationConfig message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig} CrossClusterReplicationConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CrossClusterReplicationConfig.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.clusterRole = reader.int32(); + break; + } + case 2: { + message.primaryCluster = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.decode(reader, reader.uint32()); + break; + } + case 3: { + if (!(message.secondaryClusters && message.secondaryClusters.length)) + message.secondaryClusters = []; + message.secondaryClusters.push($root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.decode(reader, reader.uint32())); + break; + } + case 4: { + message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 5: { + message.membership = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CrossClusterReplicationConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig} CrossClusterReplicationConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CrossClusterReplicationConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CrossClusterReplicationConfig message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CrossClusterReplicationConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.clusterRole != null && message.hasOwnProperty("clusterRole")) + switch (message.clusterRole) { + default: + return "clusterRole: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + if (message.primaryCluster != null && message.hasOwnProperty("primaryCluster")) { + var error = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.verify(message.primaryCluster); + if (error) + return "primaryCluster." + error; + } + if (message.secondaryClusters != null && message.hasOwnProperty("secondaryClusters")) { + if (!Array.isArray(message.secondaryClusters)) + return "secondaryClusters: array expected"; + for (var i = 0; i < message.secondaryClusters.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.verify(message.secondaryClusters[i]); + if (error) + return "secondaryClusters." + error; + } + } + if (message.updateTime != null && message.hasOwnProperty("updateTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.updateTime); + if (error) + return "updateTime." + error; + } + if (message.membership != null && message.hasOwnProperty("membership")) { + var error = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership.verify(message.membership); + if (error) + return "membership." + error; + } + return null; + }; + + /** + * Creates a CrossClusterReplicationConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig} CrossClusterReplicationConfig + */ + CrossClusterReplicationConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig) + return object; + var message = new $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig(); + switch (object.clusterRole) { + default: + if (typeof object.clusterRole === "number") { + message.clusterRole = object.clusterRole; + break; + } + break; + case "CLUSTER_ROLE_UNSPECIFIED": + case 0: + message.clusterRole = 0; + break; + case "NONE": + case 1: + message.clusterRole = 1; + break; + case "PRIMARY": + case 2: + message.clusterRole = 2; + break; + case "SECONDARY": + case 3: + message.clusterRole = 3; + break; + } + if (object.primaryCluster != null) { + if (typeof object.primaryCluster !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.primaryCluster: object expected"); + message.primaryCluster = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.fromObject(object.primaryCluster); + } + if (object.secondaryClusters) { + if (!Array.isArray(object.secondaryClusters)) + throw TypeError(".google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.secondaryClusters: array expected"); + message.secondaryClusters = []; + for (var i = 0; i < object.secondaryClusters.length; ++i) { + if (typeof object.secondaryClusters[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.secondaryClusters: object expected"); + message.secondaryClusters[i] = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.fromObject(object.secondaryClusters[i]); + } + } + if (object.updateTime != null) { + if (typeof object.updateTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.updateTime: object expected"); + message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime); + } + if (object.membership != null) { + if (typeof object.membership !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.membership: object expected"); + message.membership = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership.fromObject(object.membership); + } + return message; + }; + + /** + * Creates a plain object from a CrossClusterReplicationConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @static + * @param {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig} message CrossClusterReplicationConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CrossClusterReplicationConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.secondaryClusters = []; + if (options.defaults) { + object.clusterRole = options.enums === String ? "CLUSTER_ROLE_UNSPECIFIED" : 0; + object.primaryCluster = null; + object.updateTime = null; + object.membership = null; + } + if (message.clusterRole != null && message.hasOwnProperty("clusterRole")) + object.clusterRole = options.enums === String ? $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.ClusterRole[message.clusterRole] === undefined ? message.clusterRole : $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.ClusterRole[message.clusterRole] : message.clusterRole; + if (message.primaryCluster != null && message.hasOwnProperty("primaryCluster")) + object.primaryCluster = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.toObject(message.primaryCluster, options); + if (message.secondaryClusters && message.secondaryClusters.length) { + object.secondaryClusters = []; + for (var j = 0; j < message.secondaryClusters.length; ++j) + object.secondaryClusters[j] = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.toObject(message.secondaryClusters[j], options); + } + if (message.updateTime != null && message.hasOwnProperty("updateTime")) + object.updateTime = $root.google.protobuf.Timestamp.toObject(message.updateTime, options); + if (message.membership != null && message.hasOwnProperty("membership")) + object.membership = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership.toObject(message.membership, options); + return object; + }; + + /** + * Converts this CrossClusterReplicationConfig to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @instance + * @returns {Object.} JSON object + */ + CrossClusterReplicationConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CrossClusterReplicationConfig + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CrossClusterReplicationConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.CrossClusterReplicationConfig"; + }; + + CrossClusterReplicationConfig.RemoteCluster = (function() { + + /** + * Properties of a RemoteCluster. + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @interface IRemoteCluster + * @property {string|null} [cluster] RemoteCluster cluster + * @property {string|null} [uid] RemoteCluster uid + */ + + /** + * Constructs a new RemoteCluster. + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @classdesc Represents a RemoteCluster. + * @implements IRemoteCluster + * @constructor + * @param {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster=} [properties] Properties to set + */ + function RemoteCluster(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * RemoteCluster cluster. + * @member {string} cluster + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster + * @instance + */ + RemoteCluster.prototype.cluster = ""; + + /** + * RemoteCluster uid. + * @member {string} uid + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster + * @instance + */ + RemoteCluster.prototype.uid = ""; + + /** + * Creates a new RemoteCluster instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster + * @static + * @param {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster} RemoteCluster instance + */ + RemoteCluster.create = function create(properties) { + return new RemoteCluster(properties); + }; + + /** + * Encodes the specified RemoteCluster message. Does not implicitly {@link google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster + * @static + * @param {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster} message RemoteCluster message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RemoteCluster.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.cluster != null && Object.hasOwnProperty.call(message, "cluster")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.cluster); + if (message.uid != null && Object.hasOwnProperty.call(message, "uid")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.uid); + return writer; + }; + + /** + * Encodes the specified RemoteCluster message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster + * @static + * @param {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster} message RemoteCluster message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RemoteCluster.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RemoteCluster message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster} RemoteCluster + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RemoteCluster.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.cluster = reader.string(); + break; + } + case 2: { + message.uid = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RemoteCluster message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster} RemoteCluster + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RemoteCluster.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RemoteCluster message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RemoteCluster.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.cluster != null && message.hasOwnProperty("cluster")) + if (!$util.isString(message.cluster)) + return "cluster: string expected"; + if (message.uid != null && message.hasOwnProperty("uid")) + if (!$util.isString(message.uid)) + return "uid: string expected"; + return null; + }; + + /** + * Creates a RemoteCluster message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster} RemoteCluster + */ + RemoteCluster.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster) + return object; + var message = new $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster(); + if (object.cluster != null) + message.cluster = String(object.cluster); + if (object.uid != null) + message.uid = String(object.uid); + return message; + }; + + /** + * Creates a plain object from a RemoteCluster message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster + * @static + * @param {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster} message RemoteCluster + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RemoteCluster.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.cluster = ""; + object.uid = ""; + } + if (message.cluster != null && message.hasOwnProperty("cluster")) + object.cluster = message.cluster; + if (message.uid != null && message.hasOwnProperty("uid")) + object.uid = message.uid; + return object; + }; + + /** + * Converts this RemoteCluster to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster + * @instance + * @returns {Object.} JSON object + */ + RemoteCluster.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for RemoteCluster + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + RemoteCluster.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster"; + }; + + return RemoteCluster; + })(); + + CrossClusterReplicationConfig.Membership = (function() { + + /** + * Properties of a Membership. + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @interface IMembership + * @property {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster|null} [primaryCluster] Membership primaryCluster + * @property {Array.|null} [secondaryClusters] Membership secondaryClusters + */ + + /** + * Constructs a new Membership. + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig + * @classdesc Represents a Membership. + * @implements IMembership + * @constructor + * @param {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IMembership=} [properties] Properties to set + */ + function Membership(properties) { + this.secondaryClusters = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Membership primaryCluster. + * @member {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IRemoteCluster|null|undefined} primaryCluster + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership + * @instance + */ + Membership.prototype.primaryCluster = null; + + /** + * Membership secondaryClusters. + * @member {Array.} secondaryClusters + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership + * @instance + */ + Membership.prototype.secondaryClusters = $util.emptyArray; + + /** + * Creates a new Membership instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership + * @static + * @param {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IMembership=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership} Membership instance + */ + Membership.create = function create(properties) { + return new Membership(properties); + }; + + /** + * Encodes the specified Membership message. Does not implicitly {@link google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership + * @static + * @param {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IMembership} message Membership message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Membership.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.primaryCluster != null && Object.hasOwnProperty.call(message, "primaryCluster")) + $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.encode(message.primaryCluster, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.secondaryClusters != null && message.secondaryClusters.length) + for (var i = 0; i < message.secondaryClusters.length; ++i) + $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.encode(message.secondaryClusters[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified Membership message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership + * @static + * @param {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.IMembership} message Membership message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Membership.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Membership message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership} Membership + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Membership.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.primaryCluster = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.decode(reader, reader.uint32()); + break; + } + case 2: { + if (!(message.secondaryClusters && message.secondaryClusters.length)) + message.secondaryClusters = []; + message.secondaryClusters.push($root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Membership message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership} Membership + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Membership.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Membership message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Membership.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.primaryCluster != null && message.hasOwnProperty("primaryCluster")) { + var error = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.verify(message.primaryCluster); + if (error) + return "primaryCluster." + error; + } + if (message.secondaryClusters != null && message.hasOwnProperty("secondaryClusters")) { + if (!Array.isArray(message.secondaryClusters)) + return "secondaryClusters: array expected"; + for (var i = 0; i < message.secondaryClusters.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.verify(message.secondaryClusters[i]); + if (error) + return "secondaryClusters." + error; + } + } + return null; + }; + + /** + * Creates a Membership message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership} Membership + */ + Membership.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership) + return object; + var message = new $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership(); + if (object.primaryCluster != null) { + if (typeof object.primaryCluster !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership.primaryCluster: object expected"); + message.primaryCluster = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.fromObject(object.primaryCluster); + } + if (object.secondaryClusters) { + if (!Array.isArray(object.secondaryClusters)) + throw TypeError(".google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership.secondaryClusters: array expected"); + message.secondaryClusters = []; + for (var i = 0; i < object.secondaryClusters.length; ++i) { + if (typeof object.secondaryClusters[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership.secondaryClusters: object expected"); + message.secondaryClusters[i] = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.fromObject(object.secondaryClusters[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a Membership message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership + * @static + * @param {google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership} message Membership + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Membership.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.secondaryClusters = []; + if (options.defaults) + object.primaryCluster = null; + if (message.primaryCluster != null && message.hasOwnProperty("primaryCluster")) + object.primaryCluster = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.toObject(message.primaryCluster, options); + if (message.secondaryClusters && message.secondaryClusters.length) { + object.secondaryClusters = []; + for (var j = 0; j < message.secondaryClusters.length; ++j) + object.secondaryClusters[j] = $root.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster.toObject(message.secondaryClusters[j], options); + } + return object; + }; + + /** + * Converts this Membership to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership + * @instance + * @returns {Object.} JSON object + */ + Membership.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Membership + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Membership.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.Membership"; + }; + + return Membership; + })(); + + /** + * ClusterRole enum. + * @name google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.ClusterRole + * @enum {number} + * @property {number} CLUSTER_ROLE_UNSPECIFIED=0 CLUSTER_ROLE_UNSPECIFIED value + * @property {number} NONE=1 NONE value + * @property {number} PRIMARY=2 PRIMARY value + * @property {number} SECONDARY=3 SECONDARY value + */ + CrossClusterReplicationConfig.ClusterRole = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "CLUSTER_ROLE_UNSPECIFIED"] = 0; + values[valuesById[1] = "NONE"] = 1; + values[valuesById[2] = "PRIMARY"] = 2; + values[valuesById[3] = "SECONDARY"] = 3; + return values; + })(); + + return CrossClusterReplicationConfig; + })(); + + v1.ClusterMaintenancePolicy = (function() { + + /** + * Properties of a ClusterMaintenancePolicy. + * @memberof google.cloud.redis.cluster.v1 + * @interface IClusterMaintenancePolicy + * @property {google.protobuf.ITimestamp|null} [createTime] ClusterMaintenancePolicy createTime + * @property {google.protobuf.ITimestamp|null} [updateTime] ClusterMaintenancePolicy updateTime + * @property {Array.|null} [weeklyMaintenanceWindow] ClusterMaintenancePolicy weeklyMaintenanceWindow + */ + + /** + * Constructs a new ClusterMaintenancePolicy. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a ClusterMaintenancePolicy. + * @implements IClusterMaintenancePolicy + * @constructor + * @param {google.cloud.redis.cluster.v1.IClusterMaintenancePolicy=} [properties] Properties to set + */ + function ClusterMaintenancePolicy(properties) { + this.weeklyMaintenanceWindow = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ClusterMaintenancePolicy createTime. + * @member {google.protobuf.ITimestamp|null|undefined} createTime + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenancePolicy + * @instance + */ + ClusterMaintenancePolicy.prototype.createTime = null; + + /** + * ClusterMaintenancePolicy updateTime. + * @member {google.protobuf.ITimestamp|null|undefined} updateTime + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenancePolicy + * @instance + */ + ClusterMaintenancePolicy.prototype.updateTime = null; + + /** + * ClusterMaintenancePolicy weeklyMaintenanceWindow. + * @member {Array.} weeklyMaintenanceWindow + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenancePolicy + * @instance + */ + ClusterMaintenancePolicy.prototype.weeklyMaintenanceWindow = $util.emptyArray; + + /** + * Creates a new ClusterMaintenancePolicy instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenancePolicy + * @static + * @param {google.cloud.redis.cluster.v1.IClusterMaintenancePolicy=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.ClusterMaintenancePolicy} ClusterMaintenancePolicy instance + */ + ClusterMaintenancePolicy.create = function create(properties) { + return new ClusterMaintenancePolicy(properties); + }; + + /** + * Encodes the specified ClusterMaintenancePolicy message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterMaintenancePolicy.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenancePolicy + * @static + * @param {google.cloud.redis.cluster.v1.IClusterMaintenancePolicy} message ClusterMaintenancePolicy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ClusterMaintenancePolicy.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) + $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.updateTime != null && Object.hasOwnProperty.call(message, "updateTime")) + $root.google.protobuf.Timestamp.encode(message.updateTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.weeklyMaintenanceWindow != null && message.weeklyMaintenanceWindow.length) + for (var i = 0; i < message.weeklyMaintenanceWindow.length; ++i) + $root.google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow.encode(message.weeklyMaintenanceWindow[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ClusterMaintenancePolicy message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterMaintenancePolicy.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenancePolicy + * @static + * @param {google.cloud.redis.cluster.v1.IClusterMaintenancePolicy} message ClusterMaintenancePolicy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ClusterMaintenancePolicy.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ClusterMaintenancePolicy message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenancePolicy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.ClusterMaintenancePolicy} ClusterMaintenancePolicy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ClusterMaintenancePolicy.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.ClusterMaintenancePolicy(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 2: { + message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 3: { + if (!(message.weeklyMaintenanceWindow && message.weeklyMaintenanceWindow.length)) + message.weeklyMaintenanceWindow = []; + message.weeklyMaintenanceWindow.push($root.google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ClusterMaintenancePolicy message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenancePolicy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.ClusterMaintenancePolicy} ClusterMaintenancePolicy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ClusterMaintenancePolicy.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ClusterMaintenancePolicy message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenancePolicy + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ClusterMaintenancePolicy.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.createTime != null && message.hasOwnProperty("createTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.createTime); + if (error) + return "createTime." + error; + } + if (message.updateTime != null && message.hasOwnProperty("updateTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.updateTime); + if (error) + return "updateTime." + error; + } + if (message.weeklyMaintenanceWindow != null && message.hasOwnProperty("weeklyMaintenanceWindow")) { + if (!Array.isArray(message.weeklyMaintenanceWindow)) + return "weeklyMaintenanceWindow: array expected"; + for (var i = 0; i < message.weeklyMaintenanceWindow.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow.verify(message.weeklyMaintenanceWindow[i]); + if (error) + return "weeklyMaintenanceWindow." + error; + } + } + return null; + }; + + /** + * Creates a ClusterMaintenancePolicy message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenancePolicy + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.ClusterMaintenancePolicy} ClusterMaintenancePolicy + */ + ClusterMaintenancePolicy.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.ClusterMaintenancePolicy) + return object; + var message = new $root.google.cloud.redis.cluster.v1.ClusterMaintenancePolicy(); + if (object.createTime != null) { + if (typeof object.createTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.ClusterMaintenancePolicy.createTime: object expected"); + message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime); + } + if (object.updateTime != null) { + if (typeof object.updateTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.ClusterMaintenancePolicy.updateTime: object expected"); + message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime); + } + if (object.weeklyMaintenanceWindow) { + if (!Array.isArray(object.weeklyMaintenanceWindow)) + throw TypeError(".google.cloud.redis.cluster.v1.ClusterMaintenancePolicy.weeklyMaintenanceWindow: array expected"); + message.weeklyMaintenanceWindow = []; + for (var i = 0; i < object.weeklyMaintenanceWindow.length; ++i) { + if (typeof object.weeklyMaintenanceWindow[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.ClusterMaintenancePolicy.weeklyMaintenanceWindow: object expected"); + message.weeklyMaintenanceWindow[i] = $root.google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow.fromObject(object.weeklyMaintenanceWindow[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a ClusterMaintenancePolicy message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenancePolicy + * @static + * @param {google.cloud.redis.cluster.v1.ClusterMaintenancePolicy} message ClusterMaintenancePolicy + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ClusterMaintenancePolicy.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.weeklyMaintenanceWindow = []; + if (options.defaults) { + object.createTime = null; + object.updateTime = null; + } + if (message.createTime != null && message.hasOwnProperty("createTime")) + object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options); + if (message.updateTime != null && message.hasOwnProperty("updateTime")) + object.updateTime = $root.google.protobuf.Timestamp.toObject(message.updateTime, options); + if (message.weeklyMaintenanceWindow && message.weeklyMaintenanceWindow.length) { + object.weeklyMaintenanceWindow = []; + for (var j = 0; j < message.weeklyMaintenanceWindow.length; ++j) + object.weeklyMaintenanceWindow[j] = $root.google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow.toObject(message.weeklyMaintenanceWindow[j], options); + } + return object; + }; + + /** + * Converts this ClusterMaintenancePolicy to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenancePolicy + * @instance + * @returns {Object.} JSON object + */ + ClusterMaintenancePolicy.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ClusterMaintenancePolicy + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenancePolicy + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ClusterMaintenancePolicy.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.ClusterMaintenancePolicy"; + }; + + return ClusterMaintenancePolicy; + })(); + + v1.ClusterWeeklyMaintenanceWindow = (function() { + + /** + * Properties of a ClusterWeeklyMaintenanceWindow. + * @memberof google.cloud.redis.cluster.v1 + * @interface IClusterWeeklyMaintenanceWindow + * @property {google.type.DayOfWeek|null} [day] ClusterWeeklyMaintenanceWindow day + * @property {google.type.ITimeOfDay|null} [startTime] ClusterWeeklyMaintenanceWindow startTime + */ + + /** + * Constructs a new ClusterWeeklyMaintenanceWindow. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a ClusterWeeklyMaintenanceWindow. + * @implements IClusterWeeklyMaintenanceWindow + * @constructor + * @param {google.cloud.redis.cluster.v1.IClusterWeeklyMaintenanceWindow=} [properties] Properties to set + */ + function ClusterWeeklyMaintenanceWindow(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ClusterWeeklyMaintenanceWindow day. + * @member {google.type.DayOfWeek} day + * @memberof google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow + * @instance + */ + ClusterWeeklyMaintenanceWindow.prototype.day = 0; + + /** + * ClusterWeeklyMaintenanceWindow startTime. + * @member {google.type.ITimeOfDay|null|undefined} startTime + * @memberof google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow + * @instance + */ + ClusterWeeklyMaintenanceWindow.prototype.startTime = null; + + /** + * Creates a new ClusterWeeklyMaintenanceWindow instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow + * @static + * @param {google.cloud.redis.cluster.v1.IClusterWeeklyMaintenanceWindow=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow} ClusterWeeklyMaintenanceWindow instance + */ + ClusterWeeklyMaintenanceWindow.create = function create(properties) { + return new ClusterWeeklyMaintenanceWindow(properties); + }; + + /** + * Encodes the specified ClusterWeeklyMaintenanceWindow message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow + * @static + * @param {google.cloud.redis.cluster.v1.IClusterWeeklyMaintenanceWindow} message ClusterWeeklyMaintenanceWindow message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ClusterWeeklyMaintenanceWindow.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.day != null && Object.hasOwnProperty.call(message, "day")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.day); + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) + $root.google.type.TimeOfDay.encode(message.startTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ClusterWeeklyMaintenanceWindow message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow + * @static + * @param {google.cloud.redis.cluster.v1.IClusterWeeklyMaintenanceWindow} message ClusterWeeklyMaintenanceWindow message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ClusterWeeklyMaintenanceWindow.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ClusterWeeklyMaintenanceWindow message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow} ClusterWeeklyMaintenanceWindow + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ClusterWeeklyMaintenanceWindow.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.day = reader.int32(); + break; + } + case 2: { + message.startTime = $root.google.type.TimeOfDay.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ClusterWeeklyMaintenanceWindow message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow} ClusterWeeklyMaintenanceWindow + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ClusterWeeklyMaintenanceWindow.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ClusterWeeklyMaintenanceWindow message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ClusterWeeklyMaintenanceWindow.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.day != null && message.hasOwnProperty("day")) + switch (message.day) { + default: + return "day: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + break; + } + if (message.startTime != null && message.hasOwnProperty("startTime")) { + var error = $root.google.type.TimeOfDay.verify(message.startTime); + if (error) + return "startTime." + error; + } + return null; + }; + + /** + * Creates a ClusterWeeklyMaintenanceWindow message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow} ClusterWeeklyMaintenanceWindow + */ + ClusterWeeklyMaintenanceWindow.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow) + return object; + var message = new $root.google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow(); + switch (object.day) { + default: + if (typeof object.day === "number") { + message.day = object.day; + break; + } + break; + case "DAY_OF_WEEK_UNSPECIFIED": + case 0: + message.day = 0; + break; + case "MONDAY": + case 1: + message.day = 1; + break; + case "TUESDAY": + case 2: + message.day = 2; + break; + case "WEDNESDAY": + case 3: + message.day = 3; + break; + case "THURSDAY": + case 4: + message.day = 4; + break; + case "FRIDAY": + case 5: + message.day = 5; + break; + case "SATURDAY": + case 6: + message.day = 6; + break; + case "SUNDAY": + case 7: + message.day = 7; + break; + } + if (object.startTime != null) { + if (typeof object.startTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow.startTime: object expected"); + message.startTime = $root.google.type.TimeOfDay.fromObject(object.startTime); + } + return message; + }; + + /** + * Creates a plain object from a ClusterWeeklyMaintenanceWindow message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow + * @static + * @param {google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow} message ClusterWeeklyMaintenanceWindow + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ClusterWeeklyMaintenanceWindow.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.day = options.enums === String ? "DAY_OF_WEEK_UNSPECIFIED" : 0; + object.startTime = null; + } + if (message.day != null && message.hasOwnProperty("day")) + object.day = options.enums === String ? $root.google.type.DayOfWeek[message.day] === undefined ? message.day : $root.google.type.DayOfWeek[message.day] : message.day; + if (message.startTime != null && message.hasOwnProperty("startTime")) + object.startTime = $root.google.type.TimeOfDay.toObject(message.startTime, options); + return object; + }; + + /** + * Converts this ClusterWeeklyMaintenanceWindow to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow + * @instance + * @returns {Object.} JSON object + */ + ClusterWeeklyMaintenanceWindow.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ClusterWeeklyMaintenanceWindow + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ClusterWeeklyMaintenanceWindow.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow"; + }; + + return ClusterWeeklyMaintenanceWindow; + })(); + + v1.ClusterMaintenanceSchedule = (function() { + + /** + * Properties of a ClusterMaintenanceSchedule. + * @memberof google.cloud.redis.cluster.v1 + * @interface IClusterMaintenanceSchedule + * @property {google.protobuf.ITimestamp|null} [startTime] ClusterMaintenanceSchedule startTime + * @property {google.protobuf.ITimestamp|null} [endTime] ClusterMaintenanceSchedule endTime + */ + + /** + * Constructs a new ClusterMaintenanceSchedule. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a ClusterMaintenanceSchedule. + * @implements IClusterMaintenanceSchedule + * @constructor + * @param {google.cloud.redis.cluster.v1.IClusterMaintenanceSchedule=} [properties] Properties to set + */ + function ClusterMaintenanceSchedule(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ClusterMaintenanceSchedule startTime. + * @member {google.protobuf.ITimestamp|null|undefined} startTime + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule + * @instance + */ + ClusterMaintenanceSchedule.prototype.startTime = null; + + /** + * ClusterMaintenanceSchedule endTime. + * @member {google.protobuf.ITimestamp|null|undefined} endTime + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule + * @instance + */ + ClusterMaintenanceSchedule.prototype.endTime = null; + + /** + * Creates a new ClusterMaintenanceSchedule instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule + * @static + * @param {google.cloud.redis.cluster.v1.IClusterMaintenanceSchedule=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule} ClusterMaintenanceSchedule instance + */ + ClusterMaintenanceSchedule.create = function create(properties) { + return new ClusterMaintenanceSchedule(properties); + }; + + /** + * Encodes the specified ClusterMaintenanceSchedule message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule + * @static + * @param {google.cloud.redis.cluster.v1.IClusterMaintenanceSchedule} message ClusterMaintenanceSchedule message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ClusterMaintenanceSchedule.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) + $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) + $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ClusterMaintenanceSchedule message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule + * @static + * @param {google.cloud.redis.cluster.v1.IClusterMaintenanceSchedule} message ClusterMaintenanceSchedule message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ClusterMaintenanceSchedule.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ClusterMaintenanceSchedule message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule} ClusterMaintenanceSchedule + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ClusterMaintenanceSchedule.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 2: { + message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ClusterMaintenanceSchedule message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule} ClusterMaintenanceSchedule + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ClusterMaintenanceSchedule.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ClusterMaintenanceSchedule message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ClusterMaintenanceSchedule.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.startTime != null && message.hasOwnProperty("startTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.startTime); + if (error) + return "startTime." + error; + } + if (message.endTime != null && message.hasOwnProperty("endTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.endTime); + if (error) + return "endTime." + error; + } + return null; + }; + + /** + * Creates a ClusterMaintenanceSchedule message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule} ClusterMaintenanceSchedule + */ + ClusterMaintenanceSchedule.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule) + return object; + var message = new $root.google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule(); + if (object.startTime != null) { + if (typeof object.startTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule.startTime: object expected"); + message.startTime = $root.google.protobuf.Timestamp.fromObject(object.startTime); + } + if (object.endTime != null) { + if (typeof object.endTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule.endTime: object expected"); + message.endTime = $root.google.protobuf.Timestamp.fromObject(object.endTime); + } + return message; + }; + + /** + * Creates a plain object from a ClusterMaintenanceSchedule message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule + * @static + * @param {google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule} message ClusterMaintenanceSchedule + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ClusterMaintenanceSchedule.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.startTime = null; + object.endTime = null; + } + if (message.startTime != null && message.hasOwnProperty("startTime")) + object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options); + if (message.endTime != null && message.hasOwnProperty("endTime")) + object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options); + return object; + }; + + /** + * Converts this ClusterMaintenanceSchedule to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule + * @instance + * @returns {Object.} JSON object + */ + ClusterMaintenanceSchedule.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ClusterMaintenanceSchedule + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ClusterMaintenanceSchedule.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.ClusterMaintenanceSchedule"; + }; + + return ClusterMaintenanceSchedule; + })(); + + v1.PscConfig = (function() { + + /** + * Properties of a PscConfig. + * @memberof google.cloud.redis.cluster.v1 + * @interface IPscConfig + * @property {string|null} [network] PscConfig network + */ + + /** + * Constructs a new PscConfig. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a PscConfig. + * @implements IPscConfig + * @constructor + * @param {google.cloud.redis.cluster.v1.IPscConfig=} [properties] Properties to set + */ + function PscConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PscConfig network. + * @member {string} network + * @memberof google.cloud.redis.cluster.v1.PscConfig + * @instance + */ + PscConfig.prototype.network = ""; + + /** + * Creates a new PscConfig instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.PscConfig + * @static + * @param {google.cloud.redis.cluster.v1.IPscConfig=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.PscConfig} PscConfig instance + */ + PscConfig.create = function create(properties) { + return new PscConfig(properties); + }; + + /** + * Encodes the specified PscConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.PscConfig.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.PscConfig + * @static + * @param {google.cloud.redis.cluster.v1.IPscConfig} message PscConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PscConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.network != null && Object.hasOwnProperty.call(message, "network")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.network); + return writer; + }; + + /** + * Encodes the specified PscConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.PscConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.PscConfig + * @static + * @param {google.cloud.redis.cluster.v1.IPscConfig} message PscConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PscConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PscConfig message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.PscConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.PscConfig} PscConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PscConfig.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.PscConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 2: { + message.network = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PscConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.PscConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.PscConfig} PscConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PscConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PscConfig message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.PscConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PscConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.network != null && message.hasOwnProperty("network")) + if (!$util.isString(message.network)) + return "network: string expected"; + return null; + }; + + /** + * Creates a PscConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.PscConfig + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.PscConfig} PscConfig + */ + PscConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.PscConfig) + return object; + var message = new $root.google.cloud.redis.cluster.v1.PscConfig(); + if (object.network != null) + message.network = String(object.network); + return message; + }; + + /** + * Creates a plain object from a PscConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.PscConfig + * @static + * @param {google.cloud.redis.cluster.v1.PscConfig} message PscConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PscConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.network = ""; + if (message.network != null && message.hasOwnProperty("network")) + object.network = message.network; + return object; + }; + + /** + * Converts this PscConfig to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.PscConfig + * @instance + * @returns {Object.} JSON object + */ + PscConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for PscConfig + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.PscConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + PscConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.PscConfig"; + }; + + return PscConfig; + })(); + + v1.DiscoveryEndpoint = (function() { + + /** + * Properties of a DiscoveryEndpoint. + * @memberof google.cloud.redis.cluster.v1 + * @interface IDiscoveryEndpoint + * @property {string|null} [address] DiscoveryEndpoint address + * @property {number|null} [port] DiscoveryEndpoint port + * @property {google.cloud.redis.cluster.v1.IPscConfig|null} [pscConfig] DiscoveryEndpoint pscConfig + */ + + /** + * Constructs a new DiscoveryEndpoint. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a DiscoveryEndpoint. + * @implements IDiscoveryEndpoint + * @constructor + * @param {google.cloud.redis.cluster.v1.IDiscoveryEndpoint=} [properties] Properties to set + */ + function DiscoveryEndpoint(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * DiscoveryEndpoint address. + * @member {string} address + * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @instance + */ + DiscoveryEndpoint.prototype.address = ""; + + /** + * DiscoveryEndpoint port. + * @member {number} port + * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @instance + */ + DiscoveryEndpoint.prototype.port = 0; + + /** + * DiscoveryEndpoint pscConfig. + * @member {google.cloud.redis.cluster.v1.IPscConfig|null|undefined} pscConfig + * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @instance + */ + DiscoveryEndpoint.prototype.pscConfig = null; + + /** + * Creates a new DiscoveryEndpoint instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @static + * @param {google.cloud.redis.cluster.v1.IDiscoveryEndpoint=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.DiscoveryEndpoint} DiscoveryEndpoint instance + */ + DiscoveryEndpoint.create = function create(properties) { + return new DiscoveryEndpoint(properties); + }; + + /** + * Encodes the specified DiscoveryEndpoint message. Does not implicitly {@link google.cloud.redis.cluster.v1.DiscoveryEndpoint.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @static + * @param {google.cloud.redis.cluster.v1.IDiscoveryEndpoint} message DiscoveryEndpoint message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DiscoveryEndpoint.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.address != null && Object.hasOwnProperty.call(message, "address")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.address); + if (message.port != null && Object.hasOwnProperty.call(message, "port")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.port); + if (message.pscConfig != null && Object.hasOwnProperty.call(message, "pscConfig")) + $root.google.cloud.redis.cluster.v1.PscConfig.encode(message.pscConfig, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified DiscoveryEndpoint message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.DiscoveryEndpoint.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @static + * @param {google.cloud.redis.cluster.v1.IDiscoveryEndpoint} message DiscoveryEndpoint message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DiscoveryEndpoint.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DiscoveryEndpoint message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.DiscoveryEndpoint} DiscoveryEndpoint + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DiscoveryEndpoint.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.DiscoveryEndpoint(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.address = reader.string(); + break; + } + case 2: { + message.port = reader.int32(); + break; + } + case 3: { + message.pscConfig = $root.google.cloud.redis.cluster.v1.PscConfig.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DiscoveryEndpoint message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.DiscoveryEndpoint} DiscoveryEndpoint + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DiscoveryEndpoint.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DiscoveryEndpoint message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DiscoveryEndpoint.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.address != null && message.hasOwnProperty("address")) + if (!$util.isString(message.address)) + return "address: string expected"; + if (message.port != null && message.hasOwnProperty("port")) + if (!$util.isInteger(message.port)) + return "port: integer expected"; + if (message.pscConfig != null && message.hasOwnProperty("pscConfig")) { + var error = $root.google.cloud.redis.cluster.v1.PscConfig.verify(message.pscConfig); + if (error) + return "pscConfig." + error; + } + return null; + }; + + /** + * Creates a DiscoveryEndpoint message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.DiscoveryEndpoint} DiscoveryEndpoint + */ + DiscoveryEndpoint.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.DiscoveryEndpoint) + return object; + var message = new $root.google.cloud.redis.cluster.v1.DiscoveryEndpoint(); + if (object.address != null) + message.address = String(object.address); + if (object.port != null) + message.port = object.port | 0; + if (object.pscConfig != null) { + if (typeof object.pscConfig !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.DiscoveryEndpoint.pscConfig: object expected"); + message.pscConfig = $root.google.cloud.redis.cluster.v1.PscConfig.fromObject(object.pscConfig); + } + return message; + }; + + /** + * Creates a plain object from a DiscoveryEndpoint message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @static + * @param {google.cloud.redis.cluster.v1.DiscoveryEndpoint} message DiscoveryEndpoint + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DiscoveryEndpoint.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.address = ""; + object.port = 0; + object.pscConfig = null; + } + if (message.address != null && message.hasOwnProperty("address")) + object.address = message.address; + if (message.port != null && message.hasOwnProperty("port")) + object.port = message.port; + if (message.pscConfig != null && message.hasOwnProperty("pscConfig")) + object.pscConfig = $root.google.cloud.redis.cluster.v1.PscConfig.toObject(message.pscConfig, options); + return object; + }; + + /** + * Converts this DiscoveryEndpoint to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @instance + * @returns {Object.} JSON object + */ + DiscoveryEndpoint.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for DiscoveryEndpoint + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.DiscoveryEndpoint + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DiscoveryEndpoint.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.DiscoveryEndpoint"; + }; + + return DiscoveryEndpoint; + })(); + + v1.PscConnection = (function() { + + /** + * Properties of a PscConnection. + * @memberof google.cloud.redis.cluster.v1 + * @interface IPscConnection + * @property {string|null} [pscConnectionId] PscConnection pscConnectionId + * @property {string|null} [address] PscConnection address + * @property {string|null} [forwardingRule] PscConnection forwardingRule + * @property {string|null} [projectId] PscConnection projectId + * @property {string|null} [network] PscConnection network + * @property {string|null} [serviceAttachment] PscConnection serviceAttachment + * @property {google.cloud.redis.cluster.v1.PscConnectionStatus|null} [pscConnectionStatus] PscConnection pscConnectionStatus + * @property {google.cloud.redis.cluster.v1.ConnectionType|null} [connectionType] PscConnection connectionType + */ + + /** + * Constructs a new PscConnection. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a PscConnection. + * @implements IPscConnection + * @constructor + * @param {google.cloud.redis.cluster.v1.IPscConnection=} [properties] Properties to set + */ + function PscConnection(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PscConnection pscConnectionId. + * @member {string} pscConnectionId + * @memberof google.cloud.redis.cluster.v1.PscConnection + * @instance + */ + PscConnection.prototype.pscConnectionId = ""; + + /** + * PscConnection address. + * @member {string} address + * @memberof google.cloud.redis.cluster.v1.PscConnection + * @instance + */ + PscConnection.prototype.address = ""; + + /** + * PscConnection forwardingRule. + * @member {string} forwardingRule + * @memberof google.cloud.redis.cluster.v1.PscConnection + * @instance + */ + PscConnection.prototype.forwardingRule = ""; + + /** + * PscConnection projectId. + * @member {string} projectId + * @memberof google.cloud.redis.cluster.v1.PscConnection + * @instance + */ + PscConnection.prototype.projectId = ""; + + /** + * PscConnection network. + * @member {string} network + * @memberof google.cloud.redis.cluster.v1.PscConnection + * @instance + */ + PscConnection.prototype.network = ""; + + /** + * PscConnection serviceAttachment. + * @member {string} serviceAttachment + * @memberof google.cloud.redis.cluster.v1.PscConnection + * @instance + */ + PscConnection.prototype.serviceAttachment = ""; + + /** + * PscConnection pscConnectionStatus. + * @member {google.cloud.redis.cluster.v1.PscConnectionStatus} pscConnectionStatus + * @memberof google.cloud.redis.cluster.v1.PscConnection + * @instance + */ + PscConnection.prototype.pscConnectionStatus = 0; + + /** + * PscConnection connectionType. + * @member {google.cloud.redis.cluster.v1.ConnectionType} connectionType + * @memberof google.cloud.redis.cluster.v1.PscConnection + * @instance + */ + PscConnection.prototype.connectionType = 0; + + /** + * Creates a new PscConnection instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.PscConnection + * @static + * @param {google.cloud.redis.cluster.v1.IPscConnection=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.PscConnection} PscConnection instance + */ + PscConnection.create = function create(properties) { + return new PscConnection(properties); + }; + + /** + * Encodes the specified PscConnection message. Does not implicitly {@link google.cloud.redis.cluster.v1.PscConnection.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.PscConnection + * @static + * @param {google.cloud.redis.cluster.v1.IPscConnection} message PscConnection message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PscConnection.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.pscConnectionId != null && Object.hasOwnProperty.call(message, "pscConnectionId")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.pscConnectionId); + if (message.address != null && Object.hasOwnProperty.call(message, "address")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.address); + if (message.forwardingRule != null && Object.hasOwnProperty.call(message, "forwardingRule")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.forwardingRule); + if (message.projectId != null && Object.hasOwnProperty.call(message, "projectId")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.projectId); + if (message.network != null && Object.hasOwnProperty.call(message, "network")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.network); + if (message.serviceAttachment != null && Object.hasOwnProperty.call(message, "serviceAttachment")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.serviceAttachment); + if (message.pscConnectionStatus != null && Object.hasOwnProperty.call(message, "pscConnectionStatus")) + writer.uint32(/* id 8, wireType 0 =*/64).int32(message.pscConnectionStatus); + if (message.connectionType != null && Object.hasOwnProperty.call(message, "connectionType")) + writer.uint32(/* id 10, wireType 0 =*/80).int32(message.connectionType); + return writer; + }; + + /** + * Encodes the specified PscConnection message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.PscConnection.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.PscConnection + * @static + * @param {google.cloud.redis.cluster.v1.IPscConnection} message PscConnection message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PscConnection.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PscConnection message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.PscConnection + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.PscConnection} PscConnection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PscConnection.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.PscConnection(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.pscConnectionId = reader.string(); + break; + } + case 2: { + message.address = reader.string(); + break; + } + case 3: { + message.forwardingRule = reader.string(); + break; + } + case 4: { + message.projectId = reader.string(); + break; + } + case 5: { + message.network = reader.string(); + break; + } + case 6: { + message.serviceAttachment = reader.string(); + break; + } + case 8: { + message.pscConnectionStatus = reader.int32(); + break; + } + case 10: { + message.connectionType = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PscConnection message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.PscConnection + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.PscConnection} PscConnection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PscConnection.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PscConnection message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.PscConnection + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PscConnection.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.pscConnectionId != null && message.hasOwnProperty("pscConnectionId")) + if (!$util.isString(message.pscConnectionId)) + return "pscConnectionId: string expected"; + if (message.address != null && message.hasOwnProperty("address")) + if (!$util.isString(message.address)) + return "address: string expected"; + if (message.forwardingRule != null && message.hasOwnProperty("forwardingRule")) + if (!$util.isString(message.forwardingRule)) + return "forwardingRule: string expected"; + if (message.projectId != null && message.hasOwnProperty("projectId")) + if (!$util.isString(message.projectId)) + return "projectId: string expected"; + if (message.network != null && message.hasOwnProperty("network")) + if (!$util.isString(message.network)) + return "network: string expected"; + if (message.serviceAttachment != null && message.hasOwnProperty("serviceAttachment")) + if (!$util.isString(message.serviceAttachment)) + return "serviceAttachment: string expected"; + if (message.pscConnectionStatus != null && message.hasOwnProperty("pscConnectionStatus")) + switch (message.pscConnectionStatus) { + default: + return "pscConnectionStatus: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.connectionType != null && message.hasOwnProperty("connectionType")) + switch (message.connectionType) { + default: + return "connectionType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + return null; + }; + + /** + * Creates a PscConnection message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.PscConnection + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.PscConnection} PscConnection + */ + PscConnection.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.PscConnection) + return object; + var message = new $root.google.cloud.redis.cluster.v1.PscConnection(); + if (object.pscConnectionId != null) + message.pscConnectionId = String(object.pscConnectionId); + if (object.address != null) + message.address = String(object.address); + if (object.forwardingRule != null) + message.forwardingRule = String(object.forwardingRule); + if (object.projectId != null) + message.projectId = String(object.projectId); + if (object.network != null) + message.network = String(object.network); + if (object.serviceAttachment != null) + message.serviceAttachment = String(object.serviceAttachment); + switch (object.pscConnectionStatus) { + default: + if (typeof object.pscConnectionStatus === "number") { + message.pscConnectionStatus = object.pscConnectionStatus; + break; + } + break; + case "PSC_CONNECTION_STATUS_UNSPECIFIED": + case 0: + message.pscConnectionStatus = 0; + break; + case "PSC_CONNECTION_STATUS_ACTIVE": + case 1: + message.pscConnectionStatus = 1; + break; + case "PSC_CONNECTION_STATUS_NOT_FOUND": + case 2: + message.pscConnectionStatus = 2; + break; + } + switch (object.connectionType) { + default: + if (typeof object.connectionType === "number") { + message.connectionType = object.connectionType; + break; + } + break; + case "CONNECTION_TYPE_UNSPECIFIED": + case 0: + message.connectionType = 0; + break; + case "CONNECTION_TYPE_DISCOVERY": + case 1: + message.connectionType = 1; + break; + case "CONNECTION_TYPE_PRIMARY": + case 2: + message.connectionType = 2; + break; + case "CONNECTION_TYPE_READER": + case 3: + message.connectionType = 3; + break; + } + return message; + }; + + /** + * Creates a plain object from a PscConnection message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.PscConnection + * @static + * @param {google.cloud.redis.cluster.v1.PscConnection} message PscConnection + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PscConnection.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.pscConnectionId = ""; + object.address = ""; + object.forwardingRule = ""; + object.projectId = ""; + object.network = ""; + object.serviceAttachment = ""; + object.pscConnectionStatus = options.enums === String ? "PSC_CONNECTION_STATUS_UNSPECIFIED" : 0; + object.connectionType = options.enums === String ? "CONNECTION_TYPE_UNSPECIFIED" : 0; + } + if (message.pscConnectionId != null && message.hasOwnProperty("pscConnectionId")) + object.pscConnectionId = message.pscConnectionId; + if (message.address != null && message.hasOwnProperty("address")) + object.address = message.address; + if (message.forwardingRule != null && message.hasOwnProperty("forwardingRule")) + object.forwardingRule = message.forwardingRule; + if (message.projectId != null && message.hasOwnProperty("projectId")) + object.projectId = message.projectId; + if (message.network != null && message.hasOwnProperty("network")) + object.network = message.network; + if (message.serviceAttachment != null && message.hasOwnProperty("serviceAttachment")) + object.serviceAttachment = message.serviceAttachment; + if (message.pscConnectionStatus != null && message.hasOwnProperty("pscConnectionStatus")) + object.pscConnectionStatus = options.enums === String ? $root.google.cloud.redis.cluster.v1.PscConnectionStatus[message.pscConnectionStatus] === undefined ? message.pscConnectionStatus : $root.google.cloud.redis.cluster.v1.PscConnectionStatus[message.pscConnectionStatus] : message.pscConnectionStatus; + if (message.connectionType != null && message.hasOwnProperty("connectionType")) + object.connectionType = options.enums === String ? $root.google.cloud.redis.cluster.v1.ConnectionType[message.connectionType] === undefined ? message.connectionType : $root.google.cloud.redis.cluster.v1.ConnectionType[message.connectionType] : message.connectionType; + return object; + }; + + /** + * Converts this PscConnection to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.PscConnection + * @instance + * @returns {Object.} JSON object + */ + PscConnection.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for PscConnection + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.PscConnection + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + PscConnection.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.PscConnection"; + }; + + return PscConnection; + })(); + + v1.ClusterEndpoint = (function() { + + /** + * Properties of a ClusterEndpoint. + * @memberof google.cloud.redis.cluster.v1 + * @interface IClusterEndpoint + * @property {Array.|null} [connections] ClusterEndpoint connections + */ + + /** + * Constructs a new ClusterEndpoint. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a ClusterEndpoint. + * @implements IClusterEndpoint + * @constructor + * @param {google.cloud.redis.cluster.v1.IClusterEndpoint=} [properties] Properties to set + */ + function ClusterEndpoint(properties) { + this.connections = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ClusterEndpoint connections. + * @member {Array.} connections + * @memberof google.cloud.redis.cluster.v1.ClusterEndpoint + * @instance + */ + ClusterEndpoint.prototype.connections = $util.emptyArray; + + /** + * Creates a new ClusterEndpoint instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.ClusterEndpoint + * @static + * @param {google.cloud.redis.cluster.v1.IClusterEndpoint=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.ClusterEndpoint} ClusterEndpoint instance + */ + ClusterEndpoint.create = function create(properties) { + return new ClusterEndpoint(properties); + }; + + /** + * Encodes the specified ClusterEndpoint message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterEndpoint.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.ClusterEndpoint + * @static + * @param {google.cloud.redis.cluster.v1.IClusterEndpoint} message ClusterEndpoint message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ClusterEndpoint.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.connections != null && message.connections.length) + for (var i = 0; i < message.connections.length; ++i) + $root.google.cloud.redis.cluster.v1.ConnectionDetail.encode(message.connections[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ClusterEndpoint message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterEndpoint.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.ClusterEndpoint + * @static + * @param {google.cloud.redis.cluster.v1.IClusterEndpoint} message ClusterEndpoint message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ClusterEndpoint.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ClusterEndpoint message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.ClusterEndpoint + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.ClusterEndpoint} ClusterEndpoint + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ClusterEndpoint.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.ClusterEndpoint(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (!(message.connections && message.connections.length)) + message.connections = []; + message.connections.push($root.google.cloud.redis.cluster.v1.ConnectionDetail.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ClusterEndpoint message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.ClusterEndpoint + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.ClusterEndpoint} ClusterEndpoint + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ClusterEndpoint.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ClusterEndpoint message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.ClusterEndpoint + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ClusterEndpoint.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.connections != null && message.hasOwnProperty("connections")) { + if (!Array.isArray(message.connections)) + return "connections: array expected"; + for (var i = 0; i < message.connections.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1.ConnectionDetail.verify(message.connections[i]); + if (error) + return "connections." + error; + } + } + return null; + }; + + /** + * Creates a ClusterEndpoint message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.ClusterEndpoint + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.ClusterEndpoint} ClusterEndpoint + */ + ClusterEndpoint.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.ClusterEndpoint) + return object; + var message = new $root.google.cloud.redis.cluster.v1.ClusterEndpoint(); + if (object.connections) { + if (!Array.isArray(object.connections)) + throw TypeError(".google.cloud.redis.cluster.v1.ClusterEndpoint.connections: array expected"); + message.connections = []; + for (var i = 0; i < object.connections.length; ++i) { + if (typeof object.connections[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.ClusterEndpoint.connections: object expected"); + message.connections[i] = $root.google.cloud.redis.cluster.v1.ConnectionDetail.fromObject(object.connections[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a ClusterEndpoint message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.ClusterEndpoint + * @static + * @param {google.cloud.redis.cluster.v1.ClusterEndpoint} message ClusterEndpoint + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ClusterEndpoint.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.connections = []; + if (message.connections && message.connections.length) { + object.connections = []; + for (var j = 0; j < message.connections.length; ++j) + object.connections[j] = $root.google.cloud.redis.cluster.v1.ConnectionDetail.toObject(message.connections[j], options); + } + return object; + }; + + /** + * Converts this ClusterEndpoint to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.ClusterEndpoint + * @instance + * @returns {Object.} JSON object + */ + ClusterEndpoint.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ClusterEndpoint + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.ClusterEndpoint + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ClusterEndpoint.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.ClusterEndpoint"; + }; + + return ClusterEndpoint; + })(); + + v1.ConnectionDetail = (function() { + + /** + * Properties of a ConnectionDetail. + * @memberof google.cloud.redis.cluster.v1 + * @interface IConnectionDetail + * @property {google.cloud.redis.cluster.v1.IPscAutoConnection|null} [pscAutoConnection] ConnectionDetail pscAutoConnection + * @property {google.cloud.redis.cluster.v1.IPscConnection|null} [pscConnection] ConnectionDetail pscConnection + */ + + /** + * Constructs a new ConnectionDetail. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a ConnectionDetail. + * @implements IConnectionDetail + * @constructor + * @param {google.cloud.redis.cluster.v1.IConnectionDetail=} [properties] Properties to set + */ + function ConnectionDetail(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ConnectionDetail pscAutoConnection. + * @member {google.cloud.redis.cluster.v1.IPscAutoConnection|null|undefined} pscAutoConnection + * @memberof google.cloud.redis.cluster.v1.ConnectionDetail + * @instance + */ + ConnectionDetail.prototype.pscAutoConnection = null; + + /** + * ConnectionDetail pscConnection. + * @member {google.cloud.redis.cluster.v1.IPscConnection|null|undefined} pscConnection + * @memberof google.cloud.redis.cluster.v1.ConnectionDetail + * @instance + */ + ConnectionDetail.prototype.pscConnection = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * ConnectionDetail connection. + * @member {"pscAutoConnection"|"pscConnection"|undefined} connection + * @memberof google.cloud.redis.cluster.v1.ConnectionDetail + * @instance + */ + Object.defineProperty(ConnectionDetail.prototype, "connection", { + get: $util.oneOfGetter($oneOfFields = ["pscAutoConnection", "pscConnection"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new ConnectionDetail instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.ConnectionDetail + * @static + * @param {google.cloud.redis.cluster.v1.IConnectionDetail=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.ConnectionDetail} ConnectionDetail instance + */ + ConnectionDetail.create = function create(properties) { + return new ConnectionDetail(properties); + }; + + /** + * Encodes the specified ConnectionDetail message. Does not implicitly {@link google.cloud.redis.cluster.v1.ConnectionDetail.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.ConnectionDetail + * @static + * @param {google.cloud.redis.cluster.v1.IConnectionDetail} message ConnectionDetail message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ConnectionDetail.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.pscAutoConnection != null && Object.hasOwnProperty.call(message, "pscAutoConnection")) + $root.google.cloud.redis.cluster.v1.PscAutoConnection.encode(message.pscAutoConnection, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.pscConnection != null && Object.hasOwnProperty.call(message, "pscConnection")) + $root.google.cloud.redis.cluster.v1.PscConnection.encode(message.pscConnection, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ConnectionDetail message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ConnectionDetail.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.ConnectionDetail + * @static + * @param {google.cloud.redis.cluster.v1.IConnectionDetail} message ConnectionDetail message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ConnectionDetail.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ConnectionDetail message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.ConnectionDetail + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.ConnectionDetail} ConnectionDetail + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ConnectionDetail.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.ConnectionDetail(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.pscAutoConnection = $root.google.cloud.redis.cluster.v1.PscAutoConnection.decode(reader, reader.uint32()); + break; + } + case 2: { + message.pscConnection = $root.google.cloud.redis.cluster.v1.PscConnection.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ConnectionDetail message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.ConnectionDetail + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.ConnectionDetail} ConnectionDetail + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ConnectionDetail.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ConnectionDetail message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.ConnectionDetail + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ConnectionDetail.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.pscAutoConnection != null && message.hasOwnProperty("pscAutoConnection")) { + properties.connection = 1; + { + var error = $root.google.cloud.redis.cluster.v1.PscAutoConnection.verify(message.pscAutoConnection); + if (error) + return "pscAutoConnection." + error; + } + } + if (message.pscConnection != null && message.hasOwnProperty("pscConnection")) { + if (properties.connection === 1) + return "connection: multiple values"; + properties.connection = 1; + { + var error = $root.google.cloud.redis.cluster.v1.PscConnection.verify(message.pscConnection); + if (error) + return "pscConnection." + error; + } + } + return null; + }; + + /** + * Creates a ConnectionDetail message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.ConnectionDetail + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.ConnectionDetail} ConnectionDetail + */ + ConnectionDetail.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.ConnectionDetail) + return object; + var message = new $root.google.cloud.redis.cluster.v1.ConnectionDetail(); + if (object.pscAutoConnection != null) { + if (typeof object.pscAutoConnection !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.ConnectionDetail.pscAutoConnection: object expected"); + message.pscAutoConnection = $root.google.cloud.redis.cluster.v1.PscAutoConnection.fromObject(object.pscAutoConnection); + } + if (object.pscConnection != null) { + if (typeof object.pscConnection !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.ConnectionDetail.pscConnection: object expected"); + message.pscConnection = $root.google.cloud.redis.cluster.v1.PscConnection.fromObject(object.pscConnection); + } + return message; + }; + + /** + * Creates a plain object from a ConnectionDetail message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.ConnectionDetail + * @static + * @param {google.cloud.redis.cluster.v1.ConnectionDetail} message ConnectionDetail + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ConnectionDetail.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.pscAutoConnection != null && message.hasOwnProperty("pscAutoConnection")) { + object.pscAutoConnection = $root.google.cloud.redis.cluster.v1.PscAutoConnection.toObject(message.pscAutoConnection, options); + if (options.oneofs) + object.connection = "pscAutoConnection"; + } + if (message.pscConnection != null && message.hasOwnProperty("pscConnection")) { + object.pscConnection = $root.google.cloud.redis.cluster.v1.PscConnection.toObject(message.pscConnection, options); + if (options.oneofs) + object.connection = "pscConnection"; + } + return object; + }; + + /** + * Converts this ConnectionDetail to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.ConnectionDetail + * @instance + * @returns {Object.} JSON object + */ + ConnectionDetail.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ConnectionDetail + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.ConnectionDetail + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ConnectionDetail.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.ConnectionDetail"; + }; + + return ConnectionDetail; + })(); + + v1.PscAutoConnection = (function() { + + /** + * Properties of a PscAutoConnection. + * @memberof google.cloud.redis.cluster.v1 + * @interface IPscAutoConnection + * @property {string|null} [pscConnectionId] PscAutoConnection pscConnectionId + * @property {string|null} [address] PscAutoConnection address + * @property {string|null} [forwardingRule] PscAutoConnection forwardingRule + * @property {string|null} [projectId] PscAutoConnection projectId + * @property {string|null} [network] PscAutoConnection network + * @property {string|null} [serviceAttachment] PscAutoConnection serviceAttachment + * @property {google.cloud.redis.cluster.v1.PscConnectionStatus|null} [pscConnectionStatus] PscAutoConnection pscConnectionStatus + * @property {google.cloud.redis.cluster.v1.ConnectionType|null} [connectionType] PscAutoConnection connectionType + */ + + /** + * Constructs a new PscAutoConnection. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a PscAutoConnection. + * @implements IPscAutoConnection + * @constructor + * @param {google.cloud.redis.cluster.v1.IPscAutoConnection=} [properties] Properties to set + */ + function PscAutoConnection(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PscAutoConnection pscConnectionId. + * @member {string} pscConnectionId + * @memberof google.cloud.redis.cluster.v1.PscAutoConnection + * @instance + */ + PscAutoConnection.prototype.pscConnectionId = ""; + + /** + * PscAutoConnection address. + * @member {string} address + * @memberof google.cloud.redis.cluster.v1.PscAutoConnection + * @instance + */ + PscAutoConnection.prototype.address = ""; + + /** + * PscAutoConnection forwardingRule. + * @member {string} forwardingRule + * @memberof google.cloud.redis.cluster.v1.PscAutoConnection + * @instance + */ + PscAutoConnection.prototype.forwardingRule = ""; + + /** + * PscAutoConnection projectId. + * @member {string} projectId + * @memberof google.cloud.redis.cluster.v1.PscAutoConnection + * @instance + */ + PscAutoConnection.prototype.projectId = ""; + + /** + * PscAutoConnection network. + * @member {string} network + * @memberof google.cloud.redis.cluster.v1.PscAutoConnection + * @instance + */ + PscAutoConnection.prototype.network = ""; + + /** + * PscAutoConnection serviceAttachment. + * @member {string} serviceAttachment + * @memberof google.cloud.redis.cluster.v1.PscAutoConnection + * @instance + */ + PscAutoConnection.prototype.serviceAttachment = ""; + + /** + * PscAutoConnection pscConnectionStatus. + * @member {google.cloud.redis.cluster.v1.PscConnectionStatus} pscConnectionStatus + * @memberof google.cloud.redis.cluster.v1.PscAutoConnection + * @instance + */ + PscAutoConnection.prototype.pscConnectionStatus = 0; + + /** + * PscAutoConnection connectionType. + * @member {google.cloud.redis.cluster.v1.ConnectionType} connectionType + * @memberof google.cloud.redis.cluster.v1.PscAutoConnection + * @instance + */ + PscAutoConnection.prototype.connectionType = 0; + + /** + * Creates a new PscAutoConnection instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.PscAutoConnection + * @static + * @param {google.cloud.redis.cluster.v1.IPscAutoConnection=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.PscAutoConnection} PscAutoConnection instance + */ + PscAutoConnection.create = function create(properties) { + return new PscAutoConnection(properties); + }; + + /** + * Encodes the specified PscAutoConnection message. Does not implicitly {@link google.cloud.redis.cluster.v1.PscAutoConnection.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.PscAutoConnection + * @static + * @param {google.cloud.redis.cluster.v1.IPscAutoConnection} message PscAutoConnection message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PscAutoConnection.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.pscConnectionId != null && Object.hasOwnProperty.call(message, "pscConnectionId")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.pscConnectionId); + if (message.address != null && Object.hasOwnProperty.call(message, "address")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.address); + if (message.forwardingRule != null && Object.hasOwnProperty.call(message, "forwardingRule")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.forwardingRule); + if (message.projectId != null && Object.hasOwnProperty.call(message, "projectId")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.projectId); + if (message.network != null && Object.hasOwnProperty.call(message, "network")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.network); + if (message.serviceAttachment != null && Object.hasOwnProperty.call(message, "serviceAttachment")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.serviceAttachment); + if (message.pscConnectionStatus != null && Object.hasOwnProperty.call(message, "pscConnectionStatus")) + writer.uint32(/* id 8, wireType 0 =*/64).int32(message.pscConnectionStatus); + if (message.connectionType != null && Object.hasOwnProperty.call(message, "connectionType")) + writer.uint32(/* id 9, wireType 0 =*/72).int32(message.connectionType); + return writer; + }; + + /** + * Encodes the specified PscAutoConnection message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.PscAutoConnection.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.PscAutoConnection + * @static + * @param {google.cloud.redis.cluster.v1.IPscAutoConnection} message PscAutoConnection message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PscAutoConnection.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PscAutoConnection message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.PscAutoConnection + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.PscAutoConnection} PscAutoConnection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PscAutoConnection.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.PscAutoConnection(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.pscConnectionId = reader.string(); + break; + } + case 2: { + message.address = reader.string(); + break; + } + case 3: { + message.forwardingRule = reader.string(); + break; + } + case 4: { + message.projectId = reader.string(); + break; + } + case 5: { + message.network = reader.string(); + break; + } + case 6: { + message.serviceAttachment = reader.string(); + break; + } + case 8: { + message.pscConnectionStatus = reader.int32(); + break; + } + case 9: { + message.connectionType = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PscAutoConnection message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.PscAutoConnection + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.PscAutoConnection} PscAutoConnection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PscAutoConnection.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PscAutoConnection message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.PscAutoConnection + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PscAutoConnection.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.pscConnectionId != null && message.hasOwnProperty("pscConnectionId")) + if (!$util.isString(message.pscConnectionId)) + return "pscConnectionId: string expected"; + if (message.address != null && message.hasOwnProperty("address")) + if (!$util.isString(message.address)) + return "address: string expected"; + if (message.forwardingRule != null && message.hasOwnProperty("forwardingRule")) + if (!$util.isString(message.forwardingRule)) + return "forwardingRule: string expected"; + if (message.projectId != null && message.hasOwnProperty("projectId")) + if (!$util.isString(message.projectId)) + return "projectId: string expected"; + if (message.network != null && message.hasOwnProperty("network")) + if (!$util.isString(message.network)) + return "network: string expected"; + if (message.serviceAttachment != null && message.hasOwnProperty("serviceAttachment")) + if (!$util.isString(message.serviceAttachment)) + return "serviceAttachment: string expected"; + if (message.pscConnectionStatus != null && message.hasOwnProperty("pscConnectionStatus")) + switch (message.pscConnectionStatus) { + default: + return "pscConnectionStatus: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.connectionType != null && message.hasOwnProperty("connectionType")) + switch (message.connectionType) { + default: + return "connectionType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + return null; + }; + + /** + * Creates a PscAutoConnection message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.PscAutoConnection + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.PscAutoConnection} PscAutoConnection + */ + PscAutoConnection.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.PscAutoConnection) + return object; + var message = new $root.google.cloud.redis.cluster.v1.PscAutoConnection(); + if (object.pscConnectionId != null) + message.pscConnectionId = String(object.pscConnectionId); + if (object.address != null) + message.address = String(object.address); + if (object.forwardingRule != null) + message.forwardingRule = String(object.forwardingRule); + if (object.projectId != null) + message.projectId = String(object.projectId); + if (object.network != null) + message.network = String(object.network); + if (object.serviceAttachment != null) + message.serviceAttachment = String(object.serviceAttachment); + switch (object.pscConnectionStatus) { + default: + if (typeof object.pscConnectionStatus === "number") { + message.pscConnectionStatus = object.pscConnectionStatus; + break; + } + break; + case "PSC_CONNECTION_STATUS_UNSPECIFIED": + case 0: + message.pscConnectionStatus = 0; + break; + case "PSC_CONNECTION_STATUS_ACTIVE": + case 1: + message.pscConnectionStatus = 1; + break; + case "PSC_CONNECTION_STATUS_NOT_FOUND": + case 2: + message.pscConnectionStatus = 2; + break; + } + switch (object.connectionType) { + default: + if (typeof object.connectionType === "number") { + message.connectionType = object.connectionType; + break; + } + break; + case "CONNECTION_TYPE_UNSPECIFIED": + case 0: + message.connectionType = 0; + break; + case "CONNECTION_TYPE_DISCOVERY": + case 1: + message.connectionType = 1; + break; + case "CONNECTION_TYPE_PRIMARY": + case 2: + message.connectionType = 2; + break; + case "CONNECTION_TYPE_READER": + case 3: + message.connectionType = 3; + break; + } + return message; + }; + + /** + * Creates a plain object from a PscAutoConnection message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.PscAutoConnection + * @static + * @param {google.cloud.redis.cluster.v1.PscAutoConnection} message PscAutoConnection + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PscAutoConnection.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.pscConnectionId = ""; + object.address = ""; + object.forwardingRule = ""; + object.projectId = ""; + object.network = ""; + object.serviceAttachment = ""; + object.pscConnectionStatus = options.enums === String ? "PSC_CONNECTION_STATUS_UNSPECIFIED" : 0; + object.connectionType = options.enums === String ? "CONNECTION_TYPE_UNSPECIFIED" : 0; + } + if (message.pscConnectionId != null && message.hasOwnProperty("pscConnectionId")) + object.pscConnectionId = message.pscConnectionId; + if (message.address != null && message.hasOwnProperty("address")) + object.address = message.address; + if (message.forwardingRule != null && message.hasOwnProperty("forwardingRule")) + object.forwardingRule = message.forwardingRule; + if (message.projectId != null && message.hasOwnProperty("projectId")) + object.projectId = message.projectId; + if (message.network != null && message.hasOwnProperty("network")) + object.network = message.network; + if (message.serviceAttachment != null && message.hasOwnProperty("serviceAttachment")) + object.serviceAttachment = message.serviceAttachment; + if (message.pscConnectionStatus != null && message.hasOwnProperty("pscConnectionStatus")) + object.pscConnectionStatus = options.enums === String ? $root.google.cloud.redis.cluster.v1.PscConnectionStatus[message.pscConnectionStatus] === undefined ? message.pscConnectionStatus : $root.google.cloud.redis.cluster.v1.PscConnectionStatus[message.pscConnectionStatus] : message.pscConnectionStatus; + if (message.connectionType != null && message.hasOwnProperty("connectionType")) + object.connectionType = options.enums === String ? $root.google.cloud.redis.cluster.v1.ConnectionType[message.connectionType] === undefined ? message.connectionType : $root.google.cloud.redis.cluster.v1.ConnectionType[message.connectionType] : message.connectionType; + return object; + }; + + /** + * Converts this PscAutoConnection to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.PscAutoConnection + * @instance + * @returns {Object.} JSON object + */ + PscAutoConnection.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for PscAutoConnection + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.PscAutoConnection + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + PscAutoConnection.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.PscAutoConnection"; + }; + + return PscAutoConnection; + })(); + + v1.OperationMetadata = (function() { + + /** + * Properties of an OperationMetadata. + * @memberof google.cloud.redis.cluster.v1 + * @interface IOperationMetadata + * @property {google.protobuf.ITimestamp|null} [createTime] OperationMetadata createTime + * @property {google.protobuf.ITimestamp|null} [endTime] OperationMetadata endTime + * @property {string|null} [target] OperationMetadata target + * @property {string|null} [verb] OperationMetadata verb + * @property {string|null} [statusMessage] OperationMetadata statusMessage + * @property {boolean|null} [requestedCancellation] OperationMetadata requestedCancellation + * @property {string|null} [apiVersion] OperationMetadata apiVersion + */ + + /** + * Constructs a new OperationMetadata. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents an OperationMetadata. + * @implements IOperationMetadata + * @constructor + * @param {google.cloud.redis.cluster.v1.IOperationMetadata=} [properties] Properties to set + */ + function OperationMetadata(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * OperationMetadata createTime. + * @member {google.protobuf.ITimestamp|null|undefined} createTime + * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @instance + */ + OperationMetadata.prototype.createTime = null; + + /** + * OperationMetadata endTime. + * @member {google.protobuf.ITimestamp|null|undefined} endTime + * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @instance + */ + OperationMetadata.prototype.endTime = null; + + /** + * OperationMetadata target. + * @member {string} target + * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @instance + */ + OperationMetadata.prototype.target = ""; + + /** + * OperationMetadata verb. + * @member {string} verb + * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @instance + */ + OperationMetadata.prototype.verb = ""; + + /** + * OperationMetadata statusMessage. + * @member {string} statusMessage + * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @instance + */ + OperationMetadata.prototype.statusMessage = ""; + + /** + * OperationMetadata requestedCancellation. + * @member {boolean} requestedCancellation + * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @instance + */ + OperationMetadata.prototype.requestedCancellation = false; + + /** + * OperationMetadata apiVersion. + * @member {string} apiVersion + * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @instance + */ + OperationMetadata.prototype.apiVersion = ""; + + /** + * Creates a new OperationMetadata instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @static + * @param {google.cloud.redis.cluster.v1.IOperationMetadata=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.OperationMetadata} OperationMetadata instance + */ + OperationMetadata.create = function create(properties) { + return new OperationMetadata(properties); + }; + + /** + * Encodes the specified OperationMetadata message. Does not implicitly {@link google.cloud.redis.cluster.v1.OperationMetadata.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @static + * @param {google.cloud.redis.cluster.v1.IOperationMetadata} message OperationMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + OperationMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) + $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) + $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.target != null && Object.hasOwnProperty.call(message, "target")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.target); + if (message.verb != null && Object.hasOwnProperty.call(message, "verb")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.verb); + if (message.statusMessage != null && Object.hasOwnProperty.call(message, "statusMessage")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.statusMessage); + if (message.requestedCancellation != null && Object.hasOwnProperty.call(message, "requestedCancellation")) + writer.uint32(/* id 6, wireType 0 =*/48).bool(message.requestedCancellation); + if (message.apiVersion != null && Object.hasOwnProperty.call(message, "apiVersion")) + writer.uint32(/* id 7, wireType 2 =*/58).string(message.apiVersion); + return writer; + }; + + /** + * Encodes the specified OperationMetadata message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.OperationMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @static + * @param {google.cloud.redis.cluster.v1.IOperationMetadata} message OperationMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + OperationMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an OperationMetadata message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.OperationMetadata} OperationMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + OperationMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.OperationMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 2: { + message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 3: { + message.target = reader.string(); + break; + } + case 4: { + message.verb = reader.string(); + break; + } + case 5: { + message.statusMessage = reader.string(); + break; + } + case 6: { + message.requestedCancellation = reader.bool(); + break; + } + case 7: { + message.apiVersion = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an OperationMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.OperationMetadata} OperationMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + OperationMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an OperationMetadata message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + OperationMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.createTime != null && message.hasOwnProperty("createTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.createTime); + if (error) + return "createTime." + error; + } + if (message.endTime != null && message.hasOwnProperty("endTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.endTime); + if (error) + return "endTime." + error; + } + if (message.target != null && message.hasOwnProperty("target")) + if (!$util.isString(message.target)) + return "target: string expected"; + if (message.verb != null && message.hasOwnProperty("verb")) + if (!$util.isString(message.verb)) + return "verb: string expected"; + if (message.statusMessage != null && message.hasOwnProperty("statusMessage")) + if (!$util.isString(message.statusMessage)) + return "statusMessage: string expected"; + if (message.requestedCancellation != null && message.hasOwnProperty("requestedCancellation")) + if (typeof message.requestedCancellation !== "boolean") + return "requestedCancellation: boolean expected"; + if (message.apiVersion != null && message.hasOwnProperty("apiVersion")) + if (!$util.isString(message.apiVersion)) + return "apiVersion: string expected"; + return null; + }; + + /** + * Creates an OperationMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.OperationMetadata} OperationMetadata + */ + OperationMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.OperationMetadata) + return object; + var message = new $root.google.cloud.redis.cluster.v1.OperationMetadata(); + if (object.createTime != null) { + if (typeof object.createTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.OperationMetadata.createTime: object expected"); + message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime); + } + if (object.endTime != null) { + if (typeof object.endTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.OperationMetadata.endTime: object expected"); + message.endTime = $root.google.protobuf.Timestamp.fromObject(object.endTime); + } + if (object.target != null) + message.target = String(object.target); + if (object.verb != null) + message.verb = String(object.verb); + if (object.statusMessage != null) + message.statusMessage = String(object.statusMessage); + if (object.requestedCancellation != null) + message.requestedCancellation = Boolean(object.requestedCancellation); + if (object.apiVersion != null) + message.apiVersion = String(object.apiVersion); + return message; + }; + + /** + * Creates a plain object from an OperationMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @static + * @param {google.cloud.redis.cluster.v1.OperationMetadata} message OperationMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + OperationMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.createTime = null; + object.endTime = null; + object.target = ""; + object.verb = ""; + object.statusMessage = ""; + object.requestedCancellation = false; + object.apiVersion = ""; + } + if (message.createTime != null && message.hasOwnProperty("createTime")) + object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options); + if (message.endTime != null && message.hasOwnProperty("endTime")) + object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options); + if (message.target != null && message.hasOwnProperty("target")) + object.target = message.target; + if (message.verb != null && message.hasOwnProperty("verb")) + object.verb = message.verb; + if (message.statusMessage != null && message.hasOwnProperty("statusMessage")) + object.statusMessage = message.statusMessage; + if (message.requestedCancellation != null && message.hasOwnProperty("requestedCancellation")) + object.requestedCancellation = message.requestedCancellation; + if (message.apiVersion != null && message.hasOwnProperty("apiVersion")) + object.apiVersion = message.apiVersion; + return object; + }; + + /** + * Converts this OperationMetadata to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @instance + * @returns {Object.} JSON object + */ + OperationMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for OperationMetadata + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.OperationMetadata + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + OperationMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.OperationMetadata"; + }; + + return OperationMetadata; + })(); + + v1.CertificateAuthority = (function() { + + /** + * Properties of a CertificateAuthority. + * @memberof google.cloud.redis.cluster.v1 + * @interface ICertificateAuthority + * @property {google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority|null} [managedServerCa] CertificateAuthority managedServerCa + * @property {string|null} [name] CertificateAuthority name + */ + + /** + * Constructs a new CertificateAuthority. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a CertificateAuthority. + * @implements ICertificateAuthority + * @constructor + * @param {google.cloud.redis.cluster.v1.ICertificateAuthority=} [properties] Properties to set + */ + function CertificateAuthority(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CertificateAuthority managedServerCa. + * @member {google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority|null|undefined} managedServerCa + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @instance + */ + CertificateAuthority.prototype.managedServerCa = null; + + /** + * CertificateAuthority name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @instance + */ + CertificateAuthority.prototype.name = ""; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * CertificateAuthority serverCa. + * @member {"managedServerCa"|undefined} serverCa + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @instance + */ + Object.defineProperty(CertificateAuthority.prototype, "serverCa", { + get: $util.oneOfGetter($oneOfFields = ["managedServerCa"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new CertificateAuthority instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @static + * @param {google.cloud.redis.cluster.v1.ICertificateAuthority=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.CertificateAuthority} CertificateAuthority instance + */ + CertificateAuthority.create = function create(properties) { + return new CertificateAuthority(properties); + }; + + /** + * Encodes the specified CertificateAuthority message. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @static + * @param {google.cloud.redis.cluster.v1.ICertificateAuthority} message CertificateAuthority message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CertificateAuthority.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.managedServerCa != null && Object.hasOwnProperty.call(message, "managedServerCa")) + $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.encode(message.managedServerCa, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.name); + return writer; + }; + + /** + * Encodes the specified CertificateAuthority message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @static + * @param {google.cloud.redis.cluster.v1.ICertificateAuthority} message CertificateAuthority message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CertificateAuthority.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CertificateAuthority message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.CertificateAuthority} CertificateAuthority + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CertificateAuthority.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.CertificateAuthority(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.managedServerCa = $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.decode(reader, reader.uint32()); + break; + } + case 2: { + message.name = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CertificateAuthority message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.CertificateAuthority} CertificateAuthority + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CertificateAuthority.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CertificateAuthority message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CertificateAuthority.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.managedServerCa != null && message.hasOwnProperty("managedServerCa")) { + properties.serverCa = 1; + { + var error = $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.verify(message.managedServerCa); + if (error) + return "managedServerCa." + error; + } + } + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + return null; + }; + + /** + * Creates a CertificateAuthority message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.CertificateAuthority} CertificateAuthority + */ + CertificateAuthority.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.CertificateAuthority) + return object; + var message = new $root.google.cloud.redis.cluster.v1.CertificateAuthority(); + if (object.managedServerCa != null) { + if (typeof object.managedServerCa !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.CertificateAuthority.managedServerCa: object expected"); + message.managedServerCa = $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.fromObject(object.managedServerCa); + } + if (object.name != null) + message.name = String(object.name); + return message; + }; + + /** + * Creates a plain object from a CertificateAuthority message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @static + * @param {google.cloud.redis.cluster.v1.CertificateAuthority} message CertificateAuthority + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CertificateAuthority.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.name = ""; + if (message.managedServerCa != null && message.hasOwnProperty("managedServerCa")) { + object.managedServerCa = $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.toObject(message.managedServerCa, options); + if (options.oneofs) + object.serverCa = "managedServerCa"; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + return object; + }; + + /** + * Converts this CertificateAuthority to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @instance + * @returns {Object.} JSON object + */ + CertificateAuthority.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CertificateAuthority + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CertificateAuthority.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.CertificateAuthority"; + }; + + CertificateAuthority.ManagedCertificateAuthority = (function() { + + /** + * Properties of a ManagedCertificateAuthority. + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @interface IManagedCertificateAuthority + * @property {Array.|null} [caCerts] ManagedCertificateAuthority caCerts + */ + + /** + * Constructs a new ManagedCertificateAuthority. + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority + * @classdesc Represents a ManagedCertificateAuthority. + * @implements IManagedCertificateAuthority + * @constructor + * @param {google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority=} [properties] Properties to set + */ + function ManagedCertificateAuthority(properties) { + this.caCerts = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ManagedCertificateAuthority caCerts. + * @member {Array.} caCerts + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority + * @instance + */ + ManagedCertificateAuthority.prototype.caCerts = $util.emptyArray; + + /** + * Creates a new ManagedCertificateAuthority instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority + * @static + * @param {google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority} ManagedCertificateAuthority instance + */ + ManagedCertificateAuthority.create = function create(properties) { + return new ManagedCertificateAuthority(properties); + }; + + /** + * Encodes the specified ManagedCertificateAuthority message. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority + * @static + * @param {google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority} message ManagedCertificateAuthority message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ManagedCertificateAuthority.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.caCerts != null && message.caCerts.length) + for (var i = 0; i < message.caCerts.length; ++i) + $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.encode(message.caCerts[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ManagedCertificateAuthority message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority + * @static + * @param {google.cloud.redis.cluster.v1.CertificateAuthority.IManagedCertificateAuthority} message ManagedCertificateAuthority message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ManagedCertificateAuthority.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ManagedCertificateAuthority message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority} ManagedCertificateAuthority + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ManagedCertificateAuthority.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (!(message.caCerts && message.caCerts.length)) + message.caCerts = []; + message.caCerts.push($root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ManagedCertificateAuthority message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority} ManagedCertificateAuthority + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ManagedCertificateAuthority.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ManagedCertificateAuthority message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ManagedCertificateAuthority.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.caCerts != null && message.hasOwnProperty("caCerts")) { + if (!Array.isArray(message.caCerts)) + return "caCerts: array expected"; + for (var i = 0; i < message.caCerts.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.verify(message.caCerts[i]); + if (error) + return "caCerts." + error; + } + } + return null; + }; + + /** + * Creates a ManagedCertificateAuthority message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority} ManagedCertificateAuthority + */ + ManagedCertificateAuthority.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority) + return object; + var message = new $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority(); + if (object.caCerts) { + if (!Array.isArray(object.caCerts)) + throw TypeError(".google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.caCerts: array expected"); + message.caCerts = []; + for (var i = 0; i < object.caCerts.length; ++i) { + if (typeof object.caCerts[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.caCerts: object expected"); + message.caCerts[i] = $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.fromObject(object.caCerts[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a ManagedCertificateAuthority message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority + * @static + * @param {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority} message ManagedCertificateAuthority + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ManagedCertificateAuthority.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.caCerts = []; + if (message.caCerts && message.caCerts.length) { + object.caCerts = []; + for (var j = 0; j < message.caCerts.length; ++j) + object.caCerts[j] = $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.toObject(message.caCerts[j], options); + } + return object; + }; + + /** + * Converts this ManagedCertificateAuthority to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority + * @instance + * @returns {Object.} JSON object + */ + ManagedCertificateAuthority.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ManagedCertificateAuthority + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ManagedCertificateAuthority.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority"; + }; + + ManagedCertificateAuthority.CertChain = (function() { + + /** + * Properties of a CertChain. + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority + * @interface ICertChain + * @property {Array.|null} [certificates] CertChain certificates + */ + + /** + * Constructs a new CertChain. + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority + * @classdesc Represents a CertChain. + * @implements ICertChain + * @constructor + * @param {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain=} [properties] Properties to set + */ + function CertChain(properties) { + this.certificates = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CertChain certificates. + * @member {Array.} certificates + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain + * @instance + */ + CertChain.prototype.certificates = $util.emptyArray; + + /** + * Creates a new CertChain instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain + * @static + * @param {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain} CertChain instance + */ + CertChain.create = function create(properties) { + return new CertChain(properties); + }; + + /** + * Encodes the specified CertChain message. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain + * @static + * @param {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain} message CertChain message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CertChain.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.certificates != null && message.certificates.length) + for (var i = 0; i < message.certificates.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.certificates[i]); + return writer; + }; + + /** + * Encodes the specified CertChain message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain + * @static + * @param {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.ICertChain} message CertChain message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CertChain.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CertChain message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain} CertChain + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CertChain.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (!(message.certificates && message.certificates.length)) + message.certificates = []; + message.certificates.push(reader.string()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CertChain message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain} CertChain + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CertChain.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CertChain message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CertChain.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.certificates != null && message.hasOwnProperty("certificates")) { + if (!Array.isArray(message.certificates)) + return "certificates: array expected"; + for (var i = 0; i < message.certificates.length; ++i) + if (!$util.isString(message.certificates[i])) + return "certificates: string[] expected"; + } + return null; + }; + + /** + * Creates a CertChain message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain} CertChain + */ + CertChain.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain) + return object; + var message = new $root.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain(); + if (object.certificates) { + if (!Array.isArray(object.certificates)) + throw TypeError(".google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain.certificates: array expected"); + message.certificates = []; + for (var i = 0; i < object.certificates.length; ++i) + message.certificates[i] = String(object.certificates[i]); + } + return message; + }; + + /** + * Creates a plain object from a CertChain message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain + * @static + * @param {google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain} message CertChain + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CertChain.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.certificates = []; + if (message.certificates && message.certificates.length) { + object.certificates = []; + for (var j = 0; j < message.certificates.length; ++j) + object.certificates[j] = message.certificates[j]; + } + return object; + }; + + /** + * Converts this CertChain to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain + * @instance + * @returns {Object.} JSON object + */ + CertChain.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CertChain + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CertChain.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain"; + }; + + return CertChain; + })(); + + return ManagedCertificateAuthority; + })(); + + return CertificateAuthority; + })(); + + v1.ClusterPersistenceConfig = (function() { + + /** + * Properties of a ClusterPersistenceConfig. + * @memberof google.cloud.redis.cluster.v1 + * @interface IClusterPersistenceConfig + * @property {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceMode|null} [mode] ClusterPersistenceConfig mode + * @property {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig|null} [rdbConfig] ClusterPersistenceConfig rdbConfig + * @property {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig|null} [aofConfig] ClusterPersistenceConfig aofConfig + */ + + /** + * Constructs a new ClusterPersistenceConfig. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a ClusterPersistenceConfig. + * @implements IClusterPersistenceConfig + * @constructor + * @param {google.cloud.redis.cluster.v1.IClusterPersistenceConfig=} [properties] Properties to set + */ + function ClusterPersistenceConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ClusterPersistenceConfig mode. + * @member {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceMode} mode + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @instance + */ + ClusterPersistenceConfig.prototype.mode = 0; + + /** + * ClusterPersistenceConfig rdbConfig. + * @member {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig|null|undefined} rdbConfig + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @instance + */ + ClusterPersistenceConfig.prototype.rdbConfig = null; + + /** + * ClusterPersistenceConfig aofConfig. + * @member {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig|null|undefined} aofConfig + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @instance + */ + ClusterPersistenceConfig.prototype.aofConfig = null; + + /** + * Creates a new ClusterPersistenceConfig instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @static + * @param {google.cloud.redis.cluster.v1.IClusterPersistenceConfig=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig} ClusterPersistenceConfig instance + */ + ClusterPersistenceConfig.create = function create(properties) { + return new ClusterPersistenceConfig(properties); + }; + + /** + * Encodes the specified ClusterPersistenceConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @static + * @param {google.cloud.redis.cluster.v1.IClusterPersistenceConfig} message ClusterPersistenceConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ClusterPersistenceConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.mode != null && Object.hasOwnProperty.call(message, "mode")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.mode); + if (message.rdbConfig != null && Object.hasOwnProperty.call(message, "rdbConfig")) + $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.encode(message.rdbConfig, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.aofConfig != null && Object.hasOwnProperty.call(message, "aofConfig")) + $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.encode(message.aofConfig, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ClusterPersistenceConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @static + * @param {google.cloud.redis.cluster.v1.IClusterPersistenceConfig} message ClusterPersistenceConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ClusterPersistenceConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ClusterPersistenceConfig message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig} ClusterPersistenceConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ClusterPersistenceConfig.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.mode = reader.int32(); + break; + } + case 2: { + message.rdbConfig = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.decode(reader, reader.uint32()); + break; + } + case 3: { + message.aofConfig = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ClusterPersistenceConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig} ClusterPersistenceConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ClusterPersistenceConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ClusterPersistenceConfig message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ClusterPersistenceConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.mode != null && message.hasOwnProperty("mode")) + switch (message.mode) { + default: + return "mode: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + if (message.rdbConfig != null && message.hasOwnProperty("rdbConfig")) { + var error = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.verify(message.rdbConfig); + if (error) + return "rdbConfig." + error; + } + if (message.aofConfig != null && message.hasOwnProperty("aofConfig")) { + var error = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.verify(message.aofConfig); + if (error) + return "aofConfig." + error; + } + return null; + }; + + /** + * Creates a ClusterPersistenceConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig} ClusterPersistenceConfig + */ + ClusterPersistenceConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig) + return object; + var message = new $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig(); + switch (object.mode) { + default: + if (typeof object.mode === "number") { + message.mode = object.mode; + break; + } + break; + case "PERSISTENCE_MODE_UNSPECIFIED": + case 0: + message.mode = 0; + break; + case "DISABLED": + case 1: + message.mode = 1; + break; + case "RDB": + case 2: + message.mode = 2; + break; + case "AOF": + case 3: + message.mode = 3; + break; + } + if (object.rdbConfig != null) { + if (typeof object.rdbConfig !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.ClusterPersistenceConfig.rdbConfig: object expected"); + message.rdbConfig = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.fromObject(object.rdbConfig); + } + if (object.aofConfig != null) { + if (typeof object.aofConfig !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.ClusterPersistenceConfig.aofConfig: object expected"); + message.aofConfig = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.fromObject(object.aofConfig); + } + return message; + }; + + /** + * Creates a plain object from a ClusterPersistenceConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @static + * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig} message ClusterPersistenceConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ClusterPersistenceConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.mode = options.enums === String ? "PERSISTENCE_MODE_UNSPECIFIED" : 0; + object.rdbConfig = null; + object.aofConfig = null; + } + if (message.mode != null && message.hasOwnProperty("mode")) + object.mode = options.enums === String ? $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceMode[message.mode] === undefined ? message.mode : $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceMode[message.mode] : message.mode; + if (message.rdbConfig != null && message.hasOwnProperty("rdbConfig")) + object.rdbConfig = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.toObject(message.rdbConfig, options); + if (message.aofConfig != null && message.hasOwnProperty("aofConfig")) + object.aofConfig = $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.toObject(message.aofConfig, options); + return object; + }; + + /** + * Converts this ClusterPersistenceConfig to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @instance + * @returns {Object.} JSON object + */ + ClusterPersistenceConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ClusterPersistenceConfig + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ClusterPersistenceConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.ClusterPersistenceConfig"; + }; + + ClusterPersistenceConfig.RDBConfig = (function() { + + /** + * Properties of a RDBConfig. + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @interface IRDBConfig + * @property {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriod|null} [rdbSnapshotPeriod] RDBConfig rdbSnapshotPeriod + * @property {google.protobuf.ITimestamp|null} [rdbSnapshotStartTime] RDBConfig rdbSnapshotStartTime + */ + + /** + * Constructs a new RDBConfig. + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @classdesc Represents a RDBConfig. + * @implements IRDBConfig + * @constructor + * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig=} [properties] Properties to set + */ + function RDBConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * RDBConfig rdbSnapshotPeriod. + * @member {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriod} rdbSnapshotPeriod + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig + * @instance + */ + RDBConfig.prototype.rdbSnapshotPeriod = 0; + + /** + * RDBConfig rdbSnapshotStartTime. + * @member {google.protobuf.ITimestamp|null|undefined} rdbSnapshotStartTime + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig + * @instance + */ + RDBConfig.prototype.rdbSnapshotStartTime = null; + + /** + * Creates a new RDBConfig instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig + * @static + * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig} RDBConfig instance + */ + RDBConfig.create = function create(properties) { + return new RDBConfig(properties); + }; + + /** + * Encodes the specified RDBConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig + * @static + * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig} message RDBConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RDBConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.rdbSnapshotPeriod != null && Object.hasOwnProperty.call(message, "rdbSnapshotPeriod")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.rdbSnapshotPeriod); + if (message.rdbSnapshotStartTime != null && Object.hasOwnProperty.call(message, "rdbSnapshotStartTime")) + $root.google.protobuf.Timestamp.encode(message.rdbSnapshotStartTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified RDBConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig + * @static + * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IRDBConfig} message RDBConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RDBConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RDBConfig message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig} RDBConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RDBConfig.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.rdbSnapshotPeriod = reader.int32(); + break; + } + case 2: { + message.rdbSnapshotStartTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RDBConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig} RDBConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RDBConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RDBConfig message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RDBConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.rdbSnapshotPeriod != null && message.hasOwnProperty("rdbSnapshotPeriod")) + switch (message.rdbSnapshotPeriod) { + default: + return "rdbSnapshotPeriod: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + break; + } + if (message.rdbSnapshotStartTime != null && message.hasOwnProperty("rdbSnapshotStartTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.rdbSnapshotStartTime); + if (error) + return "rdbSnapshotStartTime." + error; + } + return null; + }; + + /** + * Creates a RDBConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig} RDBConfig + */ + RDBConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig) + return object; + var message = new $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig(); + switch (object.rdbSnapshotPeriod) { + default: + if (typeof object.rdbSnapshotPeriod === "number") { + message.rdbSnapshotPeriod = object.rdbSnapshotPeriod; + break; + } + break; + case "SNAPSHOT_PERIOD_UNSPECIFIED": + case 0: + message.rdbSnapshotPeriod = 0; + break; + case "ONE_HOUR": + case 1: + message.rdbSnapshotPeriod = 1; + break; + case "SIX_HOURS": + case 2: + message.rdbSnapshotPeriod = 2; + break; + case "TWELVE_HOURS": + case 3: + message.rdbSnapshotPeriod = 3; + break; + case "TWENTY_FOUR_HOURS": + case 4: + message.rdbSnapshotPeriod = 4; + break; + } + if (object.rdbSnapshotStartTime != null) { + if (typeof object.rdbSnapshotStartTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.rdbSnapshotStartTime: object expected"); + message.rdbSnapshotStartTime = $root.google.protobuf.Timestamp.fromObject(object.rdbSnapshotStartTime); + } + return message; + }; + + /** + * Creates a plain object from a RDBConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig + * @static + * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig} message RDBConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RDBConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.rdbSnapshotPeriod = options.enums === String ? "SNAPSHOT_PERIOD_UNSPECIFIED" : 0; + object.rdbSnapshotStartTime = null; + } + if (message.rdbSnapshotPeriod != null && message.hasOwnProperty("rdbSnapshotPeriod")) + object.rdbSnapshotPeriod = options.enums === String ? $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriod[message.rdbSnapshotPeriod] === undefined ? message.rdbSnapshotPeriod : $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriod[message.rdbSnapshotPeriod] : message.rdbSnapshotPeriod; + if (message.rdbSnapshotStartTime != null && message.hasOwnProperty("rdbSnapshotStartTime")) + object.rdbSnapshotStartTime = $root.google.protobuf.Timestamp.toObject(message.rdbSnapshotStartTime, options); + return object; + }; + + /** + * Converts this RDBConfig to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig + * @instance + * @returns {Object.} JSON object + */ + RDBConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for RDBConfig + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + RDBConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig"; + }; + + /** + * SnapshotPeriod enum. + * @name google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriod + * @enum {number} + * @property {number} SNAPSHOT_PERIOD_UNSPECIFIED=0 SNAPSHOT_PERIOD_UNSPECIFIED value + * @property {number} ONE_HOUR=1 ONE_HOUR value + * @property {number} SIX_HOURS=2 SIX_HOURS value + * @property {number} TWELVE_HOURS=3 TWELVE_HOURS value + * @property {number} TWENTY_FOUR_HOURS=4 TWENTY_FOUR_HOURS value + */ + RDBConfig.SnapshotPeriod = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "SNAPSHOT_PERIOD_UNSPECIFIED"] = 0; + values[valuesById[1] = "ONE_HOUR"] = 1; + values[valuesById[2] = "SIX_HOURS"] = 2; + values[valuesById[3] = "TWELVE_HOURS"] = 3; + values[valuesById[4] = "TWENTY_FOUR_HOURS"] = 4; + return values; + })(); + + return RDBConfig; + })(); + + ClusterPersistenceConfig.AOFConfig = (function() { + + /** + * Properties of a AOFConfig. + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @interface IAOFConfig + * @property {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsync|null} [appendFsync] AOFConfig appendFsync + */ + + /** + * Constructs a new AOFConfig. + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig + * @classdesc Represents a AOFConfig. + * @implements IAOFConfig + * @constructor + * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig=} [properties] Properties to set + */ + function AOFConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * AOFConfig appendFsync. + * @member {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsync} appendFsync + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig + * @instance + */ + AOFConfig.prototype.appendFsync = 0; + + /** + * Creates a new AOFConfig instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig + * @static + * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig} AOFConfig instance + */ + AOFConfig.create = function create(properties) { + return new AOFConfig(properties); + }; + + /** + * Encodes the specified AOFConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig + * @static + * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig} message AOFConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + AOFConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.appendFsync != null && Object.hasOwnProperty.call(message, "appendFsync")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.appendFsync); + return writer; + }; + + /** + * Encodes the specified AOFConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig + * @static + * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.IAOFConfig} message AOFConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + AOFConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a AOFConfig message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig} AOFConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + AOFConfig.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.appendFsync = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a AOFConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig} AOFConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + AOFConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a AOFConfig message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + AOFConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.appendFsync != null && message.hasOwnProperty("appendFsync")) + switch (message.appendFsync) { + default: + return "appendFsync: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + return null; + }; + + /** + * Creates a AOFConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig} AOFConfig + */ + AOFConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig) + return object; + var message = new $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig(); + switch (object.appendFsync) { + default: + if (typeof object.appendFsync === "number") { + message.appendFsync = object.appendFsync; + break; + } + break; + case "APPEND_FSYNC_UNSPECIFIED": + case 0: + message.appendFsync = 0; + break; + case "NO": + case 1: + message.appendFsync = 1; + break; + case "EVERYSEC": + case 2: + message.appendFsync = 2; + break; + case "ALWAYS": + case 3: + message.appendFsync = 3; + break; + } + return message; + }; + + /** + * Creates a plain object from a AOFConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig + * @static + * @param {google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig} message AOFConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + AOFConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.appendFsync = options.enums === String ? "APPEND_FSYNC_UNSPECIFIED" : 0; + if (message.appendFsync != null && message.hasOwnProperty("appendFsync")) + object.appendFsync = options.enums === String ? $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsync[message.appendFsync] === undefined ? message.appendFsync : $root.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsync[message.appendFsync] : message.appendFsync; + return object; + }; + + /** + * Converts this AOFConfig to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig + * @instance + * @returns {Object.} JSON object + */ + AOFConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for AOFConfig + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + AOFConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig"; + }; + + /** + * AppendFsync enum. + * @name google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsync + * @enum {number} + * @property {number} APPEND_FSYNC_UNSPECIFIED=0 APPEND_FSYNC_UNSPECIFIED value + * @property {number} NO=1 NO value + * @property {number} EVERYSEC=2 EVERYSEC value + * @property {number} ALWAYS=3 ALWAYS value + */ + AOFConfig.AppendFsync = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "APPEND_FSYNC_UNSPECIFIED"] = 0; + values[valuesById[1] = "NO"] = 1; + values[valuesById[2] = "EVERYSEC"] = 2; + values[valuesById[3] = "ALWAYS"] = 3; + return values; + })(); + + return AOFConfig; + })(); + + /** + * PersistenceMode enum. + * @name google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceMode + * @enum {number} + * @property {number} PERSISTENCE_MODE_UNSPECIFIED=0 PERSISTENCE_MODE_UNSPECIFIED value + * @property {number} DISABLED=1 DISABLED value + * @property {number} RDB=2 RDB value + * @property {number} AOF=3 AOF value + */ + ClusterPersistenceConfig.PersistenceMode = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "PERSISTENCE_MODE_UNSPECIFIED"] = 0; + values[valuesById[1] = "DISABLED"] = 1; + values[valuesById[2] = "RDB"] = 2; + values[valuesById[3] = "AOF"] = 3; + return values; + })(); + + return ClusterPersistenceConfig; + })(); + + v1.ZoneDistributionConfig = (function() { + + /** + * Properties of a ZoneDistributionConfig. + * @memberof google.cloud.redis.cluster.v1 + * @interface IZoneDistributionConfig + * @property {google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionMode|null} [mode] ZoneDistributionConfig mode + * @property {string|null} [zone] ZoneDistributionConfig zone + */ + + /** + * Constructs a new ZoneDistributionConfig. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a ZoneDistributionConfig. + * @implements IZoneDistributionConfig + * @constructor + * @param {google.cloud.redis.cluster.v1.IZoneDistributionConfig=} [properties] Properties to set + */ + function ZoneDistributionConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ZoneDistributionConfig mode. + * @member {google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionMode} mode + * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @instance + */ + ZoneDistributionConfig.prototype.mode = 0; + + /** + * ZoneDistributionConfig zone. + * @member {string} zone + * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @instance + */ + ZoneDistributionConfig.prototype.zone = ""; + + /** + * Creates a new ZoneDistributionConfig instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @static + * @param {google.cloud.redis.cluster.v1.IZoneDistributionConfig=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.ZoneDistributionConfig} ZoneDistributionConfig instance + */ + ZoneDistributionConfig.create = function create(properties) { + return new ZoneDistributionConfig(properties); + }; + + /** + * Encodes the specified ZoneDistributionConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1.ZoneDistributionConfig.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @static + * @param {google.cloud.redis.cluster.v1.IZoneDistributionConfig} message ZoneDistributionConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ZoneDistributionConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.mode != null && Object.hasOwnProperty.call(message, "mode")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.mode); + if (message.zone != null && Object.hasOwnProperty.call(message, "zone")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.zone); + return writer; + }; + + /** + * Encodes the specified ZoneDistributionConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.ZoneDistributionConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @static + * @param {google.cloud.redis.cluster.v1.IZoneDistributionConfig} message ZoneDistributionConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ZoneDistributionConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ZoneDistributionConfig message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.ZoneDistributionConfig} ZoneDistributionConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ZoneDistributionConfig.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.mode = reader.int32(); + break; + } + case 2: { + message.zone = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ZoneDistributionConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.ZoneDistributionConfig} ZoneDistributionConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ZoneDistributionConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ZoneDistributionConfig message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ZoneDistributionConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.mode != null && message.hasOwnProperty("mode")) + switch (message.mode) { + default: + return "mode: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.zone != null && message.hasOwnProperty("zone")) + if (!$util.isString(message.zone)) + return "zone: string expected"; + return null; + }; + + /** + * Creates a ZoneDistributionConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.ZoneDistributionConfig} ZoneDistributionConfig + */ + ZoneDistributionConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig) + return object; + var message = new $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig(); + switch (object.mode) { + default: + if (typeof object.mode === "number") { + message.mode = object.mode; + break; + } + break; + case "ZONE_DISTRIBUTION_MODE_UNSPECIFIED": + case 0: + message.mode = 0; + break; + case "MULTI_ZONE": + case 1: + message.mode = 1; + break; + case "SINGLE_ZONE": + case 2: + message.mode = 2; + break; + } + if (object.zone != null) + message.zone = String(object.zone); + return message; + }; + + /** + * Creates a plain object from a ZoneDistributionConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @static + * @param {google.cloud.redis.cluster.v1.ZoneDistributionConfig} message ZoneDistributionConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ZoneDistributionConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.mode = options.enums === String ? "ZONE_DISTRIBUTION_MODE_UNSPECIFIED" : 0; + object.zone = ""; + } + if (message.mode != null && message.hasOwnProperty("mode")) + object.mode = options.enums === String ? $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionMode[message.mode] === undefined ? message.mode : $root.google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionMode[message.mode] : message.mode; + if (message.zone != null && message.hasOwnProperty("zone")) + object.zone = message.zone; + return object; + }; + + /** + * Converts this ZoneDistributionConfig to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @instance + * @returns {Object.} JSON object + */ + ZoneDistributionConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ZoneDistributionConfig + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.ZoneDistributionConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ZoneDistributionConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.ZoneDistributionConfig"; + }; + + /** + * ZoneDistributionMode enum. + * @name google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionMode + * @enum {number} + * @property {number} ZONE_DISTRIBUTION_MODE_UNSPECIFIED=0 ZONE_DISTRIBUTION_MODE_UNSPECIFIED value + * @property {number} MULTI_ZONE=1 MULTI_ZONE value + * @property {number} SINGLE_ZONE=2 SINGLE_ZONE value + */ + ZoneDistributionConfig.ZoneDistributionMode = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "ZONE_DISTRIBUTION_MODE_UNSPECIFIED"] = 0; + values[valuesById[1] = "MULTI_ZONE"] = 1; + values[valuesById[2] = "SINGLE_ZONE"] = 2; + return values; + })(); + + return ZoneDistributionConfig; + })(); + + v1.RescheduleClusterMaintenanceRequest = (function() { + + /** + * Properties of a RescheduleClusterMaintenanceRequest. + * @memberof google.cloud.redis.cluster.v1 + * @interface IRescheduleClusterMaintenanceRequest + * @property {string|null} [name] RescheduleClusterMaintenanceRequest name + * @property {google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.RescheduleType|null} [rescheduleType] RescheduleClusterMaintenanceRequest rescheduleType + * @property {google.protobuf.ITimestamp|null} [scheduleTime] RescheduleClusterMaintenanceRequest scheduleTime + */ + + /** + * Constructs a new RescheduleClusterMaintenanceRequest. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents a RescheduleClusterMaintenanceRequest. + * @implements IRescheduleClusterMaintenanceRequest + * @constructor + * @param {google.cloud.redis.cluster.v1.IRescheduleClusterMaintenanceRequest=} [properties] Properties to set + */ + function RescheduleClusterMaintenanceRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * RescheduleClusterMaintenanceRequest name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest + * @instance + */ + RescheduleClusterMaintenanceRequest.prototype.name = ""; + + /** + * RescheduleClusterMaintenanceRequest rescheduleType. + * @member {google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.RescheduleType} rescheduleType + * @memberof google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest + * @instance + */ + RescheduleClusterMaintenanceRequest.prototype.rescheduleType = 0; + + /** + * RescheduleClusterMaintenanceRequest scheduleTime. + * @member {google.protobuf.ITimestamp|null|undefined} scheduleTime + * @memberof google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest + * @instance + */ + RescheduleClusterMaintenanceRequest.prototype.scheduleTime = null; + + /** + * Creates a new RescheduleClusterMaintenanceRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest + * @static + * @param {google.cloud.redis.cluster.v1.IRescheduleClusterMaintenanceRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest} RescheduleClusterMaintenanceRequest instance + */ + RescheduleClusterMaintenanceRequest.create = function create(properties) { + return new RescheduleClusterMaintenanceRequest(properties); + }; + + /** + * Encodes the specified RescheduleClusterMaintenanceRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest + * @static + * @param {google.cloud.redis.cluster.v1.IRescheduleClusterMaintenanceRequest} message RescheduleClusterMaintenanceRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RescheduleClusterMaintenanceRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.rescheduleType != null && Object.hasOwnProperty.call(message, "rescheduleType")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.rescheduleType); + if (message.scheduleTime != null && Object.hasOwnProperty.call(message, "scheduleTime")) + $root.google.protobuf.Timestamp.encode(message.scheduleTime, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified RescheduleClusterMaintenanceRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest + * @static + * @param {google.cloud.redis.cluster.v1.IRescheduleClusterMaintenanceRequest} message RescheduleClusterMaintenanceRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RescheduleClusterMaintenanceRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RescheduleClusterMaintenanceRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest} RescheduleClusterMaintenanceRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RescheduleClusterMaintenanceRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.name = reader.string(); + break; + } + case 2: { + message.rescheduleType = reader.int32(); + break; + } + case 3: { + message.scheduleTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RescheduleClusterMaintenanceRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest} RescheduleClusterMaintenanceRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RescheduleClusterMaintenanceRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RescheduleClusterMaintenanceRequest message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RescheduleClusterMaintenanceRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.rescheduleType != null && message.hasOwnProperty("rescheduleType")) + switch (message.rescheduleType) { + default: + return "rescheduleType: enum value expected"; + case 0: + case 1: + case 3: + break; + } + if (message.scheduleTime != null && message.hasOwnProperty("scheduleTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.scheduleTime); + if (error) + return "scheduleTime." + error; + } + return null; + }; + + /** + * Creates a RescheduleClusterMaintenanceRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest} RescheduleClusterMaintenanceRequest + */ + RescheduleClusterMaintenanceRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest) + return object; + var message = new $root.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest(); + if (object.name != null) + message.name = String(object.name); + switch (object.rescheduleType) { + default: + if (typeof object.rescheduleType === "number") { + message.rescheduleType = object.rescheduleType; + break; + } + break; + case "RESCHEDULE_TYPE_UNSPECIFIED": + case 0: + message.rescheduleType = 0; + break; + case "IMMEDIATE": + case 1: + message.rescheduleType = 1; + break; + case "SPECIFIC_TIME": + case 3: + message.rescheduleType = 3; + break; + } + if (object.scheduleTime != null) { + if (typeof object.scheduleTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.scheduleTime: object expected"); + message.scheduleTime = $root.google.protobuf.Timestamp.fromObject(object.scheduleTime); + } + return message; + }; + + /** + * Creates a plain object from a RescheduleClusterMaintenanceRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest + * @static + * @param {google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest} message RescheduleClusterMaintenanceRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RescheduleClusterMaintenanceRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.rescheduleType = options.enums === String ? "RESCHEDULE_TYPE_UNSPECIFIED" : 0; + object.scheduleTime = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.rescheduleType != null && message.hasOwnProperty("rescheduleType")) + object.rescheduleType = options.enums === String ? $root.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.RescheduleType[message.rescheduleType] === undefined ? message.rescheduleType : $root.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.RescheduleType[message.rescheduleType] : message.rescheduleType; + if (message.scheduleTime != null && message.hasOwnProperty("scheduleTime")) + object.scheduleTime = $root.google.protobuf.Timestamp.toObject(message.scheduleTime, options); + return object; + }; + + /** + * Converts this RescheduleClusterMaintenanceRequest to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest + * @instance + * @returns {Object.} JSON object + */ + RescheduleClusterMaintenanceRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for RescheduleClusterMaintenanceRequest + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + RescheduleClusterMaintenanceRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest"; + }; + + /** + * RescheduleType enum. + * @name google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.RescheduleType + * @enum {number} + * @property {number} RESCHEDULE_TYPE_UNSPECIFIED=0 RESCHEDULE_TYPE_UNSPECIFIED value + * @property {number} IMMEDIATE=1 IMMEDIATE value + * @property {number} SPECIFIC_TIME=3 SPECIFIC_TIME value + */ + RescheduleClusterMaintenanceRequest.RescheduleType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "RESCHEDULE_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "IMMEDIATE"] = 1; + values[valuesById[3] = "SPECIFIC_TIME"] = 3; + return values; + })(); + + return RescheduleClusterMaintenanceRequest; + })(); + + v1.EncryptionInfo = (function() { + + /** + * Properties of an EncryptionInfo. + * @memberof google.cloud.redis.cluster.v1 + * @interface IEncryptionInfo + * @property {google.cloud.redis.cluster.v1.EncryptionInfo.Type|null} [encryptionType] EncryptionInfo encryptionType + * @property {Array.|null} [kmsKeyVersions] EncryptionInfo kmsKeyVersions + * @property {google.cloud.redis.cluster.v1.EncryptionInfo.KmsKeyState|null} [kmsKeyPrimaryState] EncryptionInfo kmsKeyPrimaryState + * @property {google.protobuf.ITimestamp|null} [lastUpdateTime] EncryptionInfo lastUpdateTime + */ + + /** + * Constructs a new EncryptionInfo. + * @memberof google.cloud.redis.cluster.v1 + * @classdesc Represents an EncryptionInfo. + * @implements IEncryptionInfo + * @constructor + * @param {google.cloud.redis.cluster.v1.IEncryptionInfo=} [properties] Properties to set + */ + function EncryptionInfo(properties) { + this.kmsKeyVersions = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * EncryptionInfo encryptionType. + * @member {google.cloud.redis.cluster.v1.EncryptionInfo.Type} encryptionType + * @memberof google.cloud.redis.cluster.v1.EncryptionInfo + * @instance + */ + EncryptionInfo.prototype.encryptionType = 0; + + /** + * EncryptionInfo kmsKeyVersions. + * @member {Array.} kmsKeyVersions + * @memberof google.cloud.redis.cluster.v1.EncryptionInfo + * @instance + */ + EncryptionInfo.prototype.kmsKeyVersions = $util.emptyArray; + + /** + * EncryptionInfo kmsKeyPrimaryState. + * @member {google.cloud.redis.cluster.v1.EncryptionInfo.KmsKeyState} kmsKeyPrimaryState + * @memberof google.cloud.redis.cluster.v1.EncryptionInfo + * @instance + */ + EncryptionInfo.prototype.kmsKeyPrimaryState = 0; + + /** + * EncryptionInfo lastUpdateTime. + * @member {google.protobuf.ITimestamp|null|undefined} lastUpdateTime + * @memberof google.cloud.redis.cluster.v1.EncryptionInfo + * @instance + */ + EncryptionInfo.prototype.lastUpdateTime = null; + + /** + * Creates a new EncryptionInfo instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1.EncryptionInfo + * @static + * @param {google.cloud.redis.cluster.v1.IEncryptionInfo=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1.EncryptionInfo} EncryptionInfo instance + */ + EncryptionInfo.create = function create(properties) { + return new EncryptionInfo(properties); + }; + + /** + * Encodes the specified EncryptionInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1.EncryptionInfo.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1.EncryptionInfo + * @static + * @param {google.cloud.redis.cluster.v1.IEncryptionInfo} message EncryptionInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EncryptionInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.encryptionType != null && Object.hasOwnProperty.call(message, "encryptionType")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.encryptionType); + if (message.kmsKeyVersions != null && message.kmsKeyVersions.length) + for (var i = 0; i < message.kmsKeyVersions.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.kmsKeyVersions[i]); + if (message.kmsKeyPrimaryState != null && Object.hasOwnProperty.call(message, "kmsKeyPrimaryState")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.kmsKeyPrimaryState); + if (message.lastUpdateTime != null && Object.hasOwnProperty.call(message, "lastUpdateTime")) + $root.google.protobuf.Timestamp.encode(message.lastUpdateTime, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified EncryptionInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1.EncryptionInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1.EncryptionInfo + * @static + * @param {google.cloud.redis.cluster.v1.IEncryptionInfo} message EncryptionInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EncryptionInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an EncryptionInfo message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1.EncryptionInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1.EncryptionInfo} EncryptionInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EncryptionInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1.EncryptionInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.encryptionType = reader.int32(); + break; + } + case 2: { + if (!(message.kmsKeyVersions && message.kmsKeyVersions.length)) + message.kmsKeyVersions = []; + message.kmsKeyVersions.push(reader.string()); + break; + } + case 3: { + message.kmsKeyPrimaryState = reader.int32(); + break; + } + case 4: { + message.lastUpdateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an EncryptionInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1.EncryptionInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1.EncryptionInfo} EncryptionInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EncryptionInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an EncryptionInfo message. + * @function verify + * @memberof google.cloud.redis.cluster.v1.EncryptionInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EncryptionInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.encryptionType != null && message.hasOwnProperty("encryptionType")) + switch (message.encryptionType) { + default: + return "encryptionType: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.kmsKeyVersions != null && message.hasOwnProperty("kmsKeyVersions")) { + if (!Array.isArray(message.kmsKeyVersions)) + return "kmsKeyVersions: array expected"; + for (var i = 0; i < message.kmsKeyVersions.length; ++i) + if (!$util.isString(message.kmsKeyVersions[i])) + return "kmsKeyVersions: string[] expected"; + } + if (message.kmsKeyPrimaryState != null && message.hasOwnProperty("kmsKeyPrimaryState")) + switch (message.kmsKeyPrimaryState) { + default: + return "kmsKeyPrimaryState: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + break; + } + if (message.lastUpdateTime != null && message.hasOwnProperty("lastUpdateTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.lastUpdateTime); + if (error) + return "lastUpdateTime." + error; + } + return null; + }; + + /** + * Creates an EncryptionInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1.EncryptionInfo + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1.EncryptionInfo} EncryptionInfo + */ + EncryptionInfo.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1.EncryptionInfo) + return object; + var message = new $root.google.cloud.redis.cluster.v1.EncryptionInfo(); + switch (object.encryptionType) { + default: + if (typeof object.encryptionType === "number") { + message.encryptionType = object.encryptionType; + break; + } + break; + case "TYPE_UNSPECIFIED": + case 0: + message.encryptionType = 0; + break; + case "GOOGLE_DEFAULT_ENCRYPTION": + case 1: + message.encryptionType = 1; + break; + case "CUSTOMER_MANAGED_ENCRYPTION": + case 2: + message.encryptionType = 2; + break; + } + if (object.kmsKeyVersions) { + if (!Array.isArray(object.kmsKeyVersions)) + throw TypeError(".google.cloud.redis.cluster.v1.EncryptionInfo.kmsKeyVersions: array expected"); + message.kmsKeyVersions = []; + for (var i = 0; i < object.kmsKeyVersions.length; ++i) + message.kmsKeyVersions[i] = String(object.kmsKeyVersions[i]); + } + switch (object.kmsKeyPrimaryState) { + default: + if (typeof object.kmsKeyPrimaryState === "number") { + message.kmsKeyPrimaryState = object.kmsKeyPrimaryState; + break; + } + break; + case "KMS_KEY_STATE_UNSPECIFIED": + case 0: + message.kmsKeyPrimaryState = 0; + break; + case "ENABLED": + case 1: + message.kmsKeyPrimaryState = 1; + break; + case "PERMISSION_DENIED": + case 2: + message.kmsKeyPrimaryState = 2; + break; + case "DISABLED": + case 3: + message.kmsKeyPrimaryState = 3; + break; + case "DESTROYED": + case 4: + message.kmsKeyPrimaryState = 4; + break; + case "DESTROY_SCHEDULED": + case 5: + message.kmsKeyPrimaryState = 5; + break; + case "EKM_KEY_UNREACHABLE_DETECTED": + case 6: + message.kmsKeyPrimaryState = 6; + break; + case "BILLING_DISABLED": + case 7: + message.kmsKeyPrimaryState = 7; + break; + case "UNKNOWN_FAILURE": + case 8: + message.kmsKeyPrimaryState = 8; + break; + } + if (object.lastUpdateTime != null) { + if (typeof object.lastUpdateTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1.EncryptionInfo.lastUpdateTime: object expected"); + message.lastUpdateTime = $root.google.protobuf.Timestamp.fromObject(object.lastUpdateTime); + } + return message; + }; + + /** + * Creates a plain object from an EncryptionInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1.EncryptionInfo + * @static + * @param {google.cloud.redis.cluster.v1.EncryptionInfo} message EncryptionInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EncryptionInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.kmsKeyVersions = []; + if (options.defaults) { + object.encryptionType = options.enums === String ? "TYPE_UNSPECIFIED" : 0; + object.kmsKeyPrimaryState = options.enums === String ? "KMS_KEY_STATE_UNSPECIFIED" : 0; + object.lastUpdateTime = null; + } + if (message.encryptionType != null && message.hasOwnProperty("encryptionType")) + object.encryptionType = options.enums === String ? $root.google.cloud.redis.cluster.v1.EncryptionInfo.Type[message.encryptionType] === undefined ? message.encryptionType : $root.google.cloud.redis.cluster.v1.EncryptionInfo.Type[message.encryptionType] : message.encryptionType; + if (message.kmsKeyVersions && message.kmsKeyVersions.length) { + object.kmsKeyVersions = []; + for (var j = 0; j < message.kmsKeyVersions.length; ++j) + object.kmsKeyVersions[j] = message.kmsKeyVersions[j]; + } + if (message.kmsKeyPrimaryState != null && message.hasOwnProperty("kmsKeyPrimaryState")) + object.kmsKeyPrimaryState = options.enums === String ? $root.google.cloud.redis.cluster.v1.EncryptionInfo.KmsKeyState[message.kmsKeyPrimaryState] === undefined ? message.kmsKeyPrimaryState : $root.google.cloud.redis.cluster.v1.EncryptionInfo.KmsKeyState[message.kmsKeyPrimaryState] : message.kmsKeyPrimaryState; + if (message.lastUpdateTime != null && message.hasOwnProperty("lastUpdateTime")) + object.lastUpdateTime = $root.google.protobuf.Timestamp.toObject(message.lastUpdateTime, options); + return object; + }; + + /** + * Converts this EncryptionInfo to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1.EncryptionInfo + * @instance + * @returns {Object.} JSON object + */ + EncryptionInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for EncryptionInfo + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1.EncryptionInfo + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + EncryptionInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1.EncryptionInfo"; + }; + + /** + * Type enum. + * @name google.cloud.redis.cluster.v1.EncryptionInfo.Type + * @enum {number} + * @property {number} TYPE_UNSPECIFIED=0 TYPE_UNSPECIFIED value + * @property {number} GOOGLE_DEFAULT_ENCRYPTION=1 GOOGLE_DEFAULT_ENCRYPTION value + * @property {number} CUSTOMER_MANAGED_ENCRYPTION=2 CUSTOMER_MANAGED_ENCRYPTION value + */ + EncryptionInfo.Type = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "GOOGLE_DEFAULT_ENCRYPTION"] = 1; + values[valuesById[2] = "CUSTOMER_MANAGED_ENCRYPTION"] = 2; + return values; + })(); + + /** + * KmsKeyState enum. + * @name google.cloud.redis.cluster.v1.EncryptionInfo.KmsKeyState + * @enum {number} + * @property {number} KMS_KEY_STATE_UNSPECIFIED=0 KMS_KEY_STATE_UNSPECIFIED value + * @property {number} ENABLED=1 ENABLED value + * @property {number} PERMISSION_DENIED=2 PERMISSION_DENIED value + * @property {number} DISABLED=3 DISABLED value + * @property {number} DESTROYED=4 DESTROYED value + * @property {number} DESTROY_SCHEDULED=5 DESTROY_SCHEDULED value + * @property {number} EKM_KEY_UNREACHABLE_DETECTED=6 EKM_KEY_UNREACHABLE_DETECTED value + * @property {number} BILLING_DISABLED=7 BILLING_DISABLED value + * @property {number} UNKNOWN_FAILURE=8 UNKNOWN_FAILURE value + */ + EncryptionInfo.KmsKeyState = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "KMS_KEY_STATE_UNSPECIFIED"] = 0; + values[valuesById[1] = "ENABLED"] = 1; + values[valuesById[2] = "PERMISSION_DENIED"] = 2; + values[valuesById[3] = "DISABLED"] = 3; + values[valuesById[4] = "DESTROYED"] = 4; + values[valuesById[5] = "DESTROY_SCHEDULED"] = 5; + values[valuesById[6] = "EKM_KEY_UNREACHABLE_DETECTED"] = 6; + values[valuesById[7] = "BILLING_DISABLED"] = 7; + values[valuesById[8] = "UNKNOWN_FAILURE"] = 8; + return values; + })(); + + return EncryptionInfo; + })(); + + return v1; + })(); + + cluster.v1beta1 = (function() { + + /** + * Namespace v1beta1. + * @memberof google.cloud.redis.cluster + * @namespace + */ + var v1beta1 = {}; + + v1beta1.CloudRedisCluster = (function() { + + /** + * Constructs a new CloudRedisCluster service. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a CloudRedisCluster + * @extends $protobuf.rpc.Service + * @constructor + * @param {$protobuf.RPCImpl} rpcImpl RPC implementation + * @param {boolean} [requestDelimited=false] Whether requests are length-delimited + * @param {boolean} [responseDelimited=false] Whether responses are length-delimited + */ + function CloudRedisCluster(rpcImpl, requestDelimited, responseDelimited) { + $protobuf.rpc.Service.call(this, rpcImpl, requestDelimited, responseDelimited); + } + + (CloudRedisCluster.prototype = Object.create($protobuf.rpc.Service.prototype)).constructor = CloudRedisCluster; + + /** + * Creates new CloudRedisCluster service using the specified rpc implementation. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @static + * @param {$protobuf.RPCImpl} rpcImpl RPC implementation + * @param {boolean} [requestDelimited=false] Whether requests are length-delimited + * @param {boolean} [responseDelimited=false] Whether responses are length-delimited + * @returns {CloudRedisCluster} RPC service. Useful where requests and/or responses are streamed. + */ + CloudRedisCluster.create = function create(rpcImpl, requestDelimited, responseDelimited) { + return new this(rpcImpl, requestDelimited, responseDelimited); + }; + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|listClusters}. + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @typedef ListClustersCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.redis.cluster.v1beta1.ListClustersResponse} [response] ListClustersResponse + */ + + /** + * Calls ListClusters. + * @function listClusters + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IListClustersRequest} request ListClustersRequest message or plain object + * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.ListClustersCallback} callback Node-style callback called with the error, if any, and ListClustersResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.listClusters = function listClusters(request, callback) { + return this.rpcCall(listClusters, $root.google.cloud.redis.cluster.v1beta1.ListClustersRequest, $root.google.cloud.redis.cluster.v1beta1.ListClustersResponse, request, callback); + }, "name", { value: "ListClusters" }); + + /** + * Calls ListClusters. + * @function listClusters + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IListClustersRequest} request ListClustersRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|getCluster}. + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @typedef GetClusterCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.redis.cluster.v1beta1.Cluster} [response] Cluster + */ + + /** + * Calls GetCluster. + * @function getCluster + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IGetClusterRequest} request GetClusterRequest message or plain object + * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.GetClusterCallback} callback Node-style callback called with the error, if any, and Cluster + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.getCluster = function getCluster(request, callback) { + return this.rpcCall(getCluster, $root.google.cloud.redis.cluster.v1beta1.GetClusterRequest, $root.google.cloud.redis.cluster.v1beta1.Cluster, request, callback); + }, "name", { value: "GetCluster" }); + + /** + * Calls GetCluster. + * @function getCluster + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IGetClusterRequest} request GetClusterRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|updateCluster}. + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @typedef UpdateClusterCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.longrunning.Operation} [response] Operation + */ + + /** + * Calls UpdateCluster. + * @function updateCluster + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest} request UpdateClusterRequest message or plain object + * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.UpdateClusterCallback} callback Node-style callback called with the error, if any, and Operation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.updateCluster = function updateCluster(request, callback) { + return this.rpcCall(updateCluster, $root.google.cloud.redis.cluster.v1beta1.UpdateClusterRequest, $root.google.longrunning.Operation, request, callback); + }, "name", { value: "UpdateCluster" }); + + /** + * Calls UpdateCluster. + * @function updateCluster + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest} request UpdateClusterRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|deleteCluster}. + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @typedef DeleteClusterCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.longrunning.Operation} [response] Operation + */ + + /** + * Calls DeleteCluster. + * @function deleteCluster + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest} request DeleteClusterRequest message or plain object + * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.DeleteClusterCallback} callback Node-style callback called with the error, if any, and Operation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.deleteCluster = function deleteCluster(request, callback) { + return this.rpcCall(deleteCluster, $root.google.cloud.redis.cluster.v1beta1.DeleteClusterRequest, $root.google.longrunning.Operation, request, callback); + }, "name", { value: "DeleteCluster" }); + + /** + * Calls DeleteCluster. + * @function deleteCluster + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance * @param {google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest} request DeleteClusterRequest message or plain object * @returns {Promise} Promise * @variation 2 */ - /** - * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|createCluster}. - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @typedef CreateClusterCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.longrunning.Operation} [response] Operation - */ + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|createCluster}. + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @typedef CreateClusterCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.longrunning.Operation} [response] Operation + */ + + /** + * Calls CreateCluster. + * @function createCluster + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.ICreateClusterRequest} request CreateClusterRequest message or plain object + * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.CreateClusterCallback} callback Node-style callback called with the error, if any, and Operation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.createCluster = function createCluster(request, callback) { + return this.rpcCall(createCluster, $root.google.cloud.redis.cluster.v1beta1.CreateClusterRequest, $root.google.longrunning.Operation, request, callback); + }, "name", { value: "CreateCluster" }); + + /** + * Calls CreateCluster. + * @function createCluster + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.ICreateClusterRequest} request CreateClusterRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|getClusterCertificateAuthority}. + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @typedef GetClusterCertificateAuthorityCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.redis.cluster.v1beta1.CertificateAuthority} [response] CertificateAuthority + */ + + /** + * Calls GetClusterCertificateAuthority. + * @function getClusterCertificateAuthority + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest} request GetClusterCertificateAuthorityRequest message or plain object + * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.GetClusterCertificateAuthorityCallback} callback Node-style callback called with the error, if any, and CertificateAuthority + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.getClusterCertificateAuthority = function getClusterCertificateAuthority(request, callback) { + return this.rpcCall(getClusterCertificateAuthority, $root.google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest, $root.google.cloud.redis.cluster.v1beta1.CertificateAuthority, request, callback); + }, "name", { value: "GetClusterCertificateAuthority" }); + + /** + * Calls GetClusterCertificateAuthority. + * @function getClusterCertificateAuthority + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest} request GetClusterCertificateAuthorityRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|rescheduleClusterMaintenance}. + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @typedef RescheduleClusterMaintenanceCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.longrunning.Operation} [response] Operation + */ + + /** + * Calls RescheduleClusterMaintenance. + * @function rescheduleClusterMaintenance + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IRescheduleClusterMaintenanceRequest} request RescheduleClusterMaintenanceRequest message or plain object + * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.RescheduleClusterMaintenanceCallback} callback Node-style callback called with the error, if any, and Operation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.rescheduleClusterMaintenance = function rescheduleClusterMaintenance(request, callback) { + return this.rpcCall(rescheduleClusterMaintenance, $root.google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest, $root.google.longrunning.Operation, request, callback); + }, "name", { value: "RescheduleClusterMaintenance" }); + + /** + * Calls RescheduleClusterMaintenance. + * @function rescheduleClusterMaintenance + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IRescheduleClusterMaintenanceRequest} request RescheduleClusterMaintenanceRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|listBackupCollections}. + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @typedef ListBackupCollectionsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse} [response] ListBackupCollectionsResponse + */ + + /** + * Calls ListBackupCollections. + * @function listBackupCollections + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest} request ListBackupCollectionsRequest message or plain object + * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.ListBackupCollectionsCallback} callback Node-style callback called with the error, if any, and ListBackupCollectionsResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.listBackupCollections = function listBackupCollections(request, callback) { + return this.rpcCall(listBackupCollections, $root.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest, $root.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse, request, callback); + }, "name", { value: "ListBackupCollections" }); + + /** + * Calls ListBackupCollections. + * @function listBackupCollections + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest} request ListBackupCollectionsRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|getBackupCollection}. + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @typedef GetBackupCollectionCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.redis.cluster.v1beta1.BackupCollection} [response] BackupCollection + */ + + /** + * Calls GetBackupCollection. + * @function getBackupCollection + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest} request GetBackupCollectionRequest message or plain object + * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.GetBackupCollectionCallback} callback Node-style callback called with the error, if any, and BackupCollection + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.getBackupCollection = function getBackupCollection(request, callback) { + return this.rpcCall(getBackupCollection, $root.google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest, $root.google.cloud.redis.cluster.v1beta1.BackupCollection, request, callback); + }, "name", { value: "GetBackupCollection" }); + + /** + * Calls GetBackupCollection. + * @function getBackupCollection + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest} request GetBackupCollectionRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|listBackups}. + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @typedef ListBackupsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.redis.cluster.v1beta1.ListBackupsResponse} [response] ListBackupsResponse + */ + + /** + * Calls ListBackups. + * @function listBackups + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IListBackupsRequest} request ListBackupsRequest message or plain object + * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.ListBackupsCallback} callback Node-style callback called with the error, if any, and ListBackupsResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.listBackups = function listBackups(request, callback) { + return this.rpcCall(listBackups, $root.google.cloud.redis.cluster.v1beta1.ListBackupsRequest, $root.google.cloud.redis.cluster.v1beta1.ListBackupsResponse, request, callback); + }, "name", { value: "ListBackups" }); + + /** + * Calls ListBackups. + * @function listBackups + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IListBackupsRequest} request ListBackupsRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|getBackup}. + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @typedef GetBackupCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.redis.cluster.v1beta1.Backup} [response] Backup + */ + + /** + * Calls GetBackup. + * @function getBackup + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IGetBackupRequest} request GetBackupRequest message or plain object + * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.GetBackupCallback} callback Node-style callback called with the error, if any, and Backup + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.getBackup = function getBackup(request, callback) { + return this.rpcCall(getBackup, $root.google.cloud.redis.cluster.v1beta1.GetBackupRequest, $root.google.cloud.redis.cluster.v1beta1.Backup, request, callback); + }, "name", { value: "GetBackup" }); + + /** + * Calls GetBackup. + * @function getBackup + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IGetBackupRequest} request GetBackupRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|deleteBackup}. + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @typedef DeleteBackupCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.longrunning.Operation} [response] Operation + */ + + /** + * Calls DeleteBackup. + * @function deleteBackup + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IDeleteBackupRequest} request DeleteBackupRequest message or plain object + * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.DeleteBackupCallback} callback Node-style callback called with the error, if any, and Operation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.deleteBackup = function deleteBackup(request, callback) { + return this.rpcCall(deleteBackup, $root.google.cloud.redis.cluster.v1beta1.DeleteBackupRequest, $root.google.longrunning.Operation, request, callback); + }, "name", { value: "DeleteBackup" }); + + /** + * Calls DeleteBackup. + * @function deleteBackup + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IDeleteBackupRequest} request DeleteBackupRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|exportBackup}. + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @typedef ExportBackupCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.longrunning.Operation} [response] Operation + */ + + /** + * Calls ExportBackup. + * @function exportBackup + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IExportBackupRequest} request ExportBackupRequest message or plain object + * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.ExportBackupCallback} callback Node-style callback called with the error, if any, and Operation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.exportBackup = function exportBackup(request, callback) { + return this.rpcCall(exportBackup, $root.google.cloud.redis.cluster.v1beta1.ExportBackupRequest, $root.google.longrunning.Operation, request, callback); + }, "name", { value: "ExportBackup" }); + + /** + * Calls ExportBackup. + * @function exportBackup + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IExportBackupRequest} request ExportBackupRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|backupCluster}. + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @typedef BackupClusterCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.longrunning.Operation} [response] Operation + */ + + /** + * Calls BackupCluster. + * @function backupCluster + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IBackupClusterRequest} request BackupClusterRequest message or plain object + * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.BackupClusterCallback} callback Node-style callback called with the error, if any, and Operation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(CloudRedisCluster.prototype.backupCluster = function backupCluster(request, callback) { + return this.rpcCall(backupCluster, $root.google.cloud.redis.cluster.v1beta1.BackupClusterRequest, $root.google.longrunning.Operation, request, callback); + }, "name", { value: "BackupCluster" }); + + /** + * Calls BackupCluster. + * @function backupCluster + * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster + * @instance + * @param {google.cloud.redis.cluster.v1beta1.IBackupClusterRequest} request BackupClusterRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + return CloudRedisCluster; + })(); + + /** + * PscConnectionStatus enum. + * @name google.cloud.redis.cluster.v1beta1.PscConnectionStatus + * @enum {number} + * @property {number} PSC_CONNECTION_STATUS_UNSPECIFIED=0 PSC_CONNECTION_STATUS_UNSPECIFIED value + * @property {number} PSC_CONNECTION_STATUS_ACTIVE=1 PSC_CONNECTION_STATUS_ACTIVE value + * @property {number} PSC_CONNECTION_STATUS_NOT_FOUND=2 PSC_CONNECTION_STATUS_NOT_FOUND value + */ + v1beta1.PscConnectionStatus = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "PSC_CONNECTION_STATUS_UNSPECIFIED"] = 0; + values[valuesById[1] = "PSC_CONNECTION_STATUS_ACTIVE"] = 1; + values[valuesById[2] = "PSC_CONNECTION_STATUS_NOT_FOUND"] = 2; + return values; + })(); + + /** + * AuthorizationMode enum. + * @name google.cloud.redis.cluster.v1beta1.AuthorizationMode + * @enum {number} + * @property {number} AUTH_MODE_UNSPECIFIED=0 AUTH_MODE_UNSPECIFIED value + * @property {number} AUTH_MODE_IAM_AUTH=1 AUTH_MODE_IAM_AUTH value + * @property {number} AUTH_MODE_DISABLED=2 AUTH_MODE_DISABLED value + */ + v1beta1.AuthorizationMode = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "AUTH_MODE_UNSPECIFIED"] = 0; + values[valuesById[1] = "AUTH_MODE_IAM_AUTH"] = 1; + values[valuesById[2] = "AUTH_MODE_DISABLED"] = 2; + return values; + })(); + + /** + * NodeType enum. + * @name google.cloud.redis.cluster.v1beta1.NodeType + * @enum {number} + * @property {number} NODE_TYPE_UNSPECIFIED=0 NODE_TYPE_UNSPECIFIED value + * @property {number} REDIS_SHARED_CORE_NANO=1 REDIS_SHARED_CORE_NANO value + * @property {number} REDIS_HIGHMEM_MEDIUM=2 REDIS_HIGHMEM_MEDIUM value + * @property {number} REDIS_HIGHMEM_XLARGE=3 REDIS_HIGHMEM_XLARGE value + * @property {number} REDIS_STANDARD_SMALL=4 REDIS_STANDARD_SMALL value + */ + v1beta1.NodeType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "NODE_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "REDIS_SHARED_CORE_NANO"] = 1; + values[valuesById[2] = "REDIS_HIGHMEM_MEDIUM"] = 2; + values[valuesById[3] = "REDIS_HIGHMEM_XLARGE"] = 3; + values[valuesById[4] = "REDIS_STANDARD_SMALL"] = 4; + return values; + })(); + + /** + * TransitEncryptionMode enum. + * @name google.cloud.redis.cluster.v1beta1.TransitEncryptionMode + * @enum {number} + * @property {number} TRANSIT_ENCRYPTION_MODE_UNSPECIFIED=0 TRANSIT_ENCRYPTION_MODE_UNSPECIFIED value + * @property {number} TRANSIT_ENCRYPTION_MODE_DISABLED=1 TRANSIT_ENCRYPTION_MODE_DISABLED value + * @property {number} TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION=2 TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION value + */ + v1beta1.TransitEncryptionMode = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "TRANSIT_ENCRYPTION_MODE_UNSPECIFIED"] = 0; + values[valuesById[1] = "TRANSIT_ENCRYPTION_MODE_DISABLED"] = 1; + values[valuesById[2] = "TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION"] = 2; + return values; + })(); + + /** + * ConnectionType enum. + * @name google.cloud.redis.cluster.v1beta1.ConnectionType + * @enum {number} + * @property {number} CONNECTION_TYPE_UNSPECIFIED=0 CONNECTION_TYPE_UNSPECIFIED value + * @property {number} CONNECTION_TYPE_DISCOVERY=1 CONNECTION_TYPE_DISCOVERY value + * @property {number} CONNECTION_TYPE_PRIMARY=2 CONNECTION_TYPE_PRIMARY value + * @property {number} CONNECTION_TYPE_READER=3 CONNECTION_TYPE_READER value + */ + v1beta1.ConnectionType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "CONNECTION_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "CONNECTION_TYPE_DISCOVERY"] = 1; + values[valuesById[2] = "CONNECTION_TYPE_PRIMARY"] = 2; + values[valuesById[3] = "CONNECTION_TYPE_READER"] = 3; + return values; + })(); + + v1beta1.CreateClusterRequest = (function() { + + /** + * Properties of a CreateClusterRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface ICreateClusterRequest + * @property {string|null} [parent] CreateClusterRequest parent + * @property {string|null} [clusterId] CreateClusterRequest clusterId + * @property {google.cloud.redis.cluster.v1beta1.ICluster|null} [cluster] CreateClusterRequest cluster + * @property {string|null} [requestId] CreateClusterRequest requestId + */ + + /** + * Constructs a new CreateClusterRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a CreateClusterRequest. + * @implements ICreateClusterRequest + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.ICreateClusterRequest=} [properties] Properties to set + */ + function CreateClusterRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CreateClusterRequest parent. + * @member {string} parent + * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest + * @instance + */ + CreateClusterRequest.prototype.parent = ""; + + /** + * CreateClusterRequest clusterId. + * @member {string} clusterId + * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest + * @instance + */ + CreateClusterRequest.prototype.clusterId = ""; + + /** + * CreateClusterRequest cluster. + * @member {google.cloud.redis.cluster.v1beta1.ICluster|null|undefined} cluster + * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest + * @instance + */ + CreateClusterRequest.prototype.cluster = null; + + /** + * CreateClusterRequest requestId. + * @member {string} requestId + * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest + * @instance + */ + CreateClusterRequest.prototype.requestId = ""; + + /** + * Creates a new CreateClusterRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.ICreateClusterRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.CreateClusterRequest} CreateClusterRequest instance + */ + CreateClusterRequest.create = function create(properties) { + return new CreateClusterRequest(properties); + }; + + /** + * Encodes the specified CreateClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CreateClusterRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.ICreateClusterRequest} message CreateClusterRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CreateClusterRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); + if (message.clusterId != null && Object.hasOwnProperty.call(message, "clusterId")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.clusterId); + if (message.cluster != null && Object.hasOwnProperty.call(message, "cluster")) + $root.google.cloud.redis.cluster.v1beta1.Cluster.encode(message.cluster, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.requestId != null && Object.hasOwnProperty.call(message, "requestId")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.requestId); + return writer; + }; + + /** + * Encodes the specified CreateClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CreateClusterRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.ICreateClusterRequest} message CreateClusterRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CreateClusterRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CreateClusterRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.CreateClusterRequest} CreateClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CreateClusterRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.CreateClusterRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.parent = reader.string(); + break; + } + case 2: { + message.clusterId = reader.string(); + break; + } + case 3: { + message.cluster = $root.google.cloud.redis.cluster.v1beta1.Cluster.decode(reader, reader.uint32()); + break; + } + case 4: { + message.requestId = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CreateClusterRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.CreateClusterRequest} CreateClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CreateClusterRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CreateClusterRequest message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CreateClusterRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.parent != null && message.hasOwnProperty("parent")) + if (!$util.isString(message.parent)) + return "parent: string expected"; + if (message.clusterId != null && message.hasOwnProperty("clusterId")) + if (!$util.isString(message.clusterId)) + return "clusterId: string expected"; + if (message.cluster != null && message.hasOwnProperty("cluster")) { + var error = $root.google.cloud.redis.cluster.v1beta1.Cluster.verify(message.cluster); + if (error) + return "cluster." + error; + } + if (message.requestId != null && message.hasOwnProperty("requestId")) + if (!$util.isString(message.requestId)) + return "requestId: string expected"; + return null; + }; + + /** + * Creates a CreateClusterRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.CreateClusterRequest} CreateClusterRequest + */ + CreateClusterRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.CreateClusterRequest) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.CreateClusterRequest(); + if (object.parent != null) + message.parent = String(object.parent); + if (object.clusterId != null) + message.clusterId = String(object.clusterId); + if (object.cluster != null) { + if (typeof object.cluster !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.CreateClusterRequest.cluster: object expected"); + message.cluster = $root.google.cloud.redis.cluster.v1beta1.Cluster.fromObject(object.cluster); + } + if (object.requestId != null) + message.requestId = String(object.requestId); + return message; + }; + + /** + * Creates a plain object from a CreateClusterRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.CreateClusterRequest} message CreateClusterRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CreateClusterRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.parent = ""; + object.clusterId = ""; + object.cluster = null; + object.requestId = ""; + } + if (message.parent != null && message.hasOwnProperty("parent")) + object.parent = message.parent; + if (message.clusterId != null && message.hasOwnProperty("clusterId")) + object.clusterId = message.clusterId; + if (message.cluster != null && message.hasOwnProperty("cluster")) + object.cluster = $root.google.cloud.redis.cluster.v1beta1.Cluster.toObject(message.cluster, options); + if (message.requestId != null && message.hasOwnProperty("requestId")) + object.requestId = message.requestId; + return object; + }; + + /** + * Converts this CreateClusterRequest to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest + * @instance + * @returns {Object.} JSON object + */ + CreateClusterRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CreateClusterRequest + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CreateClusterRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.CreateClusterRequest"; + }; + + return CreateClusterRequest; + })(); + + v1beta1.ListClustersRequest = (function() { + + /** + * Properties of a ListClustersRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IListClustersRequest + * @property {string|null} [parent] ListClustersRequest parent + * @property {number|null} [pageSize] ListClustersRequest pageSize + * @property {string|null} [pageToken] ListClustersRequest pageToken + */ + + /** + * Constructs a new ListClustersRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a ListClustersRequest. + * @implements IListClustersRequest + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IListClustersRequest=} [properties] Properties to set + */ + function ListClustersRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ListClustersRequest parent. + * @member {string} parent + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @instance + */ + ListClustersRequest.prototype.parent = ""; + + /** + * ListClustersRequest pageSize. + * @member {number} pageSize + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @instance + */ + ListClustersRequest.prototype.pageSize = 0; + + /** + * ListClustersRequest pageToken. + * @member {string} pageToken + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @instance + */ + ListClustersRequest.prototype.pageToken = ""; + + /** + * Creates a new ListClustersRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IListClustersRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.ListClustersRequest} ListClustersRequest instance + */ + ListClustersRequest.create = function create(properties) { + return new ListClustersRequest(properties); + }; + + /** + * Encodes the specified ListClustersRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListClustersRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IListClustersRequest} message ListClustersRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListClustersRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); + if (message.pageSize != null && Object.hasOwnProperty.call(message, "pageSize")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.pageSize); + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.pageToken); + return writer; + }; + + /** + * Encodes the specified ListClustersRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListClustersRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IListClustersRequest} message ListClustersRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListClustersRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ListClustersRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.ListClustersRequest} ListClustersRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListClustersRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.ListClustersRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.parent = reader.string(); + break; + } + case 2: { + message.pageSize = reader.int32(); + break; + } + case 3: { + message.pageToken = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ListClustersRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.ListClustersRequest} ListClustersRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListClustersRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ListClustersRequest message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ListClustersRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.parent != null && message.hasOwnProperty("parent")) + if (!$util.isString(message.parent)) + return "parent: string expected"; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + if (!$util.isInteger(message.pageSize)) + return "pageSize: integer expected"; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (!$util.isString(message.pageToken)) + return "pageToken: string expected"; + return null; + }; + + /** + * Creates a ListClustersRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.ListClustersRequest} ListClustersRequest + */ + ListClustersRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.ListClustersRequest) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.ListClustersRequest(); + if (object.parent != null) + message.parent = String(object.parent); + if (object.pageSize != null) + message.pageSize = object.pageSize | 0; + if (object.pageToken != null) + message.pageToken = String(object.pageToken); + return message; + }; + + /** + * Creates a plain object from a ListClustersRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.ListClustersRequest} message ListClustersRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ListClustersRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.parent = ""; + object.pageSize = 0; + object.pageToken = ""; + } + if (message.parent != null && message.hasOwnProperty("parent")) + object.parent = message.parent; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + object.pageSize = message.pageSize; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + object.pageToken = message.pageToken; + return object; + }; + + /** + * Converts this ListClustersRequest to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @instance + * @returns {Object.} JSON object + */ + ListClustersRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ListClustersRequest + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ListClustersRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.ListClustersRequest"; + }; + + return ListClustersRequest; + })(); + + v1beta1.ListClustersResponse = (function() { + + /** + * Properties of a ListClustersResponse. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IListClustersResponse + * @property {Array.|null} [clusters] ListClustersResponse clusters + * @property {string|null} [nextPageToken] ListClustersResponse nextPageToken + * @property {Array.|null} [unreachable] ListClustersResponse unreachable + */ + + /** + * Constructs a new ListClustersResponse. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a ListClustersResponse. + * @implements IListClustersResponse + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IListClustersResponse=} [properties] Properties to set + */ + function ListClustersResponse(properties) { + this.clusters = []; + this.unreachable = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ListClustersResponse clusters. + * @member {Array.} clusters + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @instance + */ + ListClustersResponse.prototype.clusters = $util.emptyArray; + + /** + * ListClustersResponse nextPageToken. + * @member {string} nextPageToken + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @instance + */ + ListClustersResponse.prototype.nextPageToken = ""; + + /** + * ListClustersResponse unreachable. + * @member {Array.} unreachable + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @instance + */ + ListClustersResponse.prototype.unreachable = $util.emptyArray; + + /** + * Creates a new ListClustersResponse instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @static + * @param {google.cloud.redis.cluster.v1beta1.IListClustersResponse=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.ListClustersResponse} ListClustersResponse instance + */ + ListClustersResponse.create = function create(properties) { + return new ListClustersResponse(properties); + }; + + /** + * Encodes the specified ListClustersResponse message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListClustersResponse.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @static + * @param {google.cloud.redis.cluster.v1beta1.IListClustersResponse} message ListClustersResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListClustersResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.clusters != null && message.clusters.length) + for (var i = 0; i < message.clusters.length; ++i) + $root.google.cloud.redis.cluster.v1beta1.Cluster.encode(message.clusters[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.nextPageToken); + if (message.unreachable != null && message.unreachable.length) + for (var i = 0; i < message.unreachable.length; ++i) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.unreachable[i]); + return writer; + }; + + /** + * Encodes the specified ListClustersResponse message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListClustersResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @static + * @param {google.cloud.redis.cluster.v1beta1.IListClustersResponse} message ListClustersResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListClustersResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ListClustersResponse message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.ListClustersResponse} ListClustersResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListClustersResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.ListClustersResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (!(message.clusters && message.clusters.length)) + message.clusters = []; + message.clusters.push($root.google.cloud.redis.cluster.v1beta1.Cluster.decode(reader, reader.uint32())); + break; + } + case 2: { + message.nextPageToken = reader.string(); + break; + } + case 3: { + if (!(message.unreachable && message.unreachable.length)) + message.unreachable = []; + message.unreachable.push(reader.string()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ListClustersResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.ListClustersResponse} ListClustersResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListClustersResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ListClustersResponse message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ListClustersResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.clusters != null && message.hasOwnProperty("clusters")) { + if (!Array.isArray(message.clusters)) + return "clusters: array expected"; + for (var i = 0; i < message.clusters.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1beta1.Cluster.verify(message.clusters[i]); + if (error) + return "clusters." + error; + } + } + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (!$util.isString(message.nextPageToken)) + return "nextPageToken: string expected"; + if (message.unreachable != null && message.hasOwnProperty("unreachable")) { + if (!Array.isArray(message.unreachable)) + return "unreachable: array expected"; + for (var i = 0; i < message.unreachable.length; ++i) + if (!$util.isString(message.unreachable[i])) + return "unreachable: string[] expected"; + } + return null; + }; + + /** + * Creates a ListClustersResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.ListClustersResponse} ListClustersResponse + */ + ListClustersResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.ListClustersResponse) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.ListClustersResponse(); + if (object.clusters) { + if (!Array.isArray(object.clusters)) + throw TypeError(".google.cloud.redis.cluster.v1beta1.ListClustersResponse.clusters: array expected"); + message.clusters = []; + for (var i = 0; i < object.clusters.length; ++i) { + if (typeof object.clusters[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.ListClustersResponse.clusters: object expected"); + message.clusters[i] = $root.google.cloud.redis.cluster.v1beta1.Cluster.fromObject(object.clusters[i]); + } + } + if (object.nextPageToken != null) + message.nextPageToken = String(object.nextPageToken); + if (object.unreachable) { + if (!Array.isArray(object.unreachable)) + throw TypeError(".google.cloud.redis.cluster.v1beta1.ListClustersResponse.unreachable: array expected"); + message.unreachable = []; + for (var i = 0; i < object.unreachable.length; ++i) + message.unreachable[i] = String(object.unreachable[i]); + } + return message; + }; + + /** + * Creates a plain object from a ListClustersResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @static + * @param {google.cloud.redis.cluster.v1beta1.ListClustersResponse} message ListClustersResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ListClustersResponse.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.clusters = []; + object.unreachable = []; + } + if (options.defaults) + object.nextPageToken = ""; + if (message.clusters && message.clusters.length) { + object.clusters = []; + for (var j = 0; j < message.clusters.length; ++j) + object.clusters[j] = $root.google.cloud.redis.cluster.v1beta1.Cluster.toObject(message.clusters[j], options); + } + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + object.nextPageToken = message.nextPageToken; + if (message.unreachable && message.unreachable.length) { + object.unreachable = []; + for (var j = 0; j < message.unreachable.length; ++j) + object.unreachable[j] = message.unreachable[j]; + } + return object; + }; + + /** + * Converts this ListClustersResponse to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @instance + * @returns {Object.} JSON object + */ + ListClustersResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ListClustersResponse + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ListClustersResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.ListClustersResponse"; + }; + + return ListClustersResponse; + })(); + + v1beta1.UpdateClusterRequest = (function() { + + /** + * Properties of an UpdateClusterRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IUpdateClusterRequest + * @property {google.protobuf.IFieldMask|null} [updateMask] UpdateClusterRequest updateMask + * @property {google.cloud.redis.cluster.v1beta1.ICluster|null} [cluster] UpdateClusterRequest cluster + * @property {string|null} [requestId] UpdateClusterRequest requestId + */ + + /** + * Constructs a new UpdateClusterRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents an UpdateClusterRequest. + * @implements IUpdateClusterRequest + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest=} [properties] Properties to set + */ + function UpdateClusterRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * UpdateClusterRequest updateMask. + * @member {google.protobuf.IFieldMask|null|undefined} updateMask + * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @instance + */ + UpdateClusterRequest.prototype.updateMask = null; + + /** + * UpdateClusterRequest cluster. + * @member {google.cloud.redis.cluster.v1beta1.ICluster|null|undefined} cluster + * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @instance + */ + UpdateClusterRequest.prototype.cluster = null; + + /** + * UpdateClusterRequest requestId. + * @member {string} requestId + * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @instance + */ + UpdateClusterRequest.prototype.requestId = ""; + + /** + * Creates a new UpdateClusterRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.UpdateClusterRequest} UpdateClusterRequest instance + */ + UpdateClusterRequest.create = function create(properties) { + return new UpdateClusterRequest(properties); + }; + + /** + * Encodes the specified UpdateClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.UpdateClusterRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest} message UpdateClusterRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UpdateClusterRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.updateMask != null && Object.hasOwnProperty.call(message, "updateMask")) + $root.google.protobuf.FieldMask.encode(message.updateMask, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.cluster != null && Object.hasOwnProperty.call(message, "cluster")) + $root.google.cloud.redis.cluster.v1beta1.Cluster.encode(message.cluster, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.requestId != null && Object.hasOwnProperty.call(message, "requestId")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.requestId); + return writer; + }; + + /** + * Encodes the specified UpdateClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.UpdateClusterRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest} message UpdateClusterRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UpdateClusterRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an UpdateClusterRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.UpdateClusterRequest} UpdateClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UpdateClusterRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.UpdateClusterRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.updateMask = $root.google.protobuf.FieldMask.decode(reader, reader.uint32()); + break; + } + case 2: { + message.cluster = $root.google.cloud.redis.cluster.v1beta1.Cluster.decode(reader, reader.uint32()); + break; + } + case 3: { + message.requestId = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an UpdateClusterRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.UpdateClusterRequest} UpdateClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UpdateClusterRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an UpdateClusterRequest message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + UpdateClusterRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.updateMask != null && message.hasOwnProperty("updateMask")) { + var error = $root.google.protobuf.FieldMask.verify(message.updateMask); + if (error) + return "updateMask." + error; + } + if (message.cluster != null && message.hasOwnProperty("cluster")) { + var error = $root.google.cloud.redis.cluster.v1beta1.Cluster.verify(message.cluster); + if (error) + return "cluster." + error; + } + if (message.requestId != null && message.hasOwnProperty("requestId")) + if (!$util.isString(message.requestId)) + return "requestId: string expected"; + return null; + }; + + /** + * Creates an UpdateClusterRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.UpdateClusterRequest} UpdateClusterRequest + */ + UpdateClusterRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.UpdateClusterRequest) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.UpdateClusterRequest(); + if (object.updateMask != null) { + if (typeof object.updateMask !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.UpdateClusterRequest.updateMask: object expected"); + message.updateMask = $root.google.protobuf.FieldMask.fromObject(object.updateMask); + } + if (object.cluster != null) { + if (typeof object.cluster !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.UpdateClusterRequest.cluster: object expected"); + message.cluster = $root.google.cloud.redis.cluster.v1beta1.Cluster.fromObject(object.cluster); + } + if (object.requestId != null) + message.requestId = String(object.requestId); + return message; + }; + + /** + * Creates a plain object from an UpdateClusterRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.UpdateClusterRequest} message UpdateClusterRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + UpdateClusterRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.updateMask = null; + object.cluster = null; + object.requestId = ""; + } + if (message.updateMask != null && message.hasOwnProperty("updateMask")) + object.updateMask = $root.google.protobuf.FieldMask.toObject(message.updateMask, options); + if (message.cluster != null && message.hasOwnProperty("cluster")) + object.cluster = $root.google.cloud.redis.cluster.v1beta1.Cluster.toObject(message.cluster, options); + if (message.requestId != null && message.hasOwnProperty("requestId")) + object.requestId = message.requestId; + return object; + }; + + /** + * Converts this UpdateClusterRequest to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @instance + * @returns {Object.} JSON object + */ + UpdateClusterRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for UpdateClusterRequest + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + UpdateClusterRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.UpdateClusterRequest"; + }; + + return UpdateClusterRequest; + })(); + + v1beta1.GetClusterRequest = (function() { + + /** + * Properties of a GetClusterRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IGetClusterRequest + * @property {string|null} [name] GetClusterRequest name + */ + + /** + * Constructs a new GetClusterRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a GetClusterRequest. + * @implements IGetClusterRequest + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IGetClusterRequest=} [properties] Properties to set + */ + function GetClusterRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GetClusterRequest name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @instance + */ + GetClusterRequest.prototype.name = ""; + + /** + * Creates a new GetClusterRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IGetClusterRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.GetClusterRequest} GetClusterRequest instance + */ + GetClusterRequest.create = function create(properties) { + return new GetClusterRequest(properties); + }; + + /** + * Encodes the specified GetClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetClusterRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IGetClusterRequest} message GetClusterRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetClusterRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + return writer; + }; + + /** + * Encodes the specified GetClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetClusterRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IGetClusterRequest} message GetClusterRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetClusterRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetClusterRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.GetClusterRequest} GetClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetClusterRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.GetClusterRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.name = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetClusterRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.GetClusterRequest} GetClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetClusterRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetClusterRequest message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetClusterRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + return null; + }; + + /** + * Creates a GetClusterRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.GetClusterRequest} GetClusterRequest + */ + GetClusterRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.GetClusterRequest) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.GetClusterRequest(); + if (object.name != null) + message.name = String(object.name); + return message; + }; + + /** + * Creates a plain object from a GetClusterRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.GetClusterRequest} message GetClusterRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetClusterRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.name = ""; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + return object; + }; + + /** + * Converts this GetClusterRequest to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @instance + * @returns {Object.} JSON object + */ + GetClusterRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for GetClusterRequest + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + GetClusterRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.GetClusterRequest"; + }; + + return GetClusterRequest; + })(); + + v1beta1.DeleteClusterRequest = (function() { + + /** + * Properties of a DeleteClusterRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IDeleteClusterRequest + * @property {string|null} [name] DeleteClusterRequest name + * @property {string|null} [requestId] DeleteClusterRequest requestId + */ + + /** + * Constructs a new DeleteClusterRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a DeleteClusterRequest. + * @implements IDeleteClusterRequest + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest=} [properties] Properties to set + */ + function DeleteClusterRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * DeleteClusterRequest name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @instance + */ + DeleteClusterRequest.prototype.name = ""; + + /** + * DeleteClusterRequest requestId. + * @member {string} requestId + * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @instance + */ + DeleteClusterRequest.prototype.requestId = ""; + + /** + * Creates a new DeleteClusterRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.DeleteClusterRequest} DeleteClusterRequest instance + */ + DeleteClusterRequest.create = function create(properties) { + return new DeleteClusterRequest(properties); + }; + + /** + * Encodes the specified DeleteClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DeleteClusterRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest} message DeleteClusterRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DeleteClusterRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.requestId != null && Object.hasOwnProperty.call(message, "requestId")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.requestId); + return writer; + }; + + /** + * Encodes the specified DeleteClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DeleteClusterRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest} message DeleteClusterRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DeleteClusterRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DeleteClusterRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.DeleteClusterRequest} DeleteClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DeleteClusterRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.DeleteClusterRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.name = reader.string(); + break; + } + case 2: { + message.requestId = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DeleteClusterRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.DeleteClusterRequest} DeleteClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DeleteClusterRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DeleteClusterRequest message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DeleteClusterRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.requestId != null && message.hasOwnProperty("requestId")) + if (!$util.isString(message.requestId)) + return "requestId: string expected"; + return null; + }; + + /** + * Creates a DeleteClusterRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.DeleteClusterRequest} DeleteClusterRequest + */ + DeleteClusterRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.DeleteClusterRequest) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.DeleteClusterRequest(); + if (object.name != null) + message.name = String(object.name); + if (object.requestId != null) + message.requestId = String(object.requestId); + return message; + }; + + /** + * Creates a plain object from a DeleteClusterRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.DeleteClusterRequest} message DeleteClusterRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DeleteClusterRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.requestId = ""; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.requestId != null && message.hasOwnProperty("requestId")) + object.requestId = message.requestId; + return object; + }; + + /** + * Converts this DeleteClusterRequest to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @instance + * @returns {Object.} JSON object + */ + DeleteClusterRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for DeleteClusterRequest + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DeleteClusterRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.DeleteClusterRequest"; + }; + + return DeleteClusterRequest; + })(); + + v1beta1.GetClusterCertificateAuthorityRequest = (function() { + + /** + * Properties of a GetClusterCertificateAuthorityRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IGetClusterCertificateAuthorityRequest + * @property {string|null} [name] GetClusterCertificateAuthorityRequest name + */ + + /** + * Constructs a new GetClusterCertificateAuthorityRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a GetClusterCertificateAuthorityRequest. + * @implements IGetClusterCertificateAuthorityRequest + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest=} [properties] Properties to set + */ + function GetClusterCertificateAuthorityRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GetClusterCertificateAuthorityRequest name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @instance + */ + GetClusterCertificateAuthorityRequest.prototype.name = ""; + + /** + * Creates a new GetClusterCertificateAuthorityRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest} GetClusterCertificateAuthorityRequest instance + */ + GetClusterCertificateAuthorityRequest.create = function create(properties) { + return new GetClusterCertificateAuthorityRequest(properties); + }; + + /** + * Encodes the specified GetClusterCertificateAuthorityRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest} message GetClusterCertificateAuthorityRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetClusterCertificateAuthorityRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + return writer; + }; + + /** + * Encodes the specified GetClusterCertificateAuthorityRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest} message GetClusterCertificateAuthorityRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetClusterCertificateAuthorityRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetClusterCertificateAuthorityRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest} GetClusterCertificateAuthorityRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetClusterCertificateAuthorityRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.name = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetClusterCertificateAuthorityRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest} GetClusterCertificateAuthorityRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetClusterCertificateAuthorityRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetClusterCertificateAuthorityRequest message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetClusterCertificateAuthorityRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + return null; + }; + + /** + * Creates a GetClusterCertificateAuthorityRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest} GetClusterCertificateAuthorityRequest + */ + GetClusterCertificateAuthorityRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest(); + if (object.name != null) + message.name = String(object.name); + return message; + }; + + /** + * Creates a plain object from a GetClusterCertificateAuthorityRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest} message GetClusterCertificateAuthorityRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetClusterCertificateAuthorityRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.name = ""; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + return object; + }; + + /** + * Converts this GetClusterCertificateAuthorityRequest to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @instance + * @returns {Object.} JSON object + */ + GetClusterCertificateAuthorityRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for GetClusterCertificateAuthorityRequest + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + GetClusterCertificateAuthorityRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest"; + }; + + return GetClusterCertificateAuthorityRequest; + })(); + + v1beta1.ListBackupCollectionsRequest = (function() { + + /** + * Properties of a ListBackupCollectionsRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IListBackupCollectionsRequest + * @property {string|null} [parent] ListBackupCollectionsRequest parent + * @property {number|null} [pageSize] ListBackupCollectionsRequest pageSize + * @property {string|null} [pageToken] ListBackupCollectionsRequest pageToken + */ + + /** + * Constructs a new ListBackupCollectionsRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a ListBackupCollectionsRequest. + * @implements IListBackupCollectionsRequest + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest=} [properties] Properties to set + */ + function ListBackupCollectionsRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ListBackupCollectionsRequest parent. + * @member {string} parent + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest + * @instance + */ + ListBackupCollectionsRequest.prototype.parent = ""; + + /** + * ListBackupCollectionsRequest pageSize. + * @member {number} pageSize + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest + * @instance + */ + ListBackupCollectionsRequest.prototype.pageSize = 0; + + /** + * ListBackupCollectionsRequest pageToken. + * @member {string} pageToken + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest + * @instance + */ + ListBackupCollectionsRequest.prototype.pageToken = ""; + + /** + * Creates a new ListBackupCollectionsRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest} ListBackupCollectionsRequest instance + */ + ListBackupCollectionsRequest.create = function create(properties) { + return new ListBackupCollectionsRequest(properties); + }; + + /** + * Encodes the specified ListBackupCollectionsRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest} message ListBackupCollectionsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListBackupCollectionsRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); + if (message.pageSize != null && Object.hasOwnProperty.call(message, "pageSize")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.pageSize); + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.pageToken); + return writer; + }; + + /** + * Encodes the specified ListBackupCollectionsRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest} message ListBackupCollectionsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListBackupCollectionsRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ListBackupCollectionsRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest} ListBackupCollectionsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListBackupCollectionsRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.parent = reader.string(); + break; + } + case 2: { + message.pageSize = reader.int32(); + break; + } + case 3: { + message.pageToken = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ListBackupCollectionsRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest} ListBackupCollectionsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListBackupCollectionsRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ListBackupCollectionsRequest message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ListBackupCollectionsRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.parent != null && message.hasOwnProperty("parent")) + if (!$util.isString(message.parent)) + return "parent: string expected"; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + if (!$util.isInteger(message.pageSize)) + return "pageSize: integer expected"; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (!$util.isString(message.pageToken)) + return "pageToken: string expected"; + return null; + }; + + /** + * Creates a ListBackupCollectionsRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest} ListBackupCollectionsRequest + */ + ListBackupCollectionsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest(); + if (object.parent != null) + message.parent = String(object.parent); + if (object.pageSize != null) + message.pageSize = object.pageSize | 0; + if (object.pageToken != null) + message.pageToken = String(object.pageToken); + return message; + }; + + /** + * Creates a plain object from a ListBackupCollectionsRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest} message ListBackupCollectionsRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ListBackupCollectionsRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.parent = ""; + object.pageSize = 0; + object.pageToken = ""; + } + if (message.parent != null && message.hasOwnProperty("parent")) + object.parent = message.parent; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + object.pageSize = message.pageSize; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + object.pageToken = message.pageToken; + return object; + }; + + /** + * Converts this ListBackupCollectionsRequest to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest + * @instance + * @returns {Object.} JSON object + */ + ListBackupCollectionsRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ListBackupCollectionsRequest + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ListBackupCollectionsRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest"; + }; + + return ListBackupCollectionsRequest; + })(); + + v1beta1.ListBackupCollectionsResponse = (function() { + + /** + * Properties of a ListBackupCollectionsResponse. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IListBackupCollectionsResponse + * @property {Array.|null} [backupCollections] ListBackupCollectionsResponse backupCollections + * @property {string|null} [nextPageToken] ListBackupCollectionsResponse nextPageToken + * @property {Array.|null} [unreachable] ListBackupCollectionsResponse unreachable + */ + + /** + * Constructs a new ListBackupCollectionsResponse. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a ListBackupCollectionsResponse. + * @implements IListBackupCollectionsResponse + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IListBackupCollectionsResponse=} [properties] Properties to set + */ + function ListBackupCollectionsResponse(properties) { + this.backupCollections = []; + this.unreachable = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ListBackupCollectionsResponse backupCollections. + * @member {Array.} backupCollections + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse + * @instance + */ + ListBackupCollectionsResponse.prototype.backupCollections = $util.emptyArray; + + /** + * ListBackupCollectionsResponse nextPageToken. + * @member {string} nextPageToken + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse + * @instance + */ + ListBackupCollectionsResponse.prototype.nextPageToken = ""; + + /** + * ListBackupCollectionsResponse unreachable. + * @member {Array.} unreachable + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse + * @instance + */ + ListBackupCollectionsResponse.prototype.unreachable = $util.emptyArray; + + /** + * Creates a new ListBackupCollectionsResponse instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse + * @static + * @param {google.cloud.redis.cluster.v1beta1.IListBackupCollectionsResponse=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse} ListBackupCollectionsResponse instance + */ + ListBackupCollectionsResponse.create = function create(properties) { + return new ListBackupCollectionsResponse(properties); + }; + + /** + * Encodes the specified ListBackupCollectionsResponse message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse + * @static + * @param {google.cloud.redis.cluster.v1beta1.IListBackupCollectionsResponse} message ListBackupCollectionsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListBackupCollectionsResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.backupCollections != null && message.backupCollections.length) + for (var i = 0; i < message.backupCollections.length; ++i) + $root.google.cloud.redis.cluster.v1beta1.BackupCollection.encode(message.backupCollections[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.nextPageToken); + if (message.unreachable != null && message.unreachable.length) + for (var i = 0; i < message.unreachable.length; ++i) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.unreachable[i]); + return writer; + }; + + /** + * Encodes the specified ListBackupCollectionsResponse message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse + * @static + * @param {google.cloud.redis.cluster.v1beta1.IListBackupCollectionsResponse} message ListBackupCollectionsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListBackupCollectionsResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ListBackupCollectionsResponse message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse} ListBackupCollectionsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListBackupCollectionsResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (!(message.backupCollections && message.backupCollections.length)) + message.backupCollections = []; + message.backupCollections.push($root.google.cloud.redis.cluster.v1beta1.BackupCollection.decode(reader, reader.uint32())); + break; + } + case 2: { + message.nextPageToken = reader.string(); + break; + } + case 3: { + if (!(message.unreachable && message.unreachable.length)) + message.unreachable = []; + message.unreachable.push(reader.string()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ListBackupCollectionsResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse} ListBackupCollectionsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListBackupCollectionsResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ListBackupCollectionsResponse message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ListBackupCollectionsResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.backupCollections != null && message.hasOwnProperty("backupCollections")) { + if (!Array.isArray(message.backupCollections)) + return "backupCollections: array expected"; + for (var i = 0; i < message.backupCollections.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1beta1.BackupCollection.verify(message.backupCollections[i]); + if (error) + return "backupCollections." + error; + } + } + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (!$util.isString(message.nextPageToken)) + return "nextPageToken: string expected"; + if (message.unreachable != null && message.hasOwnProperty("unreachable")) { + if (!Array.isArray(message.unreachable)) + return "unreachable: array expected"; + for (var i = 0; i < message.unreachable.length; ++i) + if (!$util.isString(message.unreachable[i])) + return "unreachable: string[] expected"; + } + return null; + }; + + /** + * Creates a ListBackupCollectionsResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse} ListBackupCollectionsResponse + */ + ListBackupCollectionsResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse(); + if (object.backupCollections) { + if (!Array.isArray(object.backupCollections)) + throw TypeError(".google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse.backupCollections: array expected"); + message.backupCollections = []; + for (var i = 0; i < object.backupCollections.length; ++i) { + if (typeof object.backupCollections[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse.backupCollections: object expected"); + message.backupCollections[i] = $root.google.cloud.redis.cluster.v1beta1.BackupCollection.fromObject(object.backupCollections[i]); + } + } + if (object.nextPageToken != null) + message.nextPageToken = String(object.nextPageToken); + if (object.unreachable) { + if (!Array.isArray(object.unreachable)) + throw TypeError(".google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse.unreachable: array expected"); + message.unreachable = []; + for (var i = 0; i < object.unreachable.length; ++i) + message.unreachable[i] = String(object.unreachable[i]); + } + return message; + }; + + /** + * Creates a plain object from a ListBackupCollectionsResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse + * @static + * @param {google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse} message ListBackupCollectionsResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ListBackupCollectionsResponse.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.backupCollections = []; + object.unreachable = []; + } + if (options.defaults) + object.nextPageToken = ""; + if (message.backupCollections && message.backupCollections.length) { + object.backupCollections = []; + for (var j = 0; j < message.backupCollections.length; ++j) + object.backupCollections[j] = $root.google.cloud.redis.cluster.v1beta1.BackupCollection.toObject(message.backupCollections[j], options); + } + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + object.nextPageToken = message.nextPageToken; + if (message.unreachable && message.unreachable.length) { + object.unreachable = []; + for (var j = 0; j < message.unreachable.length; ++j) + object.unreachable[j] = message.unreachable[j]; + } + return object; + }; + + /** + * Converts this ListBackupCollectionsResponse to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse + * @instance + * @returns {Object.} JSON object + */ + ListBackupCollectionsResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ListBackupCollectionsResponse + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ListBackupCollectionsResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse"; + }; + + return ListBackupCollectionsResponse; + })(); + + v1beta1.GetBackupCollectionRequest = (function() { + + /** + * Properties of a GetBackupCollectionRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IGetBackupCollectionRequest + * @property {string|null} [name] GetBackupCollectionRequest name + */ + + /** + * Constructs a new GetBackupCollectionRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a GetBackupCollectionRequest. + * @implements IGetBackupCollectionRequest + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest=} [properties] Properties to set + */ + function GetBackupCollectionRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GetBackupCollectionRequest name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest + * @instance + */ + GetBackupCollectionRequest.prototype.name = ""; + + /** + * Creates a new GetBackupCollectionRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest} GetBackupCollectionRequest instance + */ + GetBackupCollectionRequest.create = function create(properties) { + return new GetBackupCollectionRequest(properties); + }; + + /** + * Encodes the specified GetBackupCollectionRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest} message GetBackupCollectionRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetBackupCollectionRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + return writer; + }; + + /** + * Encodes the specified GetBackupCollectionRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest} message GetBackupCollectionRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetBackupCollectionRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetBackupCollectionRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest} GetBackupCollectionRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetBackupCollectionRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.name = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetBackupCollectionRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest} GetBackupCollectionRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetBackupCollectionRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetBackupCollectionRequest message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetBackupCollectionRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + return null; + }; + + /** + * Creates a GetBackupCollectionRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest} GetBackupCollectionRequest + */ + GetBackupCollectionRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest(); + if (object.name != null) + message.name = String(object.name); + return message; + }; + + /** + * Creates a plain object from a GetBackupCollectionRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest} message GetBackupCollectionRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetBackupCollectionRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.name = ""; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + return object; + }; + + /** + * Converts this GetBackupCollectionRequest to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest + * @instance + * @returns {Object.} JSON object + */ + GetBackupCollectionRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for GetBackupCollectionRequest + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + GetBackupCollectionRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest"; + }; + + return GetBackupCollectionRequest; + })(); + + v1beta1.ListBackupsRequest = (function() { + + /** + * Properties of a ListBackupsRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IListBackupsRequest + * @property {string|null} [parent] ListBackupsRequest parent + * @property {number|null} [pageSize] ListBackupsRequest pageSize + * @property {string|null} [pageToken] ListBackupsRequest pageToken + */ + + /** + * Constructs a new ListBackupsRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a ListBackupsRequest. + * @implements IListBackupsRequest + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IListBackupsRequest=} [properties] Properties to set + */ + function ListBackupsRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ListBackupsRequest parent. + * @member {string} parent + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsRequest + * @instance + */ + ListBackupsRequest.prototype.parent = ""; + + /** + * ListBackupsRequest pageSize. + * @member {number} pageSize + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsRequest + * @instance + */ + ListBackupsRequest.prototype.pageSize = 0; + + /** + * ListBackupsRequest pageToken. + * @member {string} pageToken + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsRequest + * @instance + */ + ListBackupsRequest.prototype.pageToken = ""; + + /** + * Creates a new ListBackupsRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IListBackupsRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.ListBackupsRequest} ListBackupsRequest instance + */ + ListBackupsRequest.create = function create(properties) { + return new ListBackupsRequest(properties); + }; + + /** + * Encodes the specified ListBackupsRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListBackupsRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IListBackupsRequest} message ListBackupsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListBackupsRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); + if (message.pageSize != null && Object.hasOwnProperty.call(message, "pageSize")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.pageSize); + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.pageToken); + return writer; + }; + + /** + * Encodes the specified ListBackupsRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListBackupsRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IListBackupsRequest} message ListBackupsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListBackupsRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ListBackupsRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.ListBackupsRequest} ListBackupsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListBackupsRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.ListBackupsRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.parent = reader.string(); + break; + } + case 2: { + message.pageSize = reader.int32(); + break; + } + case 3: { + message.pageToken = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ListBackupsRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.ListBackupsRequest} ListBackupsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListBackupsRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ListBackupsRequest message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ListBackupsRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.parent != null && message.hasOwnProperty("parent")) + if (!$util.isString(message.parent)) + return "parent: string expected"; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + if (!$util.isInteger(message.pageSize)) + return "pageSize: integer expected"; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (!$util.isString(message.pageToken)) + return "pageToken: string expected"; + return null; + }; + + /** + * Creates a ListBackupsRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.ListBackupsRequest} ListBackupsRequest + */ + ListBackupsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.ListBackupsRequest) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.ListBackupsRequest(); + if (object.parent != null) + message.parent = String(object.parent); + if (object.pageSize != null) + message.pageSize = object.pageSize | 0; + if (object.pageToken != null) + message.pageToken = String(object.pageToken); + return message; + }; + + /** + * Creates a plain object from a ListBackupsRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.ListBackupsRequest} message ListBackupsRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ListBackupsRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.parent = ""; + object.pageSize = 0; + object.pageToken = ""; + } + if (message.parent != null && message.hasOwnProperty("parent")) + object.parent = message.parent; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + object.pageSize = message.pageSize; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + object.pageToken = message.pageToken; + return object; + }; + + /** + * Converts this ListBackupsRequest to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsRequest + * @instance + * @returns {Object.} JSON object + */ + ListBackupsRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ListBackupsRequest + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ListBackupsRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.ListBackupsRequest"; + }; + + return ListBackupsRequest; + })(); + + v1beta1.ListBackupsResponse = (function() { + + /** + * Properties of a ListBackupsResponse. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IListBackupsResponse + * @property {Array.|null} [backups] ListBackupsResponse backups + * @property {string|null} [nextPageToken] ListBackupsResponse nextPageToken + * @property {Array.|null} [unreachable] ListBackupsResponse unreachable + */ + + /** + * Constructs a new ListBackupsResponse. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a ListBackupsResponse. + * @implements IListBackupsResponse + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IListBackupsResponse=} [properties] Properties to set + */ + function ListBackupsResponse(properties) { + this.backups = []; + this.unreachable = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ListBackupsResponse backups. + * @member {Array.} backups + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsResponse + * @instance + */ + ListBackupsResponse.prototype.backups = $util.emptyArray; + + /** + * ListBackupsResponse nextPageToken. + * @member {string} nextPageToken + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsResponse + * @instance + */ + ListBackupsResponse.prototype.nextPageToken = ""; + + /** + * ListBackupsResponse unreachable. + * @member {Array.} unreachable + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsResponse + * @instance + */ + ListBackupsResponse.prototype.unreachable = $util.emptyArray; + + /** + * Creates a new ListBackupsResponse instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsResponse + * @static + * @param {google.cloud.redis.cluster.v1beta1.IListBackupsResponse=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.ListBackupsResponse} ListBackupsResponse instance + */ + ListBackupsResponse.create = function create(properties) { + return new ListBackupsResponse(properties); + }; + + /** + * Encodes the specified ListBackupsResponse message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListBackupsResponse.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsResponse + * @static + * @param {google.cloud.redis.cluster.v1beta1.IListBackupsResponse} message ListBackupsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListBackupsResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.backups != null && message.backups.length) + for (var i = 0; i < message.backups.length; ++i) + $root.google.cloud.redis.cluster.v1beta1.Backup.encode(message.backups[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.nextPageToken); + if (message.unreachable != null && message.unreachable.length) + for (var i = 0; i < message.unreachable.length; ++i) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.unreachable[i]); + return writer; + }; + + /** + * Encodes the specified ListBackupsResponse message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListBackupsResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsResponse + * @static + * @param {google.cloud.redis.cluster.v1beta1.IListBackupsResponse} message ListBackupsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListBackupsResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ListBackupsResponse message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.ListBackupsResponse} ListBackupsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListBackupsResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.ListBackupsResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (!(message.backups && message.backups.length)) + message.backups = []; + message.backups.push($root.google.cloud.redis.cluster.v1beta1.Backup.decode(reader, reader.uint32())); + break; + } + case 2: { + message.nextPageToken = reader.string(); + break; + } + case 3: { + if (!(message.unreachable && message.unreachable.length)) + message.unreachable = []; + message.unreachable.push(reader.string()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ListBackupsResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.ListBackupsResponse} ListBackupsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListBackupsResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ListBackupsResponse message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ListBackupsResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.backups != null && message.hasOwnProperty("backups")) { + if (!Array.isArray(message.backups)) + return "backups: array expected"; + for (var i = 0; i < message.backups.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1beta1.Backup.verify(message.backups[i]); + if (error) + return "backups." + error; + } + } + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (!$util.isString(message.nextPageToken)) + return "nextPageToken: string expected"; + if (message.unreachable != null && message.hasOwnProperty("unreachable")) { + if (!Array.isArray(message.unreachable)) + return "unreachable: array expected"; + for (var i = 0; i < message.unreachable.length; ++i) + if (!$util.isString(message.unreachable[i])) + return "unreachable: string[] expected"; + } + return null; + }; + + /** + * Creates a ListBackupsResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsResponse + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.ListBackupsResponse} ListBackupsResponse + */ + ListBackupsResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.ListBackupsResponse) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.ListBackupsResponse(); + if (object.backups) { + if (!Array.isArray(object.backups)) + throw TypeError(".google.cloud.redis.cluster.v1beta1.ListBackupsResponse.backups: array expected"); + message.backups = []; + for (var i = 0; i < object.backups.length; ++i) { + if (typeof object.backups[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.ListBackupsResponse.backups: object expected"); + message.backups[i] = $root.google.cloud.redis.cluster.v1beta1.Backup.fromObject(object.backups[i]); + } + } + if (object.nextPageToken != null) + message.nextPageToken = String(object.nextPageToken); + if (object.unreachable) { + if (!Array.isArray(object.unreachable)) + throw TypeError(".google.cloud.redis.cluster.v1beta1.ListBackupsResponse.unreachable: array expected"); + message.unreachable = []; + for (var i = 0; i < object.unreachable.length; ++i) + message.unreachable[i] = String(object.unreachable[i]); + } + return message; + }; + + /** + * Creates a plain object from a ListBackupsResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsResponse + * @static + * @param {google.cloud.redis.cluster.v1beta1.ListBackupsResponse} message ListBackupsResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ListBackupsResponse.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.backups = []; + object.unreachable = []; + } + if (options.defaults) + object.nextPageToken = ""; + if (message.backups && message.backups.length) { + object.backups = []; + for (var j = 0; j < message.backups.length; ++j) + object.backups[j] = $root.google.cloud.redis.cluster.v1beta1.Backup.toObject(message.backups[j], options); + } + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + object.nextPageToken = message.nextPageToken; + if (message.unreachable && message.unreachable.length) { + object.unreachable = []; + for (var j = 0; j < message.unreachable.length; ++j) + object.unreachable[j] = message.unreachable[j]; + } + return object; + }; + + /** + * Converts this ListBackupsResponse to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsResponse + * @instance + * @returns {Object.} JSON object + */ + ListBackupsResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ListBackupsResponse + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.ListBackupsResponse + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ListBackupsResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.ListBackupsResponse"; + }; + + return ListBackupsResponse; + })(); + + v1beta1.GetBackupRequest = (function() { + + /** + * Properties of a GetBackupRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IGetBackupRequest + * @property {string|null} [name] GetBackupRequest name + */ + + /** + * Constructs a new GetBackupRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a GetBackupRequest. + * @implements IGetBackupRequest + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IGetBackupRequest=} [properties] Properties to set + */ + function GetBackupRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GetBackupRequest name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupRequest + * @instance + */ + GetBackupRequest.prototype.name = ""; + + /** + * Creates a new GetBackupRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IGetBackupRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.GetBackupRequest} GetBackupRequest instance + */ + GetBackupRequest.create = function create(properties) { + return new GetBackupRequest(properties); + }; + + /** + * Encodes the specified GetBackupRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetBackupRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IGetBackupRequest} message GetBackupRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetBackupRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + return writer; + }; + + /** + * Encodes the specified GetBackupRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetBackupRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IGetBackupRequest} message GetBackupRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetBackupRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetBackupRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.GetBackupRequest} GetBackupRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetBackupRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.GetBackupRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.name = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetBackupRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.GetBackupRequest} GetBackupRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetBackupRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetBackupRequest message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetBackupRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + return null; + }; + + /** + * Creates a GetBackupRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.GetBackupRequest} GetBackupRequest + */ + GetBackupRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.GetBackupRequest) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.GetBackupRequest(); + if (object.name != null) + message.name = String(object.name); + return message; + }; + + /** + * Creates a plain object from a GetBackupRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.GetBackupRequest} message GetBackupRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetBackupRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.name = ""; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + return object; + }; + + /** + * Converts this GetBackupRequest to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupRequest + * @instance + * @returns {Object.} JSON object + */ + GetBackupRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for GetBackupRequest + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.GetBackupRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + GetBackupRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.GetBackupRequest"; + }; + + return GetBackupRequest; + })(); + + v1beta1.DeleteBackupRequest = (function() { + + /** + * Properties of a DeleteBackupRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IDeleteBackupRequest + * @property {string|null} [name] DeleteBackupRequest name + * @property {string|null} [requestId] DeleteBackupRequest requestId + */ + + /** + * Constructs a new DeleteBackupRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a DeleteBackupRequest. + * @implements IDeleteBackupRequest + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IDeleteBackupRequest=} [properties] Properties to set + */ + function DeleteBackupRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * DeleteBackupRequest name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1beta1.DeleteBackupRequest + * @instance + */ + DeleteBackupRequest.prototype.name = ""; + + /** + * DeleteBackupRequest requestId. + * @member {string} requestId + * @memberof google.cloud.redis.cluster.v1beta1.DeleteBackupRequest + * @instance + */ + DeleteBackupRequest.prototype.requestId = ""; + + /** + * Creates a new DeleteBackupRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.DeleteBackupRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IDeleteBackupRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.DeleteBackupRequest} DeleteBackupRequest instance + */ + DeleteBackupRequest.create = function create(properties) { + return new DeleteBackupRequest(properties); + }; + + /** + * Encodes the specified DeleteBackupRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DeleteBackupRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.DeleteBackupRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IDeleteBackupRequest} message DeleteBackupRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DeleteBackupRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.requestId != null && Object.hasOwnProperty.call(message, "requestId")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.requestId); + return writer; + }; + + /** + * Encodes the specified DeleteBackupRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DeleteBackupRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.DeleteBackupRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IDeleteBackupRequest} message DeleteBackupRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DeleteBackupRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DeleteBackupRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.DeleteBackupRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.DeleteBackupRequest} DeleteBackupRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DeleteBackupRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.DeleteBackupRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.name = reader.string(); + break; + } + case 2: { + message.requestId = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DeleteBackupRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.DeleteBackupRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.DeleteBackupRequest} DeleteBackupRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DeleteBackupRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DeleteBackupRequest message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.DeleteBackupRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DeleteBackupRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.requestId != null && message.hasOwnProperty("requestId")) + if (!$util.isString(message.requestId)) + return "requestId: string expected"; + return null; + }; + + /** + * Creates a DeleteBackupRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.DeleteBackupRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.DeleteBackupRequest} DeleteBackupRequest + */ + DeleteBackupRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.DeleteBackupRequest) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.DeleteBackupRequest(); + if (object.name != null) + message.name = String(object.name); + if (object.requestId != null) + message.requestId = String(object.requestId); + return message; + }; + + /** + * Creates a plain object from a DeleteBackupRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.DeleteBackupRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.DeleteBackupRequest} message DeleteBackupRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DeleteBackupRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.requestId = ""; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.requestId != null && message.hasOwnProperty("requestId")) + object.requestId = message.requestId; + return object; + }; + + /** + * Converts this DeleteBackupRequest to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.DeleteBackupRequest + * @instance + * @returns {Object.} JSON object + */ + DeleteBackupRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for DeleteBackupRequest + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.DeleteBackupRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DeleteBackupRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.DeleteBackupRequest"; + }; + + return DeleteBackupRequest; + })(); + + v1beta1.ExportBackupRequest = (function() { + + /** + * Properties of an ExportBackupRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IExportBackupRequest + * @property {string|null} [gcsBucket] ExportBackupRequest gcsBucket + * @property {string|null} [name] ExportBackupRequest name + */ + + /** + * Constructs a new ExportBackupRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents an ExportBackupRequest. + * @implements IExportBackupRequest + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IExportBackupRequest=} [properties] Properties to set + */ + function ExportBackupRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ExportBackupRequest gcsBucket. + * @member {string|null|undefined} gcsBucket + * @memberof google.cloud.redis.cluster.v1beta1.ExportBackupRequest + * @instance + */ + ExportBackupRequest.prototype.gcsBucket = null; + + /** + * ExportBackupRequest name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1beta1.ExportBackupRequest + * @instance + */ + ExportBackupRequest.prototype.name = ""; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * ExportBackupRequest destination. + * @member {"gcsBucket"|undefined} destination + * @memberof google.cloud.redis.cluster.v1beta1.ExportBackupRequest + * @instance + */ + Object.defineProperty(ExportBackupRequest.prototype, "destination", { + get: $util.oneOfGetter($oneOfFields = ["gcsBucket"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new ExportBackupRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.ExportBackupRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IExportBackupRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.ExportBackupRequest} ExportBackupRequest instance + */ + ExportBackupRequest.create = function create(properties) { + return new ExportBackupRequest(properties); + }; + + /** + * Encodes the specified ExportBackupRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ExportBackupRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.ExportBackupRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IExportBackupRequest} message ExportBackupRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExportBackupRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.gcsBucket != null && Object.hasOwnProperty.call(message, "gcsBucket")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.gcsBucket); + return writer; + }; + + /** + * Encodes the specified ExportBackupRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ExportBackupRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.ExportBackupRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IExportBackupRequest} message ExportBackupRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExportBackupRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an ExportBackupRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.ExportBackupRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.ExportBackupRequest} ExportBackupRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExportBackupRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.ExportBackupRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 3: { + message.gcsBucket = reader.string(); + break; + } + case 1: { + message.name = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an ExportBackupRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.ExportBackupRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.ExportBackupRequest} ExportBackupRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExportBackupRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an ExportBackupRequest message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.ExportBackupRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ExportBackupRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.gcsBucket != null && message.hasOwnProperty("gcsBucket")) { + properties.destination = 1; + if (!$util.isString(message.gcsBucket)) + return "gcsBucket: string expected"; + } + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + return null; + }; + + /** + * Creates an ExportBackupRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.ExportBackupRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.ExportBackupRequest} ExportBackupRequest + */ + ExportBackupRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.ExportBackupRequest) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.ExportBackupRequest(); + if (object.gcsBucket != null) + message.gcsBucket = String(object.gcsBucket); + if (object.name != null) + message.name = String(object.name); + return message; + }; + + /** + * Creates a plain object from an ExportBackupRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.ExportBackupRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.ExportBackupRequest} message ExportBackupRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ExportBackupRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.name = ""; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.gcsBucket != null && message.hasOwnProperty("gcsBucket")) { + object.gcsBucket = message.gcsBucket; + if (options.oneofs) + object.destination = "gcsBucket"; + } + return object; + }; + + /** + * Converts this ExportBackupRequest to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.ExportBackupRequest + * @instance + * @returns {Object.} JSON object + */ + ExportBackupRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ExportBackupRequest + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.ExportBackupRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ExportBackupRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.ExportBackupRequest"; + }; + + return ExportBackupRequest; + })(); + + v1beta1.BackupClusterRequest = (function() { + + /** + * Properties of a BackupClusterRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IBackupClusterRequest + * @property {string|null} [name] BackupClusterRequest name + * @property {google.protobuf.IDuration|null} [ttl] BackupClusterRequest ttl + * @property {string|null} [backupId] BackupClusterRequest backupId + */ + + /** + * Constructs a new BackupClusterRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a BackupClusterRequest. + * @implements IBackupClusterRequest + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IBackupClusterRequest=} [properties] Properties to set + */ + function BackupClusterRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BackupClusterRequest name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1beta1.BackupClusterRequest + * @instance + */ + BackupClusterRequest.prototype.name = ""; + + /** + * BackupClusterRequest ttl. + * @member {google.protobuf.IDuration|null|undefined} ttl + * @memberof google.cloud.redis.cluster.v1beta1.BackupClusterRequest + * @instance + */ + BackupClusterRequest.prototype.ttl = null; + + /** + * BackupClusterRequest backupId. + * @member {string|null|undefined} backupId + * @memberof google.cloud.redis.cluster.v1beta1.BackupClusterRequest + * @instance + */ + BackupClusterRequest.prototype.backupId = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * BackupClusterRequest _backupId. + * @member {"backupId"|undefined} _backupId + * @memberof google.cloud.redis.cluster.v1beta1.BackupClusterRequest + * @instance + */ + Object.defineProperty(BackupClusterRequest.prototype, "_backupId", { + get: $util.oneOfGetter($oneOfFields = ["backupId"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new BackupClusterRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.BackupClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IBackupClusterRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.BackupClusterRequest} BackupClusterRequest instance + */ + BackupClusterRequest.create = function create(properties) { + return new BackupClusterRequest(properties); + }; + + /** + * Encodes the specified BackupClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.BackupClusterRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.BackupClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IBackupClusterRequest} message BackupClusterRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BackupClusterRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.ttl != null && Object.hasOwnProperty.call(message, "ttl")) + $root.google.protobuf.Duration.encode(message.ttl, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.backupId != null && Object.hasOwnProperty.call(message, "backupId")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.backupId); + return writer; + }; + + /** + * Encodes the specified BackupClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.BackupClusterRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.BackupClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IBackupClusterRequest} message BackupClusterRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BackupClusterRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BackupClusterRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.BackupClusterRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.BackupClusterRequest} BackupClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BackupClusterRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.BackupClusterRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.name = reader.string(); + break; + } + case 2: { + message.ttl = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + break; + } + case 3: { + message.backupId = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BackupClusterRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.BackupClusterRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.BackupClusterRequest} BackupClusterRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BackupClusterRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BackupClusterRequest message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.BackupClusterRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BackupClusterRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.ttl != null && message.hasOwnProperty("ttl")) { + var error = $root.google.protobuf.Duration.verify(message.ttl); + if (error) + return "ttl." + error; + } + if (message.backupId != null && message.hasOwnProperty("backupId")) { + properties._backupId = 1; + if (!$util.isString(message.backupId)) + return "backupId: string expected"; + } + return null; + }; + + /** + * Creates a BackupClusterRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.BackupClusterRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.BackupClusterRequest} BackupClusterRequest + */ + BackupClusterRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.BackupClusterRequest) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.BackupClusterRequest(); + if (object.name != null) + message.name = String(object.name); + if (object.ttl != null) { + if (typeof object.ttl !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.BackupClusterRequest.ttl: object expected"); + message.ttl = $root.google.protobuf.Duration.fromObject(object.ttl); + } + if (object.backupId != null) + message.backupId = String(object.backupId); + return message; + }; + + /** + * Creates a plain object from a BackupClusterRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.BackupClusterRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.BackupClusterRequest} message BackupClusterRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BackupClusterRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.ttl = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.ttl != null && message.hasOwnProperty("ttl")) + object.ttl = $root.google.protobuf.Duration.toObject(message.ttl, options); + if (message.backupId != null && message.hasOwnProperty("backupId")) { + object.backupId = message.backupId; + if (options.oneofs) + object._backupId = "backupId"; + } + return object; + }; + + /** + * Converts this BackupClusterRequest to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.BackupClusterRequest + * @instance + * @returns {Object.} JSON object + */ + BackupClusterRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for BackupClusterRequest + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.BackupClusterRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + BackupClusterRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.BackupClusterRequest"; + }; + + return BackupClusterRequest; + })(); + + v1beta1.Cluster = (function() { + + /** + * Properties of a Cluster. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface ICluster + * @property {google.cloud.redis.cluster.v1beta1.Cluster.IGcsBackupSource|null} [gcsSource] Cluster gcsSource + * @property {google.cloud.redis.cluster.v1beta1.Cluster.IManagedBackupSource|null} [managedBackupSource] Cluster managedBackupSource + * @property {string|null} [name] Cluster name + * @property {google.protobuf.ITimestamp|null} [createTime] Cluster createTime + * @property {google.cloud.redis.cluster.v1beta1.Cluster.State|null} [state] Cluster state + * @property {string|null} [uid] Cluster uid + * @property {number|null} [replicaCount] Cluster replicaCount + * @property {google.cloud.redis.cluster.v1beta1.AuthorizationMode|null} [authorizationMode] Cluster authorizationMode + * @property {google.cloud.redis.cluster.v1beta1.TransitEncryptionMode|null} [transitEncryptionMode] Cluster transitEncryptionMode + * @property {number|null} [sizeGb] Cluster sizeGb + * @property {number|null} [shardCount] Cluster shardCount + * @property {Array.|null} [pscConfigs] Cluster pscConfigs + * @property {Array.|null} [discoveryEndpoints] Cluster discoveryEndpoints + * @property {Array.|null} [pscConnections] Cluster pscConnections + * @property {google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo|null} [stateInfo] Cluster stateInfo + * @property {google.cloud.redis.cluster.v1beta1.NodeType|null} [nodeType] Cluster nodeType + * @property {google.cloud.redis.cluster.v1beta1.IClusterPersistenceConfig|null} [persistenceConfig] Cluster persistenceConfig + * @property {Object.|null} [redisConfigs] Cluster redisConfigs + * @property {number|null} [preciseSizeGb] Cluster preciseSizeGb + * @property {google.cloud.redis.cluster.v1beta1.IZoneDistributionConfig|null} [zoneDistributionConfig] Cluster zoneDistributionConfig + * @property {google.cloud.redis.cluster.v1beta1.ICrossClusterReplicationConfig|null} [crossClusterReplicationConfig] Cluster crossClusterReplicationConfig + * @property {boolean|null} [deletionProtectionEnabled] Cluster deletionProtectionEnabled + * @property {google.cloud.redis.cluster.v1beta1.IClusterMaintenancePolicy|null} [maintenancePolicy] Cluster maintenancePolicy + * @property {google.cloud.redis.cluster.v1beta1.IClusterMaintenanceSchedule|null} [maintenanceSchedule] Cluster maintenanceSchedule + * @property {Array.|null} [pscServiceAttachments] Cluster pscServiceAttachments + * @property {Array.|null} [clusterEndpoints] Cluster clusterEndpoints + * @property {string|null} [backupCollection] Cluster backupCollection + * @property {string|null} [kmsKey] Cluster kmsKey + * @property {google.cloud.redis.cluster.v1beta1.IAutomatedBackupConfig|null} [automatedBackupConfig] Cluster automatedBackupConfig + * @property {google.cloud.redis.cluster.v1beta1.IEncryptionInfo|null} [encryptionInfo] Cluster encryptionInfo + */ + + /** + * Constructs a new Cluster. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a Cluster. + * @implements ICluster + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.ICluster=} [properties] Properties to set + */ + function Cluster(properties) { + this.pscConfigs = []; + this.discoveryEndpoints = []; + this.pscConnections = []; + this.redisConfigs = {}; + this.pscServiceAttachments = []; + this.clusterEndpoints = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Cluster gcsSource. + * @member {google.cloud.redis.cluster.v1beta1.Cluster.IGcsBackupSource|null|undefined} gcsSource + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.gcsSource = null; + + /** + * Cluster managedBackupSource. + * @member {google.cloud.redis.cluster.v1beta1.Cluster.IManagedBackupSource|null|undefined} managedBackupSource + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.managedBackupSource = null; + + /** + * Cluster name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.name = ""; + + /** + * Cluster createTime. + * @member {google.protobuf.ITimestamp|null|undefined} createTime + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.createTime = null; + + /** + * Cluster state. + * @member {google.cloud.redis.cluster.v1beta1.Cluster.State} state + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.state = 0; + + /** + * Cluster uid. + * @member {string} uid + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.uid = ""; + + /** + * Cluster replicaCount. + * @member {number|null|undefined} replicaCount + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.replicaCount = null; + + /** + * Cluster authorizationMode. + * @member {google.cloud.redis.cluster.v1beta1.AuthorizationMode} authorizationMode + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.authorizationMode = 0; + + /** + * Cluster transitEncryptionMode. + * @member {google.cloud.redis.cluster.v1beta1.TransitEncryptionMode} transitEncryptionMode + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.transitEncryptionMode = 0; + + /** + * Cluster sizeGb. + * @member {number|null|undefined} sizeGb + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.sizeGb = null; + + /** + * Cluster shardCount. + * @member {number|null|undefined} shardCount + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.shardCount = null; + + /** + * Cluster pscConfigs. + * @member {Array.} pscConfigs + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.pscConfigs = $util.emptyArray; + + /** + * Cluster discoveryEndpoints. + * @member {Array.} discoveryEndpoints + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.discoveryEndpoints = $util.emptyArray; + + /** + * Cluster pscConnections. + * @member {Array.} pscConnections + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.pscConnections = $util.emptyArray; + + /** + * Cluster stateInfo. + * @member {google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo|null|undefined} stateInfo + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.stateInfo = null; + + /** + * Cluster nodeType. + * @member {google.cloud.redis.cluster.v1beta1.NodeType} nodeType + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.nodeType = 0; + + /** + * Cluster persistenceConfig. + * @member {google.cloud.redis.cluster.v1beta1.IClusterPersistenceConfig|null|undefined} persistenceConfig + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.persistenceConfig = null; + + /** + * Cluster redisConfigs. + * @member {Object.} redisConfigs + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.redisConfigs = $util.emptyObject; + + /** + * Cluster preciseSizeGb. + * @member {number|null|undefined} preciseSizeGb + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.preciseSizeGb = null; + + /** + * Cluster zoneDistributionConfig. + * @member {google.cloud.redis.cluster.v1beta1.IZoneDistributionConfig|null|undefined} zoneDistributionConfig + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.zoneDistributionConfig = null; + + /** + * Cluster crossClusterReplicationConfig. + * @member {google.cloud.redis.cluster.v1beta1.ICrossClusterReplicationConfig|null|undefined} crossClusterReplicationConfig + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.crossClusterReplicationConfig = null; + + /** + * Cluster deletionProtectionEnabled. + * @member {boolean|null|undefined} deletionProtectionEnabled + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.deletionProtectionEnabled = null; + + /** + * Cluster maintenancePolicy. + * @member {google.cloud.redis.cluster.v1beta1.IClusterMaintenancePolicy|null|undefined} maintenancePolicy + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.maintenancePolicy = null; + + /** + * Cluster maintenanceSchedule. + * @member {google.cloud.redis.cluster.v1beta1.IClusterMaintenanceSchedule|null|undefined} maintenanceSchedule + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.maintenanceSchedule = null; + + /** + * Cluster pscServiceAttachments. + * @member {Array.} pscServiceAttachments + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.pscServiceAttachments = $util.emptyArray; + + /** + * Cluster clusterEndpoints. + * @member {Array.} clusterEndpoints + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.clusterEndpoints = $util.emptyArray; + + /** + * Cluster backupCollection. + * @member {string|null|undefined} backupCollection + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.backupCollection = null; + + /** + * Cluster kmsKey. + * @member {string|null|undefined} kmsKey + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.kmsKey = null; + + /** + * Cluster automatedBackupConfig. + * @member {google.cloud.redis.cluster.v1beta1.IAutomatedBackupConfig|null|undefined} automatedBackupConfig + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.automatedBackupConfig = null; + + /** + * Cluster encryptionInfo. + * @member {google.cloud.redis.cluster.v1beta1.IEncryptionInfo|null|undefined} encryptionInfo + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Cluster.prototype.encryptionInfo = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * Cluster importSources. + * @member {"gcsSource"|"managedBackupSource"|undefined} importSources + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Object.defineProperty(Cluster.prototype, "importSources", { + get: $util.oneOfGetter($oneOfFields = ["gcsSource", "managedBackupSource"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Cluster _replicaCount. + * @member {"replicaCount"|undefined} _replicaCount + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Object.defineProperty(Cluster.prototype, "_replicaCount", { + get: $util.oneOfGetter($oneOfFields = ["replicaCount"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Cluster _sizeGb. + * @member {"sizeGb"|undefined} _sizeGb + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Object.defineProperty(Cluster.prototype, "_sizeGb", { + get: $util.oneOfGetter($oneOfFields = ["sizeGb"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Cluster _shardCount. + * @member {"shardCount"|undefined} _shardCount + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Object.defineProperty(Cluster.prototype, "_shardCount", { + get: $util.oneOfGetter($oneOfFields = ["shardCount"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Cluster _preciseSizeGb. + * @member {"preciseSizeGb"|undefined} _preciseSizeGb + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Object.defineProperty(Cluster.prototype, "_preciseSizeGb", { + get: $util.oneOfGetter($oneOfFields = ["preciseSizeGb"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Cluster _deletionProtectionEnabled. + * @member {"deletionProtectionEnabled"|undefined} _deletionProtectionEnabled + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Object.defineProperty(Cluster.prototype, "_deletionProtectionEnabled", { + get: $util.oneOfGetter($oneOfFields = ["deletionProtectionEnabled"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Cluster _maintenancePolicy. + * @member {"maintenancePolicy"|undefined} _maintenancePolicy + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Object.defineProperty(Cluster.prototype, "_maintenancePolicy", { + get: $util.oneOfGetter($oneOfFields = ["maintenancePolicy"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Cluster _maintenanceSchedule. + * @member {"maintenanceSchedule"|undefined} _maintenanceSchedule + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Object.defineProperty(Cluster.prototype, "_maintenanceSchedule", { + get: $util.oneOfGetter($oneOfFields = ["maintenanceSchedule"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Cluster _backupCollection. + * @member {"backupCollection"|undefined} _backupCollection + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Object.defineProperty(Cluster.prototype, "_backupCollection", { + get: $util.oneOfGetter($oneOfFields = ["backupCollection"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Cluster _kmsKey. + * @member {"kmsKey"|undefined} _kmsKey + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + */ + Object.defineProperty(Cluster.prototype, "_kmsKey", { + get: $util.oneOfGetter($oneOfFields = ["kmsKey"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new Cluster instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @static + * @param {google.cloud.redis.cluster.v1beta1.ICluster=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.Cluster} Cluster instance + */ + Cluster.create = function create(properties) { + return new Cluster(properties); + }; + + /** + * Encodes the specified Cluster message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @static + * @param {google.cloud.redis.cluster.v1beta1.ICluster} message Cluster message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Cluster.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) + $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.state != null && Object.hasOwnProperty.call(message, "state")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.state); + if (message.uid != null && Object.hasOwnProperty.call(message, "uid")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.uid); + if (message.replicaCount != null && Object.hasOwnProperty.call(message, "replicaCount")) + writer.uint32(/* id 8, wireType 0 =*/64).int32(message.replicaCount); + if (message.authorizationMode != null && Object.hasOwnProperty.call(message, "authorizationMode")) + writer.uint32(/* id 11, wireType 0 =*/88).int32(message.authorizationMode); + if (message.transitEncryptionMode != null && Object.hasOwnProperty.call(message, "transitEncryptionMode")) + writer.uint32(/* id 12, wireType 0 =*/96).int32(message.transitEncryptionMode); + if (message.sizeGb != null && Object.hasOwnProperty.call(message, "sizeGb")) + writer.uint32(/* id 13, wireType 0 =*/104).int32(message.sizeGb); + if (message.shardCount != null && Object.hasOwnProperty.call(message, "shardCount")) + writer.uint32(/* id 14, wireType 0 =*/112).int32(message.shardCount); + if (message.pscConfigs != null && message.pscConfigs.length) + for (var i = 0; i < message.pscConfigs.length; ++i) + $root.google.cloud.redis.cluster.v1beta1.PscConfig.encode(message.pscConfigs[i], writer.uint32(/* id 15, wireType 2 =*/122).fork()).ldelim(); + if (message.discoveryEndpoints != null && message.discoveryEndpoints.length) + for (var i = 0; i < message.discoveryEndpoints.length; ++i) + $root.google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.encode(message.discoveryEndpoints[i], writer.uint32(/* id 16, wireType 2 =*/130).fork()).ldelim(); + if (message.pscConnections != null && message.pscConnections.length) + for (var i = 0; i < message.pscConnections.length; ++i) + $root.google.cloud.redis.cluster.v1beta1.PscConnection.encode(message.pscConnections[i], writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); + if (message.stateInfo != null && Object.hasOwnProperty.call(message, "stateInfo")) + $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.encode(message.stateInfo, writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim(); + if (message.nodeType != null && Object.hasOwnProperty.call(message, "nodeType")) + writer.uint32(/* id 19, wireType 0 =*/152).int32(message.nodeType); + if (message.persistenceConfig != null && Object.hasOwnProperty.call(message, "persistenceConfig")) + $root.google.cloud.redis.cluster.v1beta1.ClusterPersistenceConfig.encode(message.persistenceConfig, writer.uint32(/* id 20, wireType 2 =*/162).fork()).ldelim(); + if (message.redisConfigs != null && Object.hasOwnProperty.call(message, "redisConfigs")) + for (var keys = Object.keys(message.redisConfigs), i = 0; i < keys.length; ++i) + writer.uint32(/* id 21, wireType 2 =*/170).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.redisConfigs[keys[i]]).ldelim(); + if (message.preciseSizeGb != null && Object.hasOwnProperty.call(message, "preciseSizeGb")) + writer.uint32(/* id 22, wireType 1 =*/177).double(message.preciseSizeGb); + if (message.zoneDistributionConfig != null && Object.hasOwnProperty.call(message, "zoneDistributionConfig")) + $root.google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.encode(message.zoneDistributionConfig, writer.uint32(/* id 23, wireType 2 =*/186).fork()).ldelim(); + if (message.crossClusterReplicationConfig != null && Object.hasOwnProperty.call(message, "crossClusterReplicationConfig")) + $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.encode(message.crossClusterReplicationConfig, writer.uint32(/* id 24, wireType 2 =*/194).fork()).ldelim(); + if (message.deletionProtectionEnabled != null && Object.hasOwnProperty.call(message, "deletionProtectionEnabled")) + writer.uint32(/* id 25, wireType 0 =*/200).bool(message.deletionProtectionEnabled); + if (message.maintenancePolicy != null && Object.hasOwnProperty.call(message, "maintenancePolicy")) + $root.google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy.encode(message.maintenancePolicy, writer.uint32(/* id 26, wireType 2 =*/210).fork()).ldelim(); + if (message.maintenanceSchedule != null && Object.hasOwnProperty.call(message, "maintenanceSchedule")) + $root.google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule.encode(message.maintenanceSchedule, writer.uint32(/* id 27, wireType 2 =*/218).fork()).ldelim(); + if (message.pscServiceAttachments != null && message.pscServiceAttachments.length) + for (var i = 0; i < message.pscServiceAttachments.length; ++i) + $root.google.cloud.redis.cluster.v1beta1.PscServiceAttachment.encode(message.pscServiceAttachments[i], writer.uint32(/* id 30, wireType 2 =*/242).fork()).ldelim(); + if (message.gcsSource != null && Object.hasOwnProperty.call(message, "gcsSource")) + $root.google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource.encode(message.gcsSource, writer.uint32(/* id 34, wireType 2 =*/274).fork()).ldelim(); + if (message.managedBackupSource != null && Object.hasOwnProperty.call(message, "managedBackupSource")) + $root.google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource.encode(message.managedBackupSource, writer.uint32(/* id 35, wireType 2 =*/282).fork()).ldelim(); + if (message.clusterEndpoints != null && message.clusterEndpoints.length) + for (var i = 0; i < message.clusterEndpoints.length; ++i) + $root.google.cloud.redis.cluster.v1beta1.ClusterEndpoint.encode(message.clusterEndpoints[i], writer.uint32(/* id 36, wireType 2 =*/290).fork()).ldelim(); + if (message.backupCollection != null && Object.hasOwnProperty.call(message, "backupCollection")) + writer.uint32(/* id 39, wireType 2 =*/314).string(message.backupCollection); + if (message.kmsKey != null && Object.hasOwnProperty.call(message, "kmsKey")) + writer.uint32(/* id 40, wireType 2 =*/322).string(message.kmsKey); + if (message.automatedBackupConfig != null && Object.hasOwnProperty.call(message, "automatedBackupConfig")) + $root.google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.encode(message.automatedBackupConfig, writer.uint32(/* id 42, wireType 2 =*/338).fork()).ldelim(); + if (message.encryptionInfo != null && Object.hasOwnProperty.call(message, "encryptionInfo")) + $root.google.cloud.redis.cluster.v1beta1.EncryptionInfo.encode(message.encryptionInfo, writer.uint32(/* id 43, wireType 2 =*/346).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified Cluster message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @static + * @param {google.cloud.redis.cluster.v1beta1.ICluster} message Cluster message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Cluster.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Cluster message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.Cluster} Cluster + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Cluster.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.Cluster(), key, value; + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 34: { + message.gcsSource = $root.google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource.decode(reader, reader.uint32()); + break; + } + case 35: { + message.managedBackupSource = $root.google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource.decode(reader, reader.uint32()); + break; + } + case 1: { + message.name = reader.string(); + break; + } + case 3: { + message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 4: { + message.state = reader.int32(); + break; + } + case 5: { + message.uid = reader.string(); + break; + } + case 8: { + message.replicaCount = reader.int32(); + break; + } + case 11: { + message.authorizationMode = reader.int32(); + break; + } + case 12: { + message.transitEncryptionMode = reader.int32(); + break; + } + case 13: { + message.sizeGb = reader.int32(); + break; + } + case 14: { + message.shardCount = reader.int32(); + break; + } + case 15: { + if (!(message.pscConfigs && message.pscConfigs.length)) + message.pscConfigs = []; + message.pscConfigs.push($root.google.cloud.redis.cluster.v1beta1.PscConfig.decode(reader, reader.uint32())); + break; + } + case 16: { + if (!(message.discoveryEndpoints && message.discoveryEndpoints.length)) + message.discoveryEndpoints = []; + message.discoveryEndpoints.push($root.google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.decode(reader, reader.uint32())); + break; + } + case 17: { + if (!(message.pscConnections && message.pscConnections.length)) + message.pscConnections = []; + message.pscConnections.push($root.google.cloud.redis.cluster.v1beta1.PscConnection.decode(reader, reader.uint32())); + break; + } + case 18: { + message.stateInfo = $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.decode(reader, reader.uint32()); + break; + } + case 19: { + message.nodeType = reader.int32(); + break; + } + case 20: { + message.persistenceConfig = $root.google.cloud.redis.cluster.v1beta1.ClusterPersistenceConfig.decode(reader, reader.uint32()); + break; + } + case 21: { + if (message.redisConfigs === $util.emptyObject) + message.redisConfigs = {}; + var end2 = reader.uint32() + reader.pos; + key = ""; + value = ""; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = reader.string(); + break; + default: + reader.skipType(tag2 & 7); + break; + } + } + message.redisConfigs[key] = value; + break; + } + case 22: { + message.preciseSizeGb = reader.double(); + break; + } + case 23: { + message.zoneDistributionConfig = $root.google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.decode(reader, reader.uint32()); + break; + } + case 24: { + message.crossClusterReplicationConfig = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.decode(reader, reader.uint32()); + break; + } + case 25: { + message.deletionProtectionEnabled = reader.bool(); + break; + } + case 26: { + message.maintenancePolicy = $root.google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy.decode(reader, reader.uint32()); + break; + } + case 27: { + message.maintenanceSchedule = $root.google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule.decode(reader, reader.uint32()); + break; + } + case 30: { + if (!(message.pscServiceAttachments && message.pscServiceAttachments.length)) + message.pscServiceAttachments = []; + message.pscServiceAttachments.push($root.google.cloud.redis.cluster.v1beta1.PscServiceAttachment.decode(reader, reader.uint32())); + break; + } + case 36: { + if (!(message.clusterEndpoints && message.clusterEndpoints.length)) + message.clusterEndpoints = []; + message.clusterEndpoints.push($root.google.cloud.redis.cluster.v1beta1.ClusterEndpoint.decode(reader, reader.uint32())); + break; + } + case 39: { + message.backupCollection = reader.string(); + break; + } + case 40: { + message.kmsKey = reader.string(); + break; + } + case 42: { + message.automatedBackupConfig = $root.google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.decode(reader, reader.uint32()); + break; + } + case 43: { + message.encryptionInfo = $root.google.cloud.redis.cluster.v1beta1.EncryptionInfo.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Cluster message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.Cluster} Cluster + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Cluster.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Cluster message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Cluster.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.gcsSource != null && message.hasOwnProperty("gcsSource")) { + properties.importSources = 1; + { + var error = $root.google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource.verify(message.gcsSource); + if (error) + return "gcsSource." + error; + } + } + if (message.managedBackupSource != null && message.hasOwnProperty("managedBackupSource")) { + if (properties.importSources === 1) + return "importSources: multiple values"; + properties.importSources = 1; + { + var error = $root.google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource.verify(message.managedBackupSource); + if (error) + return "managedBackupSource." + error; + } + } + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.createTime != null && message.hasOwnProperty("createTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.createTime); + if (error) + return "createTime." + error; + } + if (message.state != null && message.hasOwnProperty("state")) + switch (message.state) { + default: + return "state: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + break; + } + if (message.uid != null && message.hasOwnProperty("uid")) + if (!$util.isString(message.uid)) + return "uid: string expected"; + if (message.replicaCount != null && message.hasOwnProperty("replicaCount")) { + properties._replicaCount = 1; + if (!$util.isInteger(message.replicaCount)) + return "replicaCount: integer expected"; + } + if (message.authorizationMode != null && message.hasOwnProperty("authorizationMode")) + switch (message.authorizationMode) { + default: + return "authorizationMode: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.transitEncryptionMode != null && message.hasOwnProperty("transitEncryptionMode")) + switch (message.transitEncryptionMode) { + default: + return "transitEncryptionMode: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.sizeGb != null && message.hasOwnProperty("sizeGb")) { + properties._sizeGb = 1; + if (!$util.isInteger(message.sizeGb)) + return "sizeGb: integer expected"; + } + if (message.shardCount != null && message.hasOwnProperty("shardCount")) { + properties._shardCount = 1; + if (!$util.isInteger(message.shardCount)) + return "shardCount: integer expected"; + } + if (message.pscConfigs != null && message.hasOwnProperty("pscConfigs")) { + if (!Array.isArray(message.pscConfigs)) + return "pscConfigs: array expected"; + for (var i = 0; i < message.pscConfigs.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1beta1.PscConfig.verify(message.pscConfigs[i]); + if (error) + return "pscConfigs." + error; + } + } + if (message.discoveryEndpoints != null && message.hasOwnProperty("discoveryEndpoints")) { + if (!Array.isArray(message.discoveryEndpoints)) + return "discoveryEndpoints: array expected"; + for (var i = 0; i < message.discoveryEndpoints.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.verify(message.discoveryEndpoints[i]); + if (error) + return "discoveryEndpoints." + error; + } + } + if (message.pscConnections != null && message.hasOwnProperty("pscConnections")) { + if (!Array.isArray(message.pscConnections)) + return "pscConnections: array expected"; + for (var i = 0; i < message.pscConnections.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1beta1.PscConnection.verify(message.pscConnections[i]); + if (error) + return "pscConnections." + error; + } + } + if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) { + var error = $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.verify(message.stateInfo); + if (error) + return "stateInfo." + error; + } + if (message.nodeType != null && message.hasOwnProperty("nodeType")) + switch (message.nodeType) { + default: + return "nodeType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + break; + } + if (message.persistenceConfig != null && message.hasOwnProperty("persistenceConfig")) { + var error = $root.google.cloud.redis.cluster.v1beta1.ClusterPersistenceConfig.verify(message.persistenceConfig); + if (error) + return "persistenceConfig." + error; + } + if (message.redisConfigs != null && message.hasOwnProperty("redisConfigs")) { + if (!$util.isObject(message.redisConfigs)) + return "redisConfigs: object expected"; + var key = Object.keys(message.redisConfigs); + for (var i = 0; i < key.length; ++i) + if (!$util.isString(message.redisConfigs[key[i]])) + return "redisConfigs: string{k:string} expected"; + } + if (message.preciseSizeGb != null && message.hasOwnProperty("preciseSizeGb")) { + properties._preciseSizeGb = 1; + if (typeof message.preciseSizeGb !== "number") + return "preciseSizeGb: number expected"; + } + if (message.zoneDistributionConfig != null && message.hasOwnProperty("zoneDistributionConfig")) { + var error = $root.google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.verify(message.zoneDistributionConfig); + if (error) + return "zoneDistributionConfig." + error; + } + if (message.crossClusterReplicationConfig != null && message.hasOwnProperty("crossClusterReplicationConfig")) { + var error = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.verify(message.crossClusterReplicationConfig); + if (error) + return "crossClusterReplicationConfig." + error; + } + if (message.deletionProtectionEnabled != null && message.hasOwnProperty("deletionProtectionEnabled")) { + properties._deletionProtectionEnabled = 1; + if (typeof message.deletionProtectionEnabled !== "boolean") + return "deletionProtectionEnabled: boolean expected"; + } + if (message.maintenancePolicy != null && message.hasOwnProperty("maintenancePolicy")) { + properties._maintenancePolicy = 1; + { + var error = $root.google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy.verify(message.maintenancePolicy); + if (error) + return "maintenancePolicy." + error; + } + } + if (message.maintenanceSchedule != null && message.hasOwnProperty("maintenanceSchedule")) { + properties._maintenanceSchedule = 1; + { + var error = $root.google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule.verify(message.maintenanceSchedule); + if (error) + return "maintenanceSchedule." + error; + } + } + if (message.pscServiceAttachments != null && message.hasOwnProperty("pscServiceAttachments")) { + if (!Array.isArray(message.pscServiceAttachments)) + return "pscServiceAttachments: array expected"; + for (var i = 0; i < message.pscServiceAttachments.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1beta1.PscServiceAttachment.verify(message.pscServiceAttachments[i]); + if (error) + return "pscServiceAttachments." + error; + } + } + if (message.clusterEndpoints != null && message.hasOwnProperty("clusterEndpoints")) { + if (!Array.isArray(message.clusterEndpoints)) + return "clusterEndpoints: array expected"; + for (var i = 0; i < message.clusterEndpoints.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1beta1.ClusterEndpoint.verify(message.clusterEndpoints[i]); + if (error) + return "clusterEndpoints." + error; + } + } + if (message.backupCollection != null && message.hasOwnProperty("backupCollection")) { + properties._backupCollection = 1; + if (!$util.isString(message.backupCollection)) + return "backupCollection: string expected"; + } + if (message.kmsKey != null && message.hasOwnProperty("kmsKey")) { + properties._kmsKey = 1; + if (!$util.isString(message.kmsKey)) + return "kmsKey: string expected"; + } + if (message.automatedBackupConfig != null && message.hasOwnProperty("automatedBackupConfig")) { + var error = $root.google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.verify(message.automatedBackupConfig); + if (error) + return "automatedBackupConfig." + error; + } + if (message.encryptionInfo != null && message.hasOwnProperty("encryptionInfo")) { + var error = $root.google.cloud.redis.cluster.v1beta1.EncryptionInfo.verify(message.encryptionInfo); + if (error) + return "encryptionInfo." + error; + } + return null; + }; + + /** + * Creates a Cluster message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.Cluster} Cluster + */ + Cluster.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.Cluster) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.Cluster(); + if (object.gcsSource != null) { + if (typeof object.gcsSource !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.gcsSource: object expected"); + message.gcsSource = $root.google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource.fromObject(object.gcsSource); + } + if (object.managedBackupSource != null) { + if (typeof object.managedBackupSource !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.managedBackupSource: object expected"); + message.managedBackupSource = $root.google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource.fromObject(object.managedBackupSource); + } + if (object.name != null) + message.name = String(object.name); + if (object.createTime != null) { + if (typeof object.createTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.createTime: object expected"); + message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime); + } + switch (object.state) { + default: + if (typeof object.state === "number") { + message.state = object.state; + break; + } + break; + case "STATE_UNSPECIFIED": + case 0: + message.state = 0; + break; + case "CREATING": + case 1: + message.state = 1; + break; + case "ACTIVE": + case 2: + message.state = 2; + break; + case "UPDATING": + case 3: + message.state = 3; + break; + case "DELETING": + case 4: + message.state = 4; + break; + } + if (object.uid != null) + message.uid = String(object.uid); + if (object.replicaCount != null) + message.replicaCount = object.replicaCount | 0; + switch (object.authorizationMode) { + default: + if (typeof object.authorizationMode === "number") { + message.authorizationMode = object.authorizationMode; + break; + } + break; + case "AUTH_MODE_UNSPECIFIED": + case 0: + message.authorizationMode = 0; + break; + case "AUTH_MODE_IAM_AUTH": + case 1: + message.authorizationMode = 1; + break; + case "AUTH_MODE_DISABLED": + case 2: + message.authorizationMode = 2; + break; + } + switch (object.transitEncryptionMode) { + default: + if (typeof object.transitEncryptionMode === "number") { + message.transitEncryptionMode = object.transitEncryptionMode; + break; + } + break; + case "TRANSIT_ENCRYPTION_MODE_UNSPECIFIED": + case 0: + message.transitEncryptionMode = 0; + break; + case "TRANSIT_ENCRYPTION_MODE_DISABLED": + case 1: + message.transitEncryptionMode = 1; + break; + case "TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION": + case 2: + message.transitEncryptionMode = 2; + break; + } + if (object.sizeGb != null) + message.sizeGb = object.sizeGb | 0; + if (object.shardCount != null) + message.shardCount = object.shardCount | 0; + if (object.pscConfigs) { + if (!Array.isArray(object.pscConfigs)) + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.pscConfigs: array expected"); + message.pscConfigs = []; + for (var i = 0; i < object.pscConfigs.length; ++i) { + if (typeof object.pscConfigs[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.pscConfigs: object expected"); + message.pscConfigs[i] = $root.google.cloud.redis.cluster.v1beta1.PscConfig.fromObject(object.pscConfigs[i]); + } + } + if (object.discoveryEndpoints) { + if (!Array.isArray(object.discoveryEndpoints)) + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.discoveryEndpoints: array expected"); + message.discoveryEndpoints = []; + for (var i = 0; i < object.discoveryEndpoints.length; ++i) { + if (typeof object.discoveryEndpoints[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.discoveryEndpoints: object expected"); + message.discoveryEndpoints[i] = $root.google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.fromObject(object.discoveryEndpoints[i]); + } + } + if (object.pscConnections) { + if (!Array.isArray(object.pscConnections)) + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.pscConnections: array expected"); + message.pscConnections = []; + for (var i = 0; i < object.pscConnections.length; ++i) { + if (typeof object.pscConnections[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.pscConnections: object expected"); + message.pscConnections[i] = $root.google.cloud.redis.cluster.v1beta1.PscConnection.fromObject(object.pscConnections[i]); + } + } + if (object.stateInfo != null) { + if (typeof object.stateInfo !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.stateInfo: object expected"); + message.stateInfo = $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.fromObject(object.stateInfo); + } + switch (object.nodeType) { + default: + if (typeof object.nodeType === "number") { + message.nodeType = object.nodeType; + break; + } + break; + case "NODE_TYPE_UNSPECIFIED": + case 0: + message.nodeType = 0; + break; + case "REDIS_SHARED_CORE_NANO": + case 1: + message.nodeType = 1; + break; + case "REDIS_HIGHMEM_MEDIUM": + case 2: + message.nodeType = 2; + break; + case "REDIS_HIGHMEM_XLARGE": + case 3: + message.nodeType = 3; + break; + case "REDIS_STANDARD_SMALL": + case 4: + message.nodeType = 4; + break; + } + if (object.persistenceConfig != null) { + if (typeof object.persistenceConfig !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.persistenceConfig: object expected"); + message.persistenceConfig = $root.google.cloud.redis.cluster.v1beta1.ClusterPersistenceConfig.fromObject(object.persistenceConfig); + } + if (object.redisConfigs) { + if (typeof object.redisConfigs !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.redisConfigs: object expected"); + message.redisConfigs = {}; + for (var keys = Object.keys(object.redisConfigs), i = 0; i < keys.length; ++i) + message.redisConfigs[keys[i]] = String(object.redisConfigs[keys[i]]); + } + if (object.preciseSizeGb != null) + message.preciseSizeGb = Number(object.preciseSizeGb); + if (object.zoneDistributionConfig != null) { + if (typeof object.zoneDistributionConfig !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.zoneDistributionConfig: object expected"); + message.zoneDistributionConfig = $root.google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.fromObject(object.zoneDistributionConfig); + } + if (object.crossClusterReplicationConfig != null) { + if (typeof object.crossClusterReplicationConfig !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.crossClusterReplicationConfig: object expected"); + message.crossClusterReplicationConfig = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.fromObject(object.crossClusterReplicationConfig); + } + if (object.deletionProtectionEnabled != null) + message.deletionProtectionEnabled = Boolean(object.deletionProtectionEnabled); + if (object.maintenancePolicy != null) { + if (typeof object.maintenancePolicy !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.maintenancePolicy: object expected"); + message.maintenancePolicy = $root.google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy.fromObject(object.maintenancePolicy); + } + if (object.maintenanceSchedule != null) { + if (typeof object.maintenanceSchedule !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.maintenanceSchedule: object expected"); + message.maintenanceSchedule = $root.google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule.fromObject(object.maintenanceSchedule); + } + if (object.pscServiceAttachments) { + if (!Array.isArray(object.pscServiceAttachments)) + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.pscServiceAttachments: array expected"); + message.pscServiceAttachments = []; + for (var i = 0; i < object.pscServiceAttachments.length; ++i) { + if (typeof object.pscServiceAttachments[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.pscServiceAttachments: object expected"); + message.pscServiceAttachments[i] = $root.google.cloud.redis.cluster.v1beta1.PscServiceAttachment.fromObject(object.pscServiceAttachments[i]); + } + } + if (object.clusterEndpoints) { + if (!Array.isArray(object.clusterEndpoints)) + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.clusterEndpoints: array expected"); + message.clusterEndpoints = []; + for (var i = 0; i < object.clusterEndpoints.length; ++i) { + if (typeof object.clusterEndpoints[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.clusterEndpoints: object expected"); + message.clusterEndpoints[i] = $root.google.cloud.redis.cluster.v1beta1.ClusterEndpoint.fromObject(object.clusterEndpoints[i]); + } + } + if (object.backupCollection != null) + message.backupCollection = String(object.backupCollection); + if (object.kmsKey != null) + message.kmsKey = String(object.kmsKey); + if (object.automatedBackupConfig != null) { + if (typeof object.automatedBackupConfig !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.automatedBackupConfig: object expected"); + message.automatedBackupConfig = $root.google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.fromObject(object.automatedBackupConfig); + } + if (object.encryptionInfo != null) { + if (typeof object.encryptionInfo !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.encryptionInfo: object expected"); + message.encryptionInfo = $root.google.cloud.redis.cluster.v1beta1.EncryptionInfo.fromObject(object.encryptionInfo); + } + return message; + }; + + /** + * Creates a plain object from a Cluster message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @static + * @param {google.cloud.redis.cluster.v1beta1.Cluster} message Cluster + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Cluster.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.pscConfigs = []; + object.discoveryEndpoints = []; + object.pscConnections = []; + object.pscServiceAttachments = []; + object.clusterEndpoints = []; + } + if (options.objects || options.defaults) + object.redisConfigs = {}; + if (options.defaults) { + object.name = ""; + object.createTime = null; + object.state = options.enums === String ? "STATE_UNSPECIFIED" : 0; + object.uid = ""; + object.authorizationMode = options.enums === String ? "AUTH_MODE_UNSPECIFIED" : 0; + object.transitEncryptionMode = options.enums === String ? "TRANSIT_ENCRYPTION_MODE_UNSPECIFIED" : 0; + object.stateInfo = null; + object.nodeType = options.enums === String ? "NODE_TYPE_UNSPECIFIED" : 0; + object.persistenceConfig = null; + object.zoneDistributionConfig = null; + object.crossClusterReplicationConfig = null; + object.automatedBackupConfig = null; + object.encryptionInfo = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.createTime != null && message.hasOwnProperty("createTime")) + object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options); + if (message.state != null && message.hasOwnProperty("state")) + object.state = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.Cluster.State[message.state] === undefined ? message.state : $root.google.cloud.redis.cluster.v1beta1.Cluster.State[message.state] : message.state; + if (message.uid != null && message.hasOwnProperty("uid")) + object.uid = message.uid; + if (message.replicaCount != null && message.hasOwnProperty("replicaCount")) { + object.replicaCount = message.replicaCount; + if (options.oneofs) + object._replicaCount = "replicaCount"; + } + if (message.authorizationMode != null && message.hasOwnProperty("authorizationMode")) + object.authorizationMode = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.AuthorizationMode[message.authorizationMode] === undefined ? message.authorizationMode : $root.google.cloud.redis.cluster.v1beta1.AuthorizationMode[message.authorizationMode] : message.authorizationMode; + if (message.transitEncryptionMode != null && message.hasOwnProperty("transitEncryptionMode")) + object.transitEncryptionMode = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.TransitEncryptionMode[message.transitEncryptionMode] === undefined ? message.transitEncryptionMode : $root.google.cloud.redis.cluster.v1beta1.TransitEncryptionMode[message.transitEncryptionMode] : message.transitEncryptionMode; + if (message.sizeGb != null && message.hasOwnProperty("sizeGb")) { + object.sizeGb = message.sizeGb; + if (options.oneofs) + object._sizeGb = "sizeGb"; + } + if (message.shardCount != null && message.hasOwnProperty("shardCount")) { + object.shardCount = message.shardCount; + if (options.oneofs) + object._shardCount = "shardCount"; + } + if (message.pscConfigs && message.pscConfigs.length) { + object.pscConfigs = []; + for (var j = 0; j < message.pscConfigs.length; ++j) + object.pscConfigs[j] = $root.google.cloud.redis.cluster.v1beta1.PscConfig.toObject(message.pscConfigs[j], options); + } + if (message.discoveryEndpoints && message.discoveryEndpoints.length) { + object.discoveryEndpoints = []; + for (var j = 0; j < message.discoveryEndpoints.length; ++j) + object.discoveryEndpoints[j] = $root.google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.toObject(message.discoveryEndpoints[j], options); + } + if (message.pscConnections && message.pscConnections.length) { + object.pscConnections = []; + for (var j = 0; j < message.pscConnections.length; ++j) + object.pscConnections[j] = $root.google.cloud.redis.cluster.v1beta1.PscConnection.toObject(message.pscConnections[j], options); + } + if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) + object.stateInfo = $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.toObject(message.stateInfo, options); + if (message.nodeType != null && message.hasOwnProperty("nodeType")) + object.nodeType = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.NodeType[message.nodeType] === undefined ? message.nodeType : $root.google.cloud.redis.cluster.v1beta1.NodeType[message.nodeType] : message.nodeType; + if (message.persistenceConfig != null && message.hasOwnProperty("persistenceConfig")) + object.persistenceConfig = $root.google.cloud.redis.cluster.v1beta1.ClusterPersistenceConfig.toObject(message.persistenceConfig, options); + var keys2; + if (message.redisConfigs && (keys2 = Object.keys(message.redisConfigs)).length) { + object.redisConfigs = {}; + for (var j = 0; j < keys2.length; ++j) + object.redisConfigs[keys2[j]] = message.redisConfigs[keys2[j]]; + } + if (message.preciseSizeGb != null && message.hasOwnProperty("preciseSizeGb")) { + object.preciseSizeGb = options.json && !isFinite(message.preciseSizeGb) ? String(message.preciseSizeGb) : message.preciseSizeGb; + if (options.oneofs) + object._preciseSizeGb = "preciseSizeGb"; + } + if (message.zoneDistributionConfig != null && message.hasOwnProperty("zoneDistributionConfig")) + object.zoneDistributionConfig = $root.google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.toObject(message.zoneDistributionConfig, options); + if (message.crossClusterReplicationConfig != null && message.hasOwnProperty("crossClusterReplicationConfig")) + object.crossClusterReplicationConfig = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.toObject(message.crossClusterReplicationConfig, options); + if (message.deletionProtectionEnabled != null && message.hasOwnProperty("deletionProtectionEnabled")) { + object.deletionProtectionEnabled = message.deletionProtectionEnabled; + if (options.oneofs) + object._deletionProtectionEnabled = "deletionProtectionEnabled"; + } + if (message.maintenancePolicy != null && message.hasOwnProperty("maintenancePolicy")) { + object.maintenancePolicy = $root.google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy.toObject(message.maintenancePolicy, options); + if (options.oneofs) + object._maintenancePolicy = "maintenancePolicy"; + } + if (message.maintenanceSchedule != null && message.hasOwnProperty("maintenanceSchedule")) { + object.maintenanceSchedule = $root.google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule.toObject(message.maintenanceSchedule, options); + if (options.oneofs) + object._maintenanceSchedule = "maintenanceSchedule"; + } + if (message.pscServiceAttachments && message.pscServiceAttachments.length) { + object.pscServiceAttachments = []; + for (var j = 0; j < message.pscServiceAttachments.length; ++j) + object.pscServiceAttachments[j] = $root.google.cloud.redis.cluster.v1beta1.PscServiceAttachment.toObject(message.pscServiceAttachments[j], options); + } + if (message.gcsSource != null && message.hasOwnProperty("gcsSource")) { + object.gcsSource = $root.google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource.toObject(message.gcsSource, options); + if (options.oneofs) + object.importSources = "gcsSource"; + } + if (message.managedBackupSource != null && message.hasOwnProperty("managedBackupSource")) { + object.managedBackupSource = $root.google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource.toObject(message.managedBackupSource, options); + if (options.oneofs) + object.importSources = "managedBackupSource"; + } + if (message.clusterEndpoints && message.clusterEndpoints.length) { + object.clusterEndpoints = []; + for (var j = 0; j < message.clusterEndpoints.length; ++j) + object.clusterEndpoints[j] = $root.google.cloud.redis.cluster.v1beta1.ClusterEndpoint.toObject(message.clusterEndpoints[j], options); + } + if (message.backupCollection != null && message.hasOwnProperty("backupCollection")) { + object.backupCollection = message.backupCollection; + if (options.oneofs) + object._backupCollection = "backupCollection"; + } + if (message.kmsKey != null && message.hasOwnProperty("kmsKey")) { + object.kmsKey = message.kmsKey; + if (options.oneofs) + object._kmsKey = "kmsKey"; + } + if (message.automatedBackupConfig != null && message.hasOwnProperty("automatedBackupConfig")) + object.automatedBackupConfig = $root.google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.toObject(message.automatedBackupConfig, options); + if (message.encryptionInfo != null && message.hasOwnProperty("encryptionInfo")) + object.encryptionInfo = $root.google.cloud.redis.cluster.v1beta1.EncryptionInfo.toObject(message.encryptionInfo, options); + return object; + }; + + /** + * Converts this Cluster to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @instance + * @returns {Object.} JSON object + */ + Cluster.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Cluster + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Cluster.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.Cluster"; + }; + + Cluster.StateInfo = (function() { + + /** + * Properties of a StateInfo. + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @interface IStateInfo + * @property {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo|null} [updateInfo] StateInfo updateInfo + */ + + /** + * Constructs a new StateInfo. + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @classdesc Represents a StateInfo. + * @implements IStateInfo + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo=} [properties] Properties to set + */ + function StateInfo(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * StateInfo updateInfo. + * @member {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo|null|undefined} updateInfo + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo + * @instance + */ + StateInfo.prototype.updateInfo = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * StateInfo info. + * @member {"updateInfo"|undefined} info + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo + * @instance + */ + Object.defineProperty(StateInfo.prototype, "info", { + get: $util.oneOfGetter($oneOfFields = ["updateInfo"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new StateInfo instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo + * @static + * @param {google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo} StateInfo instance + */ + StateInfo.create = function create(properties) { + return new StateInfo(properties); + }; + + /** + * Encodes the specified StateInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo + * @static + * @param {google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo} message StateInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StateInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.updateInfo != null && Object.hasOwnProperty.call(message, "updateInfo")) + $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo.encode(message.updateInfo, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified StateInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo + * @static + * @param {google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo} message StateInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StateInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a StateInfo message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo} StateInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StateInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.updateInfo = $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a StateInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo} StateInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StateInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Calls CreateCluster. - * @function createCluster - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @instance - * @param {google.cloud.redis.cluster.v1beta1.ICreateClusterRequest} request CreateClusterRequest message or plain object - * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.CreateClusterCallback} callback Node-style callback called with the error, if any, and Operation - * @returns {undefined} - * @variation 1 - */ - Object.defineProperty(CloudRedisCluster.prototype.createCluster = function createCluster(request, callback) { - return this.rpcCall(createCluster, $root.google.cloud.redis.cluster.v1beta1.CreateClusterRequest, $root.google.longrunning.Operation, request, callback); - }, "name", { value: "CreateCluster" }); + /** + * Verifies a StateInfo message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + StateInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.updateInfo != null && message.hasOwnProperty("updateInfo")) { + properties.info = 1; + { + var error = $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo.verify(message.updateInfo); + if (error) + return "updateInfo." + error; + } + } + return null; + }; - /** - * Calls CreateCluster. - * @function createCluster - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @instance - * @param {google.cloud.redis.cluster.v1beta1.ICreateClusterRequest} request CreateClusterRequest message or plain object - * @returns {Promise} Promise - * @variation 2 - */ + /** + * Creates a StateInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo} StateInfo + */ + StateInfo.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo(); + if (object.updateInfo != null) { + if (typeof object.updateInfo !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.updateInfo: object expected"); + message.updateInfo = $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo.fromObject(object.updateInfo); + } + return message; + }; - /** - * Callback as used by {@link google.cloud.redis.cluster.v1beta1.CloudRedisCluster|getClusterCertificateAuthority}. - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @typedef GetClusterCertificateAuthorityCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.cloud.redis.cluster.v1beta1.CertificateAuthority} [response] CertificateAuthority - */ + /** + * Creates a plain object from a StateInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo + * @static + * @param {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo} message StateInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + StateInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.updateInfo != null && message.hasOwnProperty("updateInfo")) { + object.updateInfo = $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo.toObject(message.updateInfo, options); + if (options.oneofs) + object.info = "updateInfo"; + } + return object; + }; - /** - * Calls GetClusterCertificateAuthority. - * @function getClusterCertificateAuthority - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @instance - * @param {google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest} request GetClusterCertificateAuthorityRequest message or plain object - * @param {google.cloud.redis.cluster.v1beta1.CloudRedisCluster.GetClusterCertificateAuthorityCallback} callback Node-style callback called with the error, if any, and CertificateAuthority - * @returns {undefined} - * @variation 1 - */ - Object.defineProperty(CloudRedisCluster.prototype.getClusterCertificateAuthority = function getClusterCertificateAuthority(request, callback) { - return this.rpcCall(getClusterCertificateAuthority, $root.google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest, $root.google.cloud.redis.cluster.v1beta1.CertificateAuthority, request, callback); - }, "name", { value: "GetClusterCertificateAuthority" }); + /** + * Converts this StateInfo to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo + * @instance + * @returns {Object.} JSON object + */ + StateInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Calls GetClusterCertificateAuthority. - * @function getClusterCertificateAuthority - * @memberof google.cloud.redis.cluster.v1beta1.CloudRedisCluster - * @instance - * @param {google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest} request GetClusterCertificateAuthorityRequest message or plain object - * @returns {Promise} Promise - * @variation 2 - */ + /** + * Gets the default type url for StateInfo + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + StateInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.Cluster.StateInfo"; + }; - return CloudRedisCluster; - })(); + StateInfo.UpdateInfo = (function() { - /** - * AuthorizationMode enum. - * @name google.cloud.redis.cluster.v1beta1.AuthorizationMode - * @enum {number} - * @property {number} AUTH_MODE_UNSPECIFIED=0 AUTH_MODE_UNSPECIFIED value - * @property {number} AUTH_MODE_IAM_AUTH=1 AUTH_MODE_IAM_AUTH value - * @property {number} AUTH_MODE_DISABLED=2 AUTH_MODE_DISABLED value - */ - v1beta1.AuthorizationMode = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "AUTH_MODE_UNSPECIFIED"] = 0; - values[valuesById[1] = "AUTH_MODE_IAM_AUTH"] = 1; - values[valuesById[2] = "AUTH_MODE_DISABLED"] = 2; - return values; - })(); + /** + * Properties of an UpdateInfo. + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo + * @interface IUpdateInfo + * @property {number|null} [targetShardCount] UpdateInfo targetShardCount + * @property {number|null} [targetReplicaCount] UpdateInfo targetReplicaCount + */ + + /** + * Constructs a new UpdateInfo. + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo + * @classdesc Represents an UpdateInfo. + * @implements IUpdateInfo + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo=} [properties] Properties to set + */ + function UpdateInfo(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * UpdateInfo targetShardCount. + * @member {number|null|undefined} targetShardCount + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo + * @instance + */ + UpdateInfo.prototype.targetShardCount = null; + + /** + * UpdateInfo targetReplicaCount. + * @member {number|null|undefined} targetReplicaCount + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo + * @instance + */ + UpdateInfo.prototype.targetReplicaCount = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * UpdateInfo _targetShardCount. + * @member {"targetShardCount"|undefined} _targetShardCount + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo + * @instance + */ + Object.defineProperty(UpdateInfo.prototype, "_targetShardCount", { + get: $util.oneOfGetter($oneOfFields = ["targetShardCount"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * UpdateInfo _targetReplicaCount. + * @member {"targetReplicaCount"|undefined} _targetReplicaCount + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo + * @instance + */ + Object.defineProperty(UpdateInfo.prototype, "_targetReplicaCount", { + get: $util.oneOfGetter($oneOfFields = ["targetReplicaCount"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new UpdateInfo instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo + * @static + * @param {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo} UpdateInfo instance + */ + UpdateInfo.create = function create(properties) { + return new UpdateInfo(properties); + }; + + /** + * Encodes the specified UpdateInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo + * @static + * @param {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo} message UpdateInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UpdateInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.targetShardCount != null && Object.hasOwnProperty.call(message, "targetShardCount")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.targetShardCount); + if (message.targetReplicaCount != null && Object.hasOwnProperty.call(message, "targetReplicaCount")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.targetReplicaCount); + return writer; + }; + + /** + * Encodes the specified UpdateInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo + * @static + * @param {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo} message UpdateInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UpdateInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an UpdateInfo message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo} UpdateInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UpdateInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.targetShardCount = reader.int32(); + break; + } + case 2: { + message.targetReplicaCount = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an UpdateInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo} UpdateInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UpdateInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an UpdateInfo message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + UpdateInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.targetShardCount != null && message.hasOwnProperty("targetShardCount")) { + properties._targetShardCount = 1; + if (!$util.isInteger(message.targetShardCount)) + return "targetShardCount: integer expected"; + } + if (message.targetReplicaCount != null && message.hasOwnProperty("targetReplicaCount")) { + properties._targetReplicaCount = 1; + if (!$util.isInteger(message.targetReplicaCount)) + return "targetReplicaCount: integer expected"; + } + return null; + }; + + /** + * Creates an UpdateInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo} UpdateInfo + */ + UpdateInfo.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo(); + if (object.targetShardCount != null) + message.targetShardCount = object.targetShardCount | 0; + if (object.targetReplicaCount != null) + message.targetReplicaCount = object.targetReplicaCount | 0; + return message; + }; + + /** + * Creates a plain object from an UpdateInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo + * @static + * @param {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo} message UpdateInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + UpdateInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.targetShardCount != null && message.hasOwnProperty("targetShardCount")) { + object.targetShardCount = message.targetShardCount; + if (options.oneofs) + object._targetShardCount = "targetShardCount"; + } + if (message.targetReplicaCount != null && message.hasOwnProperty("targetReplicaCount")) { + object.targetReplicaCount = message.targetReplicaCount; + if (options.oneofs) + object._targetReplicaCount = "targetReplicaCount"; + } + return object; + }; + + /** + * Converts this UpdateInfo to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo + * @instance + * @returns {Object.} JSON object + */ + UpdateInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for UpdateInfo + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + UpdateInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo"; + }; + + return UpdateInfo; + })(); + + return StateInfo; + })(); + + Cluster.GcsBackupSource = (function() { + + /** + * Properties of a GcsBackupSource. + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @interface IGcsBackupSource + * @property {Array.|null} [uris] GcsBackupSource uris + */ + + /** + * Constructs a new GcsBackupSource. + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @classdesc Represents a GcsBackupSource. + * @implements IGcsBackupSource + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.Cluster.IGcsBackupSource=} [properties] Properties to set + */ + function GcsBackupSource(properties) { + this.uris = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GcsBackupSource uris. + * @member {Array.} uris + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource + * @instance + */ + GcsBackupSource.prototype.uris = $util.emptyArray; + + /** + * Creates a new GcsBackupSource instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource + * @static + * @param {google.cloud.redis.cluster.v1beta1.Cluster.IGcsBackupSource=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource} GcsBackupSource instance + */ + GcsBackupSource.create = function create(properties) { + return new GcsBackupSource(properties); + }; + + /** + * Encodes the specified GcsBackupSource message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource + * @static + * @param {google.cloud.redis.cluster.v1beta1.Cluster.IGcsBackupSource} message GcsBackupSource message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GcsBackupSource.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.uris != null && message.uris.length) + for (var i = 0; i < message.uris.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.uris[i]); + return writer; + }; + + /** + * Encodes the specified GcsBackupSource message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource + * @static + * @param {google.cloud.redis.cluster.v1beta1.Cluster.IGcsBackupSource} message GcsBackupSource message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GcsBackupSource.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GcsBackupSource message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource} GcsBackupSource + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GcsBackupSource.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (!(message.uris && message.uris.length)) + message.uris = []; + message.uris.push(reader.string()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GcsBackupSource message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource} GcsBackupSource + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GcsBackupSource.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * NodeType enum. - * @name google.cloud.redis.cluster.v1beta1.NodeType - * @enum {number} - * @property {number} NODE_TYPE_UNSPECIFIED=0 NODE_TYPE_UNSPECIFIED value - * @property {number} REDIS_SHARED_CORE_NANO=1 REDIS_SHARED_CORE_NANO value - * @property {number} REDIS_HIGHMEM_MEDIUM=2 REDIS_HIGHMEM_MEDIUM value - * @property {number} REDIS_HIGHMEM_XLARGE=3 REDIS_HIGHMEM_XLARGE value - * @property {number} REDIS_STANDARD_SMALL=4 REDIS_STANDARD_SMALL value - */ - v1beta1.NodeType = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "NODE_TYPE_UNSPECIFIED"] = 0; - values[valuesById[1] = "REDIS_SHARED_CORE_NANO"] = 1; - values[valuesById[2] = "REDIS_HIGHMEM_MEDIUM"] = 2; - values[valuesById[3] = "REDIS_HIGHMEM_XLARGE"] = 3; - values[valuesById[4] = "REDIS_STANDARD_SMALL"] = 4; - return values; - })(); + /** + * Verifies a GcsBackupSource message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GcsBackupSource.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.uris != null && message.hasOwnProperty("uris")) { + if (!Array.isArray(message.uris)) + return "uris: array expected"; + for (var i = 0; i < message.uris.length; ++i) + if (!$util.isString(message.uris[i])) + return "uris: string[] expected"; + } + return null; + }; - /** - * TransitEncryptionMode enum. - * @name google.cloud.redis.cluster.v1beta1.TransitEncryptionMode - * @enum {number} - * @property {number} TRANSIT_ENCRYPTION_MODE_UNSPECIFIED=0 TRANSIT_ENCRYPTION_MODE_UNSPECIFIED value - * @property {number} TRANSIT_ENCRYPTION_MODE_DISABLED=1 TRANSIT_ENCRYPTION_MODE_DISABLED value - * @property {number} TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION=2 TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION value - */ - v1beta1.TransitEncryptionMode = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "TRANSIT_ENCRYPTION_MODE_UNSPECIFIED"] = 0; - values[valuesById[1] = "TRANSIT_ENCRYPTION_MODE_DISABLED"] = 1; - values[valuesById[2] = "TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION"] = 2; - return values; - })(); + /** + * Creates a GcsBackupSource message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource} GcsBackupSource + */ + GcsBackupSource.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource(); + if (object.uris) { + if (!Array.isArray(object.uris)) + throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource.uris: array expected"); + message.uris = []; + for (var i = 0; i < object.uris.length; ++i) + message.uris[i] = String(object.uris[i]); + } + return message; + }; - v1beta1.CreateClusterRequest = (function() { + /** + * Creates a plain object from a GcsBackupSource message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource + * @static + * @param {google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource} message GcsBackupSource + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GcsBackupSource.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.uris = []; + if (message.uris && message.uris.length) { + object.uris = []; + for (var j = 0; j < message.uris.length; ++j) + object.uris[j] = message.uris[j]; + } + return object; + }; - /** - * Properties of a CreateClusterRequest. - * @memberof google.cloud.redis.cluster.v1beta1 - * @interface ICreateClusterRequest - * @property {string|null} [parent] CreateClusterRequest parent - * @property {string|null} [clusterId] CreateClusterRequest clusterId - * @property {google.cloud.redis.cluster.v1beta1.ICluster|null} [cluster] CreateClusterRequest cluster - * @property {string|null} [requestId] CreateClusterRequest requestId - */ + /** + * Converts this GcsBackupSource to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource + * @instance + * @returns {Object.} JSON object + */ + GcsBackupSource.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Constructs a new CreateClusterRequest. - * @memberof google.cloud.redis.cluster.v1beta1 - * @classdesc Represents a CreateClusterRequest. - * @implements ICreateClusterRequest - * @constructor - * @param {google.cloud.redis.cluster.v1beta1.ICreateClusterRequest=} [properties] Properties to set - */ - function CreateClusterRequest(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Gets the default type url for GcsBackupSource + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + GcsBackupSource.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.Cluster.GcsBackupSource"; + }; - /** - * CreateClusterRequest parent. - * @member {string} parent - * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest - * @instance - */ - CreateClusterRequest.prototype.parent = ""; + return GcsBackupSource; + })(); - /** - * CreateClusterRequest clusterId. - * @member {string} clusterId - * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest - * @instance - */ - CreateClusterRequest.prototype.clusterId = ""; + Cluster.ManagedBackupSource = (function() { - /** - * CreateClusterRequest cluster. - * @member {google.cloud.redis.cluster.v1beta1.ICluster|null|undefined} cluster - * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest - * @instance - */ - CreateClusterRequest.prototype.cluster = null; + /** + * Properties of a ManagedBackupSource. + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @interface IManagedBackupSource + * @property {string|null} [backup] ManagedBackupSource backup + */ - /** - * CreateClusterRequest requestId. - * @member {string} requestId - * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest - * @instance - */ - CreateClusterRequest.prototype.requestId = ""; + /** + * Constructs a new ManagedBackupSource. + * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @classdesc Represents a ManagedBackupSource. + * @implements IManagedBackupSource + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.Cluster.IManagedBackupSource=} [properties] Properties to set + */ + function ManagedBackupSource(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates a new CreateClusterRequest instance using the specified properties. - * @function create - * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest - * @static - * @param {google.cloud.redis.cluster.v1beta1.ICreateClusterRequest=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1beta1.CreateClusterRequest} CreateClusterRequest instance - */ - CreateClusterRequest.create = function create(properties) { - return new CreateClusterRequest(properties); - }; + /** + * ManagedBackupSource backup. + * @member {string} backup + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource + * @instance + */ + ManagedBackupSource.prototype.backup = ""; - /** - * Encodes the specified CreateClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CreateClusterRequest.verify|verify} messages. - * @function encode - * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest - * @static - * @param {google.cloud.redis.cluster.v1beta1.ICreateClusterRequest} message CreateClusterRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - CreateClusterRequest.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); - if (message.clusterId != null && Object.hasOwnProperty.call(message, "clusterId")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.clusterId); - if (message.cluster != null && Object.hasOwnProperty.call(message, "cluster")) - $root.google.cloud.redis.cluster.v1beta1.Cluster.encode(message.cluster, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.requestId != null && Object.hasOwnProperty.call(message, "requestId")) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.requestId); - return writer; - }; + /** + * Creates a new ManagedBackupSource instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource + * @static + * @param {google.cloud.redis.cluster.v1beta1.Cluster.IManagedBackupSource=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource} ManagedBackupSource instance + */ + ManagedBackupSource.create = function create(properties) { + return new ManagedBackupSource(properties); + }; - /** - * Encodes the specified CreateClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CreateClusterRequest.verify|verify} messages. - * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest - * @static - * @param {google.cloud.redis.cluster.v1beta1.ICreateClusterRequest} message CreateClusterRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - CreateClusterRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified ManagedBackupSource message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource + * @static + * @param {google.cloud.redis.cluster.v1beta1.Cluster.IManagedBackupSource} message ManagedBackupSource message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ManagedBackupSource.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.backup); + return writer; + }; - /** - * Decodes a CreateClusterRequest message from the specified reader or buffer. - * @function decode - * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1beta1.CreateClusterRequest} CreateClusterRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - CreateClusterRequest.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.CreateClusterRequest(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - message.parent = reader.string(); - break; - } - case 2: { - message.clusterId = reader.string(); - break; - } - case 3: { - message.cluster = $root.google.cloud.redis.cluster.v1beta1.Cluster.decode(reader, reader.uint32()); - break; - } - case 4: { - message.requestId = reader.string(); + /** + * Encodes the specified ManagedBackupSource message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource + * @static + * @param {google.cloud.redis.cluster.v1beta1.Cluster.IManagedBackupSource} message ManagedBackupSource message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ManagedBackupSource.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ManagedBackupSource message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource} ManagedBackupSource + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ManagedBackupSource.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.backup = reader.string(); + break; + } + default: + reader.skipType(tag & 7); break; } - default: - reader.skipType(tag & 7); - break; } - } - return message; - }; + return message; + }; - /** - * Decodes a CreateClusterRequest message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1beta1.CreateClusterRequest} CreateClusterRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - CreateClusterRequest.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes a ManagedBackupSource message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource} ManagedBackupSource + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ManagedBackupSource.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Verifies a CreateClusterRequest message. - * @function verify - * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - CreateClusterRequest.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.parent != null && message.hasOwnProperty("parent")) - if (!$util.isString(message.parent)) - return "parent: string expected"; - if (message.clusterId != null && message.hasOwnProperty("clusterId")) - if (!$util.isString(message.clusterId)) - return "clusterId: string expected"; - if (message.cluster != null && message.hasOwnProperty("cluster")) { - var error = $root.google.cloud.redis.cluster.v1beta1.Cluster.verify(message.cluster); - if (error) - return "cluster." + error; - } - if (message.requestId != null && message.hasOwnProperty("requestId")) - if (!$util.isString(message.requestId)) - return "requestId: string expected"; - return null; - }; + /** + * Verifies a ManagedBackupSource message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ManagedBackupSource.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.backup != null && message.hasOwnProperty("backup")) + if (!$util.isString(message.backup)) + return "backup: string expected"; + return null; + }; - /** - * Creates a CreateClusterRequest message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest - * @static - * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1beta1.CreateClusterRequest} CreateClusterRequest - */ - CreateClusterRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1beta1.CreateClusterRequest) + /** + * Creates a ManagedBackupSource message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource} ManagedBackupSource + */ + ManagedBackupSource.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource(); + if (object.backup != null) + message.backup = String(object.backup); + return message; + }; + + /** + * Creates a plain object from a ManagedBackupSource message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource + * @static + * @param {google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource} message ManagedBackupSource + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ManagedBackupSource.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.backup = ""; + if (message.backup != null && message.hasOwnProperty("backup")) + object.backup = message.backup; return object; - var message = new $root.google.cloud.redis.cluster.v1beta1.CreateClusterRequest(); - if (object.parent != null) - message.parent = String(object.parent); - if (object.clusterId != null) - message.clusterId = String(object.clusterId); - if (object.cluster != null) { - if (typeof object.cluster !== "object") - throw TypeError(".google.cloud.redis.cluster.v1beta1.CreateClusterRequest.cluster: object expected"); - message.cluster = $root.google.cloud.redis.cluster.v1beta1.Cluster.fromObject(object.cluster); - } - if (object.requestId != null) - message.requestId = String(object.requestId); - return message; - }; + }; - /** - * Creates a plain object from a CreateClusterRequest message. Also converts values to other types if specified. - * @function toObject - * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest - * @static - * @param {google.cloud.redis.cluster.v1beta1.CreateClusterRequest} message CreateClusterRequest - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - CreateClusterRequest.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.parent = ""; - object.clusterId = ""; - object.cluster = null; - object.requestId = ""; - } - if (message.parent != null && message.hasOwnProperty("parent")) - object.parent = message.parent; - if (message.clusterId != null && message.hasOwnProperty("clusterId")) - object.clusterId = message.clusterId; - if (message.cluster != null && message.hasOwnProperty("cluster")) - object.cluster = $root.google.cloud.redis.cluster.v1beta1.Cluster.toObject(message.cluster, options); - if (message.requestId != null && message.hasOwnProperty("requestId")) - object.requestId = message.requestId; - return object; - }; + /** + * Converts this ManagedBackupSource to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource + * @instance + * @returns {Object.} JSON object + */ + ManagedBackupSource.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Converts this CreateClusterRequest to JSON. - * @function toJSON - * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest - * @instance - * @returns {Object.} JSON object - */ - CreateClusterRequest.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Gets the default type url for ManagedBackupSource + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ManagedBackupSource.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.Cluster.ManagedBackupSource"; + }; + + return ManagedBackupSource; + })(); /** - * Gets the default type url for CreateClusterRequest - * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1beta1.CreateClusterRequest - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url + * State enum. + * @name google.cloud.redis.cluster.v1beta1.Cluster.State + * @enum {number} + * @property {number} STATE_UNSPECIFIED=0 STATE_UNSPECIFIED value + * @property {number} CREATING=1 CREATING value + * @property {number} ACTIVE=2 ACTIVE value + * @property {number} UPDATING=3 UPDATING value + * @property {number} DELETING=4 DELETING value */ - CreateClusterRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.CreateClusterRequest"; - }; + Cluster.State = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "STATE_UNSPECIFIED"] = 0; + values[valuesById[1] = "CREATING"] = 1; + values[valuesById[2] = "ACTIVE"] = 2; + values[valuesById[3] = "UPDATING"] = 3; + values[valuesById[4] = "DELETING"] = 4; + return values; + })(); - return CreateClusterRequest; + return Cluster; })(); - v1beta1.ListClustersRequest = (function() { + v1beta1.AutomatedBackupConfig = (function() { /** - * Properties of a ListClustersRequest. + * Properties of an AutomatedBackupConfig. * @memberof google.cloud.redis.cluster.v1beta1 - * @interface IListClustersRequest - * @property {string|null} [parent] ListClustersRequest parent - * @property {number|null} [pageSize] ListClustersRequest pageSize - * @property {string|null} [pageToken] ListClustersRequest pageToken + * @interface IAutomatedBackupConfig + * @property {google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.IFixedFrequencySchedule|null} [fixedFrequencySchedule] AutomatedBackupConfig fixedFrequencySchedule + * @property {google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.AutomatedBackupMode|null} [automatedBackupMode] AutomatedBackupConfig automatedBackupMode + * @property {google.protobuf.IDuration|null} [retention] AutomatedBackupConfig retention */ /** - * Constructs a new ListClustersRequest. + * Constructs a new AutomatedBackupConfig. * @memberof google.cloud.redis.cluster.v1beta1 - * @classdesc Represents a ListClustersRequest. - * @implements IListClustersRequest + * @classdesc Represents an AutomatedBackupConfig. + * @implements IAutomatedBackupConfig * @constructor - * @param {google.cloud.redis.cluster.v1beta1.IListClustersRequest=} [properties] Properties to set + * @param {google.cloud.redis.cluster.v1beta1.IAutomatedBackupConfig=} [properties] Properties to set */ - function ListClustersRequest(properties) { + function AutomatedBackupConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -7021,103 +22104,128 @@ } /** - * ListClustersRequest parent. - * @member {string} parent - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * AutomatedBackupConfig fixedFrequencySchedule. + * @member {google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.IFixedFrequencySchedule|null|undefined} fixedFrequencySchedule + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig * @instance */ - ListClustersRequest.prototype.parent = ""; + AutomatedBackupConfig.prototype.fixedFrequencySchedule = null; /** - * ListClustersRequest pageSize. - * @member {number} pageSize - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * AutomatedBackupConfig automatedBackupMode. + * @member {google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.AutomatedBackupMode} automatedBackupMode + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig * @instance */ - ListClustersRequest.prototype.pageSize = 0; + AutomatedBackupConfig.prototype.automatedBackupMode = 0; + + /** + * AutomatedBackupConfig retention. + * @member {google.protobuf.IDuration|null|undefined} retention + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig + * @instance + */ + AutomatedBackupConfig.prototype.retention = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * AutomatedBackupConfig schedule. + * @member {"fixedFrequencySchedule"|undefined} schedule + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig + * @instance + */ + Object.defineProperty(AutomatedBackupConfig.prototype, "schedule", { + get: $util.oneOfGetter($oneOfFields = ["fixedFrequencySchedule"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * ListClustersRequest pageToken. - * @member {string} pageToken - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * AutomatedBackupConfig _retention. + * @member {"retention"|undefined} _retention + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig * @instance */ - ListClustersRequest.prototype.pageToken = ""; + Object.defineProperty(AutomatedBackupConfig.prototype, "_retention", { + get: $util.oneOfGetter($oneOfFields = ["retention"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * Creates a new ListClustersRequest instance using the specified properties. + * Creates a new AutomatedBackupConfig instance using the specified properties. * @function create - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig * @static - * @param {google.cloud.redis.cluster.v1beta1.IListClustersRequest=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1beta1.ListClustersRequest} ListClustersRequest instance + * @param {google.cloud.redis.cluster.v1beta1.IAutomatedBackupConfig=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig} AutomatedBackupConfig instance */ - ListClustersRequest.create = function create(properties) { - return new ListClustersRequest(properties); + AutomatedBackupConfig.create = function create(properties) { + return new AutomatedBackupConfig(properties); }; /** - * Encodes the specified ListClustersRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListClustersRequest.verify|verify} messages. + * Encodes the specified AutomatedBackupConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.verify|verify} messages. * @function encode - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig * @static - * @param {google.cloud.redis.cluster.v1beta1.IListClustersRequest} message ListClustersRequest message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.IAutomatedBackupConfig} message AutomatedBackupConfig message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ListClustersRequest.encode = function encode(message, writer) { + AutomatedBackupConfig.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); - if (message.pageSize != null && Object.hasOwnProperty.call(message, "pageSize")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.pageSize); - if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.pageToken); + if (message.automatedBackupMode != null && Object.hasOwnProperty.call(message, "automatedBackupMode")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.automatedBackupMode); + if (message.fixedFrequencySchedule != null && Object.hasOwnProperty.call(message, "fixedFrequencySchedule")) + $root.google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule.encode(message.fixedFrequencySchedule, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.retention != null && Object.hasOwnProperty.call(message, "retention")) + $root.google.protobuf.Duration.encode(message.retention, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; /** - * Encodes the specified ListClustersRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListClustersRequest.verify|verify} messages. + * Encodes the specified AutomatedBackupConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig * @static - * @param {google.cloud.redis.cluster.v1beta1.IListClustersRequest} message ListClustersRequest message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.IAutomatedBackupConfig} message AutomatedBackupConfig message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ListClustersRequest.encodeDelimited = function encodeDelimited(message, writer) { + AutomatedBackupConfig.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a ListClustersRequest message from the specified reader or buffer. + * Decodes an AutomatedBackupConfig message from the specified reader or buffer. * @function decode - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1beta1.ListClustersRequest} ListClustersRequest + * @returns {google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig} AutomatedBackupConfig * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListClustersRequest.decode = function decode(reader, length) { + AutomatedBackupConfig.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.ListClustersRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: { - message.parent = reader.string(); + case 2: { + message.fixedFrequencySchedule = $root.google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule.decode(reader, reader.uint32()); break; } - case 2: { - message.pageSize = reader.int32(); + case 1: { + message.automatedBackupMode = reader.int32(); break; } case 3: { - message.pageToken = reader.string(); + message.retention = $root.google.protobuf.Duration.decode(reader, reader.uint32()); break; } default: @@ -7129,143 +22237,430 @@ }; /** - * Decodes a ListClustersRequest message from the specified reader or buffer, length delimited. + * Decodes an AutomatedBackupConfig message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1beta1.ListClustersRequest} ListClustersRequest + * @returns {google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig} AutomatedBackupConfig * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListClustersRequest.decodeDelimited = function decodeDelimited(reader) { + AutomatedBackupConfig.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a ListClustersRequest message. + * Verifies an AutomatedBackupConfig message. * @function verify - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListClustersRequest.verify = function verify(message) { + AutomatedBackupConfig.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.parent != null && message.hasOwnProperty("parent")) - if (!$util.isString(message.parent)) - return "parent: string expected"; - if (message.pageSize != null && message.hasOwnProperty("pageSize")) - if (!$util.isInteger(message.pageSize)) - return "pageSize: integer expected"; - if (message.pageToken != null && message.hasOwnProperty("pageToken")) - if (!$util.isString(message.pageToken)) - return "pageToken: string expected"; + var properties = {}; + if (message.fixedFrequencySchedule != null && message.hasOwnProperty("fixedFrequencySchedule")) { + properties.schedule = 1; + { + var error = $root.google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule.verify(message.fixedFrequencySchedule); + if (error) + return "fixedFrequencySchedule." + error; + } + } + if (message.automatedBackupMode != null && message.hasOwnProperty("automatedBackupMode")) + switch (message.automatedBackupMode) { + default: + return "automatedBackupMode: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.retention != null && message.hasOwnProperty("retention")) { + properties._retention = 1; + { + var error = $root.google.protobuf.Duration.verify(message.retention); + if (error) + return "retention." + error; + } + } return null; }; /** - * Creates a ListClustersRequest message from a plain object. Also converts values to their respective internal types. + * Creates an AutomatedBackupConfig message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig * @static * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1beta1.ListClustersRequest} ListClustersRequest + * @returns {google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig} AutomatedBackupConfig */ - ListClustersRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1beta1.ListClustersRequest) + AutomatedBackupConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig) return object; - var message = new $root.google.cloud.redis.cluster.v1beta1.ListClustersRequest(); - if (object.parent != null) - message.parent = String(object.parent); - if (object.pageSize != null) - message.pageSize = object.pageSize | 0; - if (object.pageToken != null) - message.pageToken = String(object.pageToken); + var message = new $root.google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig(); + if (object.fixedFrequencySchedule != null) { + if (typeof object.fixedFrequencySchedule !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.fixedFrequencySchedule: object expected"); + message.fixedFrequencySchedule = $root.google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule.fromObject(object.fixedFrequencySchedule); + } + switch (object.automatedBackupMode) { + default: + if (typeof object.automatedBackupMode === "number") { + message.automatedBackupMode = object.automatedBackupMode; + break; + } + break; + case "AUTOMATED_BACKUP_MODE_UNSPECIFIED": + case 0: + message.automatedBackupMode = 0; + break; + case "DISABLED": + case 1: + message.automatedBackupMode = 1; + break; + case "ENABLED": + case 2: + message.automatedBackupMode = 2; + break; + } + if (object.retention != null) { + if (typeof object.retention !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.retention: object expected"); + message.retention = $root.google.protobuf.Duration.fromObject(object.retention); + } return message; }; /** - * Creates a plain object from a ListClustersRequest message. Also converts values to other types if specified. + * Creates a plain object from an AutomatedBackupConfig message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig * @static - * @param {google.cloud.redis.cluster.v1beta1.ListClustersRequest} message ListClustersRequest + * @param {google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig} message AutomatedBackupConfig * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ListClustersRequest.toObject = function toObject(message, options) { + AutomatedBackupConfig.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.parent = ""; - object.pageSize = 0; - object.pageToken = ""; + if (options.defaults) + object.automatedBackupMode = options.enums === String ? "AUTOMATED_BACKUP_MODE_UNSPECIFIED" : 0; + if (message.automatedBackupMode != null && message.hasOwnProperty("automatedBackupMode")) + object.automatedBackupMode = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.AutomatedBackupMode[message.automatedBackupMode] === undefined ? message.automatedBackupMode : $root.google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.AutomatedBackupMode[message.automatedBackupMode] : message.automatedBackupMode; + if (message.fixedFrequencySchedule != null && message.hasOwnProperty("fixedFrequencySchedule")) { + object.fixedFrequencySchedule = $root.google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule.toObject(message.fixedFrequencySchedule, options); + if (options.oneofs) + object.schedule = "fixedFrequencySchedule"; + } + if (message.retention != null && message.hasOwnProperty("retention")) { + object.retention = $root.google.protobuf.Duration.toObject(message.retention, options); + if (options.oneofs) + object._retention = "retention"; } - if (message.parent != null && message.hasOwnProperty("parent")) - object.parent = message.parent; - if (message.pageSize != null && message.hasOwnProperty("pageSize")) - object.pageSize = message.pageSize; - if (message.pageToken != null && message.hasOwnProperty("pageToken")) - object.pageToken = message.pageToken; return object; }; /** - * Converts this ListClustersRequest to JSON. + * Converts this AutomatedBackupConfig to JSON. * @function toJSON - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig * @instance * @returns {Object.} JSON object */ - ListClustersRequest.prototype.toJSON = function toJSON() { + AutomatedBackupConfig.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for ListClustersRequest + * Gets the default type url for AutomatedBackupConfig * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersRequest + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - ListClustersRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + AutomatedBackupConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.ListClustersRequest"; + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig"; }; - return ListClustersRequest; + AutomatedBackupConfig.FixedFrequencySchedule = (function() { + + /** + * Properties of a FixedFrequencySchedule. + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig + * @interface IFixedFrequencySchedule + * @property {google.type.ITimeOfDay|null} [startTime] FixedFrequencySchedule startTime + */ + + /** + * Constructs a new FixedFrequencySchedule. + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig + * @classdesc Represents a FixedFrequencySchedule. + * @implements IFixedFrequencySchedule + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.IFixedFrequencySchedule=} [properties] Properties to set + */ + function FixedFrequencySchedule(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * FixedFrequencySchedule startTime. + * @member {google.type.ITimeOfDay|null|undefined} startTime + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule + * @instance + */ + FixedFrequencySchedule.prototype.startTime = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * FixedFrequencySchedule _startTime. + * @member {"startTime"|undefined} _startTime + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule + * @instance + */ + Object.defineProperty(FixedFrequencySchedule.prototype, "_startTime", { + get: $util.oneOfGetter($oneOfFields = ["startTime"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new FixedFrequencySchedule instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule + * @static + * @param {google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.IFixedFrequencySchedule=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule} FixedFrequencySchedule instance + */ + FixedFrequencySchedule.create = function create(properties) { + return new FixedFrequencySchedule(properties); + }; + + /** + * Encodes the specified FixedFrequencySchedule message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule + * @static + * @param {google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.IFixedFrequencySchedule} message FixedFrequencySchedule message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FixedFrequencySchedule.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) + $root.google.type.TimeOfDay.encode(message.startTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified FixedFrequencySchedule message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule + * @static + * @param {google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.IFixedFrequencySchedule} message FixedFrequencySchedule message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FixedFrequencySchedule.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FixedFrequencySchedule message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule} FixedFrequencySchedule + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FixedFrequencySchedule.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 2: { + message.startTime = $root.google.type.TimeOfDay.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a FixedFrequencySchedule message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule} FixedFrequencySchedule + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FixedFrequencySchedule.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FixedFrequencySchedule message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FixedFrequencySchedule.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.startTime != null && message.hasOwnProperty("startTime")) { + properties._startTime = 1; + { + var error = $root.google.type.TimeOfDay.verify(message.startTime); + if (error) + return "startTime." + error; + } + } + return null; + }; + + /** + * Creates a FixedFrequencySchedule message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule} FixedFrequencySchedule + */ + FixedFrequencySchedule.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule(); + if (object.startTime != null) { + if (typeof object.startTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule.startTime: object expected"); + message.startTime = $root.google.type.TimeOfDay.fromObject(object.startTime); + } + return message; + }; + + /** + * Creates a plain object from a FixedFrequencySchedule message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule + * @static + * @param {google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule} message FixedFrequencySchedule + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FixedFrequencySchedule.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.startTime != null && message.hasOwnProperty("startTime")) { + object.startTime = $root.google.type.TimeOfDay.toObject(message.startTime, options); + if (options.oneofs) + object._startTime = "startTime"; + } + return object; + }; + + /** + * Converts this FixedFrequencySchedule to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule + * @instance + * @returns {Object.} JSON object + */ + FixedFrequencySchedule.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for FixedFrequencySchedule + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + FixedFrequencySchedule.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.FixedFrequencySchedule"; + }; + + return FixedFrequencySchedule; + })(); + + /** + * AutomatedBackupMode enum. + * @name google.cloud.redis.cluster.v1beta1.AutomatedBackupConfig.AutomatedBackupMode + * @enum {number} + * @property {number} AUTOMATED_BACKUP_MODE_UNSPECIFIED=0 AUTOMATED_BACKUP_MODE_UNSPECIFIED value + * @property {number} DISABLED=1 DISABLED value + * @property {number} ENABLED=2 ENABLED value + */ + AutomatedBackupConfig.AutomatedBackupMode = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "AUTOMATED_BACKUP_MODE_UNSPECIFIED"] = 0; + values[valuesById[1] = "DISABLED"] = 1; + values[valuesById[2] = "ENABLED"] = 2; + return values; + })(); + + return AutomatedBackupConfig; })(); - v1beta1.ListClustersResponse = (function() { + v1beta1.BackupCollection = (function() { /** - * Properties of a ListClustersResponse. + * Properties of a BackupCollection. * @memberof google.cloud.redis.cluster.v1beta1 - * @interface IListClustersResponse - * @property {Array.|null} [clusters] ListClustersResponse clusters - * @property {string|null} [nextPageToken] ListClustersResponse nextPageToken - * @property {Array.|null} [unreachable] ListClustersResponse unreachable + * @interface IBackupCollection + * @property {string|null} [name] BackupCollection name + * @property {string|null} [clusterUid] BackupCollection clusterUid + * @property {string|null} [cluster] BackupCollection cluster + * @property {string|null} [kmsKey] BackupCollection kmsKey + * @property {string|null} [uid] BackupCollection uid */ /** - * Constructs a new ListClustersResponse. + * Constructs a new BackupCollection. * @memberof google.cloud.redis.cluster.v1beta1 - * @classdesc Represents a ListClustersResponse. - * @implements IListClustersResponse + * @classdesc Represents a BackupCollection. + * @implements IBackupCollection * @constructor - * @param {google.cloud.redis.cluster.v1beta1.IListClustersResponse=} [properties] Properties to set + * @param {google.cloud.redis.cluster.v1beta1.IBackupCollection=} [properties] Properties to set */ - function ListClustersResponse(properties) { - this.clusters = []; - this.unreachable = []; + function BackupCollection(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -7273,109 +22668,131 @@ } /** - * ListClustersResponse clusters. - * @member {Array.} clusters - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * BackupCollection name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1beta1.BackupCollection * @instance */ - ListClustersResponse.prototype.clusters = $util.emptyArray; + BackupCollection.prototype.name = ""; /** - * ListClustersResponse nextPageToken. - * @member {string} nextPageToken - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * BackupCollection clusterUid. + * @member {string} clusterUid + * @memberof google.cloud.redis.cluster.v1beta1.BackupCollection * @instance */ - ListClustersResponse.prototype.nextPageToken = ""; + BackupCollection.prototype.clusterUid = ""; /** - * ListClustersResponse unreachable. - * @member {Array.} unreachable - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * BackupCollection cluster. + * @member {string} cluster + * @memberof google.cloud.redis.cluster.v1beta1.BackupCollection * @instance */ - ListClustersResponse.prototype.unreachable = $util.emptyArray; + BackupCollection.prototype.cluster = ""; /** - * Creates a new ListClustersResponse instance using the specified properties. + * BackupCollection kmsKey. + * @member {string} kmsKey + * @memberof google.cloud.redis.cluster.v1beta1.BackupCollection + * @instance + */ + BackupCollection.prototype.kmsKey = ""; + + /** + * BackupCollection uid. + * @member {string} uid + * @memberof google.cloud.redis.cluster.v1beta1.BackupCollection + * @instance + */ + BackupCollection.prototype.uid = ""; + + /** + * Creates a new BackupCollection instance using the specified properties. * @function create - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @memberof google.cloud.redis.cluster.v1beta1.BackupCollection * @static - * @param {google.cloud.redis.cluster.v1beta1.IListClustersResponse=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1beta1.ListClustersResponse} ListClustersResponse instance + * @param {google.cloud.redis.cluster.v1beta1.IBackupCollection=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.BackupCollection} BackupCollection instance */ - ListClustersResponse.create = function create(properties) { - return new ListClustersResponse(properties); + BackupCollection.create = function create(properties) { + return new BackupCollection(properties); }; /** - * Encodes the specified ListClustersResponse message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListClustersResponse.verify|verify} messages. + * Encodes the specified BackupCollection message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.BackupCollection.verify|verify} messages. * @function encode - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @memberof google.cloud.redis.cluster.v1beta1.BackupCollection * @static - * @param {google.cloud.redis.cluster.v1beta1.IListClustersResponse} message ListClustersResponse message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.IBackupCollection} message BackupCollection message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ListClustersResponse.encode = function encode(message, writer) { + BackupCollection.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.clusters != null && message.clusters.length) - for (var i = 0; i < message.clusters.length; ++i) - $root.google.cloud.redis.cluster.v1beta1.Cluster.encode(message.clusters[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.nextPageToken); - if (message.unreachable != null && message.unreachable.length) - for (var i = 0; i < message.unreachable.length; ++i) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.unreachable[i]); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.clusterUid != null && Object.hasOwnProperty.call(message, "clusterUid")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.clusterUid); + if (message.cluster != null && Object.hasOwnProperty.call(message, "cluster")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.cluster); + if (message.kmsKey != null && Object.hasOwnProperty.call(message, "kmsKey")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.kmsKey); + if (message.uid != null && Object.hasOwnProperty.call(message, "uid")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.uid); return writer; }; /** - * Encodes the specified ListClustersResponse message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ListClustersResponse.verify|verify} messages. + * Encodes the specified BackupCollection message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.BackupCollection.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @memberof google.cloud.redis.cluster.v1beta1.BackupCollection * @static - * @param {google.cloud.redis.cluster.v1beta1.IListClustersResponse} message ListClustersResponse message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.IBackupCollection} message BackupCollection message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ListClustersResponse.encodeDelimited = function encodeDelimited(message, writer) { + BackupCollection.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a ListClustersResponse message from the specified reader or buffer. + * Decodes a BackupCollection message from the specified reader or buffer. * @function decode - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @memberof google.cloud.redis.cluster.v1beta1.BackupCollection * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1beta1.ListClustersResponse} ListClustersResponse + * @returns {google.cloud.redis.cluster.v1beta1.BackupCollection} BackupCollection * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListClustersResponse.decode = function decode(reader, length) { + BackupCollection.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.ListClustersResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.BackupCollection(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - if (!(message.clusters && message.clusters.length)) - message.clusters = []; - message.clusters.push($root.google.cloud.redis.cluster.v1beta1.Cluster.decode(reader, reader.uint32())); + message.name = reader.string(); break; } - case 2: { - message.nextPageToken = reader.string(); + case 3: { + message.clusterUid = reader.string(); break; } - case 3: { - if (!(message.unreachable && message.unreachable.length)) - message.unreachable = []; - message.unreachable.push(reader.string()); + case 4: { + message.cluster = reader.string(); + break; + } + case 5: { + message.kmsKey = reader.string(); + break; + } + case 6: { + message.uid = reader.string(); break; } default: @@ -7387,275 +22804,445 @@ }; /** - * Decodes a ListClustersResponse message from the specified reader or buffer, length delimited. + * Decodes a BackupCollection message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @memberof google.cloud.redis.cluster.v1beta1.BackupCollection * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1beta1.ListClustersResponse} ListClustersResponse + * @returns {google.cloud.redis.cluster.v1beta1.BackupCollection} BackupCollection * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListClustersResponse.decodeDelimited = function decodeDelimited(reader) { + BackupCollection.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a ListClustersResponse message. + * Verifies a BackupCollection message. * @function verify - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @memberof google.cloud.redis.cluster.v1beta1.BackupCollection * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListClustersResponse.verify = function verify(message) { + BackupCollection.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.clusters != null && message.hasOwnProperty("clusters")) { - if (!Array.isArray(message.clusters)) - return "clusters: array expected"; - for (var i = 0; i < message.clusters.length; ++i) { - var error = $root.google.cloud.redis.cluster.v1beta1.Cluster.verify(message.clusters[i]); - if (error) - return "clusters." + error; - } - } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) - if (!$util.isString(message.nextPageToken)) - return "nextPageToken: string expected"; - if (message.unreachable != null && message.hasOwnProperty("unreachable")) { - if (!Array.isArray(message.unreachable)) - return "unreachable: array expected"; - for (var i = 0; i < message.unreachable.length; ++i) - if (!$util.isString(message.unreachable[i])) - return "unreachable: string[] expected"; - } + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.clusterUid != null && message.hasOwnProperty("clusterUid")) + if (!$util.isString(message.clusterUid)) + return "clusterUid: string expected"; + if (message.cluster != null && message.hasOwnProperty("cluster")) + if (!$util.isString(message.cluster)) + return "cluster: string expected"; + if (message.kmsKey != null && message.hasOwnProperty("kmsKey")) + if (!$util.isString(message.kmsKey)) + return "kmsKey: string expected"; + if (message.uid != null && message.hasOwnProperty("uid")) + if (!$util.isString(message.uid)) + return "uid: string expected"; return null; }; /** - * Creates a ListClustersResponse message from a plain object. Also converts values to their respective internal types. + * Creates a BackupCollection message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @memberof google.cloud.redis.cluster.v1beta1.BackupCollection * @static * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1beta1.ListClustersResponse} ListClustersResponse + * @returns {google.cloud.redis.cluster.v1beta1.BackupCollection} BackupCollection */ - ListClustersResponse.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1beta1.ListClustersResponse) + BackupCollection.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.BackupCollection) return object; - var message = new $root.google.cloud.redis.cluster.v1beta1.ListClustersResponse(); - if (object.clusters) { - if (!Array.isArray(object.clusters)) - throw TypeError(".google.cloud.redis.cluster.v1beta1.ListClustersResponse.clusters: array expected"); - message.clusters = []; - for (var i = 0; i < object.clusters.length; ++i) { - if (typeof object.clusters[i] !== "object") - throw TypeError(".google.cloud.redis.cluster.v1beta1.ListClustersResponse.clusters: object expected"); - message.clusters[i] = $root.google.cloud.redis.cluster.v1beta1.Cluster.fromObject(object.clusters[i]); - } - } - if (object.nextPageToken != null) - message.nextPageToken = String(object.nextPageToken); - if (object.unreachable) { - if (!Array.isArray(object.unreachable)) - throw TypeError(".google.cloud.redis.cluster.v1beta1.ListClustersResponse.unreachable: array expected"); - message.unreachable = []; - for (var i = 0; i < object.unreachable.length; ++i) - message.unreachable[i] = String(object.unreachable[i]); - } + var message = new $root.google.cloud.redis.cluster.v1beta1.BackupCollection(); + if (object.name != null) + message.name = String(object.name); + if (object.clusterUid != null) + message.clusterUid = String(object.clusterUid); + if (object.cluster != null) + message.cluster = String(object.cluster); + if (object.kmsKey != null) + message.kmsKey = String(object.kmsKey); + if (object.uid != null) + message.uid = String(object.uid); return message; }; /** - * Creates a plain object from a ListClustersResponse message. Also converts values to other types if specified. + * Creates a plain object from a BackupCollection message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @memberof google.cloud.redis.cluster.v1beta1.BackupCollection * @static - * @param {google.cloud.redis.cluster.v1beta1.ListClustersResponse} message ListClustersResponse + * @param {google.cloud.redis.cluster.v1beta1.BackupCollection} message BackupCollection * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ListClustersResponse.toObject = function toObject(message, options) { + BackupCollection.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.clusters = []; - object.unreachable = []; - } - if (options.defaults) - object.nextPageToken = ""; - if (message.clusters && message.clusters.length) { - object.clusters = []; - for (var j = 0; j < message.clusters.length; ++j) - object.clusters[j] = $root.google.cloud.redis.cluster.v1beta1.Cluster.toObject(message.clusters[j], options); - } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) - object.nextPageToken = message.nextPageToken; - if (message.unreachable && message.unreachable.length) { - object.unreachable = []; - for (var j = 0; j < message.unreachable.length; ++j) - object.unreachable[j] = message.unreachable[j]; + if (options.defaults) { + object.name = ""; + object.clusterUid = ""; + object.cluster = ""; + object.kmsKey = ""; + object.uid = ""; } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.clusterUid != null && message.hasOwnProperty("clusterUid")) + object.clusterUid = message.clusterUid; + if (message.cluster != null && message.hasOwnProperty("cluster")) + object.cluster = message.cluster; + if (message.kmsKey != null && message.hasOwnProperty("kmsKey")) + object.kmsKey = message.kmsKey; + if (message.uid != null && message.hasOwnProperty("uid")) + object.uid = message.uid; return object; }; /** - * Converts this ListClustersResponse to JSON. + * Converts this BackupCollection to JSON. * @function toJSON - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @memberof google.cloud.redis.cluster.v1beta1.BackupCollection * @instance * @returns {Object.} JSON object */ - ListClustersResponse.prototype.toJSON = function toJSON() { + BackupCollection.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for ListClustersResponse + * Gets the default type url for BackupCollection * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1beta1.ListClustersResponse + * @memberof google.cloud.redis.cluster.v1beta1.BackupCollection * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - ListClustersResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.ListClustersResponse"; - }; + BackupCollection.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.BackupCollection"; + }; + + return BackupCollection; + })(); + + v1beta1.Backup = (function() { + + /** + * Properties of a Backup. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IBackup + * @property {string|null} [name] Backup name + * @property {google.protobuf.ITimestamp|null} [createTime] Backup createTime + * @property {string|null} [cluster] Backup cluster + * @property {string|null} [clusterUid] Backup clusterUid + * @property {number|Long|null} [totalSizeBytes] Backup totalSizeBytes + * @property {google.protobuf.ITimestamp|null} [expireTime] Backup expireTime + * @property {string|null} [engineVersion] Backup engineVersion + * @property {Array.|null} [backupFiles] Backup backupFiles + * @property {google.cloud.redis.cluster.v1beta1.NodeType|null} [nodeType] Backup nodeType + * @property {number|null} [replicaCount] Backup replicaCount + * @property {number|null} [shardCount] Backup shardCount + * @property {google.cloud.redis.cluster.v1beta1.Backup.BackupType|null} [backupType] Backup backupType + * @property {google.cloud.redis.cluster.v1beta1.Backup.State|null} [state] Backup state + * @property {google.cloud.redis.cluster.v1beta1.IEncryptionInfo|null} [encryptionInfo] Backup encryptionInfo + * @property {string|null} [uid] Backup uid + */ + + /** + * Constructs a new Backup. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a Backup. + * @implements IBackup + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IBackup=} [properties] Properties to set + */ + function Backup(properties) { + this.backupFiles = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Backup name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1beta1.Backup + * @instance + */ + Backup.prototype.name = ""; + + /** + * Backup createTime. + * @member {google.protobuf.ITimestamp|null|undefined} createTime + * @memberof google.cloud.redis.cluster.v1beta1.Backup + * @instance + */ + Backup.prototype.createTime = null; + + /** + * Backup cluster. + * @member {string} cluster + * @memberof google.cloud.redis.cluster.v1beta1.Backup + * @instance + */ + Backup.prototype.cluster = ""; + + /** + * Backup clusterUid. + * @member {string} clusterUid + * @memberof google.cloud.redis.cluster.v1beta1.Backup + * @instance + */ + Backup.prototype.clusterUid = ""; + + /** + * Backup totalSizeBytes. + * @member {number|Long} totalSizeBytes + * @memberof google.cloud.redis.cluster.v1beta1.Backup + * @instance + */ + Backup.prototype.totalSizeBytes = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * Backup expireTime. + * @member {google.protobuf.ITimestamp|null|undefined} expireTime + * @memberof google.cloud.redis.cluster.v1beta1.Backup + * @instance + */ + Backup.prototype.expireTime = null; + + /** + * Backup engineVersion. + * @member {string} engineVersion + * @memberof google.cloud.redis.cluster.v1beta1.Backup + * @instance + */ + Backup.prototype.engineVersion = ""; + + /** + * Backup backupFiles. + * @member {Array.} backupFiles + * @memberof google.cloud.redis.cluster.v1beta1.Backup + * @instance + */ + Backup.prototype.backupFiles = $util.emptyArray; - return ListClustersResponse; - })(); + /** + * Backup nodeType. + * @member {google.cloud.redis.cluster.v1beta1.NodeType} nodeType + * @memberof google.cloud.redis.cluster.v1beta1.Backup + * @instance + */ + Backup.prototype.nodeType = 0; - v1beta1.UpdateClusterRequest = (function() { + /** + * Backup replicaCount. + * @member {number} replicaCount + * @memberof google.cloud.redis.cluster.v1beta1.Backup + * @instance + */ + Backup.prototype.replicaCount = 0; /** - * Properties of an UpdateClusterRequest. - * @memberof google.cloud.redis.cluster.v1beta1 - * @interface IUpdateClusterRequest - * @property {google.protobuf.IFieldMask|null} [updateMask] UpdateClusterRequest updateMask - * @property {google.cloud.redis.cluster.v1beta1.ICluster|null} [cluster] UpdateClusterRequest cluster - * @property {string|null} [requestId] UpdateClusterRequest requestId + * Backup shardCount. + * @member {number} shardCount + * @memberof google.cloud.redis.cluster.v1beta1.Backup + * @instance */ + Backup.prototype.shardCount = 0; /** - * Constructs a new UpdateClusterRequest. - * @memberof google.cloud.redis.cluster.v1beta1 - * @classdesc Represents an UpdateClusterRequest. - * @implements IUpdateClusterRequest - * @constructor - * @param {google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest=} [properties] Properties to set + * Backup backupType. + * @member {google.cloud.redis.cluster.v1beta1.Backup.BackupType} backupType + * @memberof google.cloud.redis.cluster.v1beta1.Backup + * @instance */ - function UpdateClusterRequest(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + Backup.prototype.backupType = 0; /** - * UpdateClusterRequest updateMask. - * @member {google.protobuf.IFieldMask|null|undefined} updateMask - * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * Backup state. + * @member {google.cloud.redis.cluster.v1beta1.Backup.State} state + * @memberof google.cloud.redis.cluster.v1beta1.Backup * @instance */ - UpdateClusterRequest.prototype.updateMask = null; + Backup.prototype.state = 0; /** - * UpdateClusterRequest cluster. - * @member {google.cloud.redis.cluster.v1beta1.ICluster|null|undefined} cluster - * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * Backup encryptionInfo. + * @member {google.cloud.redis.cluster.v1beta1.IEncryptionInfo|null|undefined} encryptionInfo + * @memberof google.cloud.redis.cluster.v1beta1.Backup * @instance */ - UpdateClusterRequest.prototype.cluster = null; + Backup.prototype.encryptionInfo = null; /** - * UpdateClusterRequest requestId. - * @member {string} requestId - * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * Backup uid. + * @member {string} uid + * @memberof google.cloud.redis.cluster.v1beta1.Backup * @instance */ - UpdateClusterRequest.prototype.requestId = ""; + Backup.prototype.uid = ""; /** - * Creates a new UpdateClusterRequest instance using the specified properties. + * Creates a new Backup instance using the specified properties. * @function create - * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.Backup * @static - * @param {google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1beta1.UpdateClusterRequest} UpdateClusterRequest instance + * @param {google.cloud.redis.cluster.v1beta1.IBackup=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.Backup} Backup instance */ - UpdateClusterRequest.create = function create(properties) { - return new UpdateClusterRequest(properties); + Backup.create = function create(properties) { + return new Backup(properties); }; /** - * Encodes the specified UpdateClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.UpdateClusterRequest.verify|verify} messages. + * Encodes the specified Backup message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Backup.verify|verify} messages. * @function encode - * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.Backup * @static - * @param {google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest} message UpdateClusterRequest message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.IBackup} message Backup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UpdateClusterRequest.encode = function encode(message, writer) { + Backup.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.updateMask != null && Object.hasOwnProperty.call(message, "updateMask")) - $root.google.protobuf.FieldMask.encode(message.updateMask, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) + $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.cluster != null && Object.hasOwnProperty.call(message, "cluster")) - $root.google.cloud.redis.cluster.v1beta1.Cluster.encode(message.cluster, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.requestId != null && Object.hasOwnProperty.call(message, "requestId")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.requestId); + writer.uint32(/* id 3, wireType 2 =*/26).string(message.cluster); + if (message.clusterUid != null && Object.hasOwnProperty.call(message, "clusterUid")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.clusterUid); + if (message.totalSizeBytes != null && Object.hasOwnProperty.call(message, "totalSizeBytes")) + writer.uint32(/* id 5, wireType 0 =*/40).int64(message.totalSizeBytes); + if (message.expireTime != null && Object.hasOwnProperty.call(message, "expireTime")) + $root.google.protobuf.Timestamp.encode(message.expireTime, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.engineVersion != null && Object.hasOwnProperty.call(message, "engineVersion")) + writer.uint32(/* id 7, wireType 2 =*/58).string(message.engineVersion); + if (message.backupFiles != null && message.backupFiles.length) + for (var i = 0; i < message.backupFiles.length; ++i) + $root.google.cloud.redis.cluster.v1beta1.BackupFile.encode(message.backupFiles[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.nodeType != null && Object.hasOwnProperty.call(message, "nodeType")) + writer.uint32(/* id 9, wireType 0 =*/72).int32(message.nodeType); + if (message.replicaCount != null && Object.hasOwnProperty.call(message, "replicaCount")) + writer.uint32(/* id 10, wireType 0 =*/80).int32(message.replicaCount); + if (message.shardCount != null && Object.hasOwnProperty.call(message, "shardCount")) + writer.uint32(/* id 11, wireType 0 =*/88).int32(message.shardCount); + if (message.backupType != null && Object.hasOwnProperty.call(message, "backupType")) + writer.uint32(/* id 12, wireType 0 =*/96).int32(message.backupType); + if (message.state != null && Object.hasOwnProperty.call(message, "state")) + writer.uint32(/* id 13, wireType 0 =*/104).int32(message.state); + if (message.encryptionInfo != null && Object.hasOwnProperty.call(message, "encryptionInfo")) + $root.google.cloud.redis.cluster.v1beta1.EncryptionInfo.encode(message.encryptionInfo, writer.uint32(/* id 14, wireType 2 =*/114).fork()).ldelim(); + if (message.uid != null && Object.hasOwnProperty.call(message, "uid")) + writer.uint32(/* id 15, wireType 2 =*/122).string(message.uid); return writer; }; /** - * Encodes the specified UpdateClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.UpdateClusterRequest.verify|verify} messages. + * Encodes the specified Backup message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Backup.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.Backup * @static - * @param {google.cloud.redis.cluster.v1beta1.IUpdateClusterRequest} message UpdateClusterRequest message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.IBackup} message Backup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UpdateClusterRequest.encodeDelimited = function encodeDelimited(message, writer) { + Backup.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an UpdateClusterRequest message from the specified reader or buffer. + * Decodes a Backup message from the specified reader or buffer. * @function decode - * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.Backup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1beta1.UpdateClusterRequest} UpdateClusterRequest + * @returns {google.cloud.redis.cluster.v1beta1.Backup} Backup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UpdateClusterRequest.decode = function decode(reader, length) { + Backup.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.UpdateClusterRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.Backup(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.updateMask = $root.google.protobuf.FieldMask.decode(reader, reader.uint32()); + message.name = reader.string(); break; } case 2: { - message.cluster = $root.google.cloud.redis.cluster.v1beta1.Cluster.decode(reader, reader.uint32()); + message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); break; } case 3: { - message.requestId = reader.string(); + message.cluster = reader.string(); + break; + } + case 4: { + message.clusterUid = reader.string(); + break; + } + case 5: { + message.totalSizeBytes = reader.int64(); + break; + } + case 6: { + message.expireTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 7: { + message.engineVersion = reader.string(); + break; + } + case 8: { + if (!(message.backupFiles && message.backupFiles.length)) + message.backupFiles = []; + message.backupFiles.push($root.google.cloud.redis.cluster.v1beta1.BackupFile.decode(reader, reader.uint32())); + break; + } + case 9: { + message.nodeType = reader.int32(); + break; + } + case 10: { + message.replicaCount = reader.int32(); + break; + } + case 11: { + message.shardCount = reader.int32(); + break; + } + case 12: { + message.backupType = reader.int32(); + break; + } + case 13: { + message.state = reader.int32(); + break; + } + case 14: { + message.encryptionInfo = $root.google.cloud.redis.cluster.v1beta1.EncryptionInfo.decode(reader, reader.uint32()); + break; + } + case 15: { + message.uid = reader.string(); break; } default: @@ -7667,149 +23254,412 @@ }; /** - * Decodes an UpdateClusterRequest message from the specified reader or buffer, length delimited. + * Decodes a Backup message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.Backup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1beta1.UpdateClusterRequest} UpdateClusterRequest + * @returns {google.cloud.redis.cluster.v1beta1.Backup} Backup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UpdateClusterRequest.decodeDelimited = function decodeDelimited(reader) { + Backup.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies an UpdateClusterRequest message. + * Verifies a Backup message. * @function verify - * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.Backup * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UpdateClusterRequest.verify = function verify(message) { + Backup.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.updateMask != null && message.hasOwnProperty("updateMask")) { - var error = $root.google.protobuf.FieldMask.verify(message.updateMask); + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.createTime != null && message.hasOwnProperty("createTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.createTime); if (error) - return "updateMask." + error; + return "createTime." + error; } - if (message.cluster != null && message.hasOwnProperty("cluster")) { - var error = $root.google.cloud.redis.cluster.v1beta1.Cluster.verify(message.cluster); + if (message.cluster != null && message.hasOwnProperty("cluster")) + if (!$util.isString(message.cluster)) + return "cluster: string expected"; + if (message.clusterUid != null && message.hasOwnProperty("clusterUid")) + if (!$util.isString(message.clusterUid)) + return "clusterUid: string expected"; + if (message.totalSizeBytes != null && message.hasOwnProperty("totalSizeBytes")) + if (!$util.isInteger(message.totalSizeBytes) && !(message.totalSizeBytes && $util.isInteger(message.totalSizeBytes.low) && $util.isInteger(message.totalSizeBytes.high))) + return "totalSizeBytes: integer|Long expected"; + if (message.expireTime != null && message.hasOwnProperty("expireTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.expireTime); if (error) - return "cluster." + error; + return "expireTime." + error; } - if (message.requestId != null && message.hasOwnProperty("requestId")) - if (!$util.isString(message.requestId)) - return "requestId: string expected"; + if (message.engineVersion != null && message.hasOwnProperty("engineVersion")) + if (!$util.isString(message.engineVersion)) + return "engineVersion: string expected"; + if (message.backupFiles != null && message.hasOwnProperty("backupFiles")) { + if (!Array.isArray(message.backupFiles)) + return "backupFiles: array expected"; + for (var i = 0; i < message.backupFiles.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1beta1.BackupFile.verify(message.backupFiles[i]); + if (error) + return "backupFiles." + error; + } + } + if (message.nodeType != null && message.hasOwnProperty("nodeType")) + switch (message.nodeType) { + default: + return "nodeType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + break; + } + if (message.replicaCount != null && message.hasOwnProperty("replicaCount")) + if (!$util.isInteger(message.replicaCount)) + return "replicaCount: integer expected"; + if (message.shardCount != null && message.hasOwnProperty("shardCount")) + if (!$util.isInteger(message.shardCount)) + return "shardCount: integer expected"; + if (message.backupType != null && message.hasOwnProperty("backupType")) + switch (message.backupType) { + default: + return "backupType: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.state != null && message.hasOwnProperty("state")) + switch (message.state) { + default: + return "state: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + break; + } + if (message.encryptionInfo != null && message.hasOwnProperty("encryptionInfo")) { + var error = $root.google.cloud.redis.cluster.v1beta1.EncryptionInfo.verify(message.encryptionInfo); + if (error) + return "encryptionInfo." + error; + } + if (message.uid != null && message.hasOwnProperty("uid")) + if (!$util.isString(message.uid)) + return "uid: string expected"; return null; }; /** - * Creates an UpdateClusterRequest message from a plain object. Also converts values to their respective internal types. + * Creates a Backup message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.Backup * @static * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1beta1.UpdateClusterRequest} UpdateClusterRequest + * @returns {google.cloud.redis.cluster.v1beta1.Backup} Backup */ - UpdateClusterRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1beta1.UpdateClusterRequest) + Backup.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.Backup) return object; - var message = new $root.google.cloud.redis.cluster.v1beta1.UpdateClusterRequest(); - if (object.updateMask != null) { - if (typeof object.updateMask !== "object") - throw TypeError(".google.cloud.redis.cluster.v1beta1.UpdateClusterRequest.updateMask: object expected"); - message.updateMask = $root.google.protobuf.FieldMask.fromObject(object.updateMask); + var message = new $root.google.cloud.redis.cluster.v1beta1.Backup(); + if (object.name != null) + message.name = String(object.name); + if (object.createTime != null) { + if (typeof object.createTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Backup.createTime: object expected"); + message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime); } - if (object.cluster != null) { - if (typeof object.cluster !== "object") - throw TypeError(".google.cloud.redis.cluster.v1beta1.UpdateClusterRequest.cluster: object expected"); - message.cluster = $root.google.cloud.redis.cluster.v1beta1.Cluster.fromObject(object.cluster); + if (object.cluster != null) + message.cluster = String(object.cluster); + if (object.clusterUid != null) + message.clusterUid = String(object.clusterUid); + if (object.totalSizeBytes != null) + if ($util.Long) + (message.totalSizeBytes = $util.Long.fromValue(object.totalSizeBytes)).unsigned = false; + else if (typeof object.totalSizeBytes === "string") + message.totalSizeBytes = parseInt(object.totalSizeBytes, 10); + else if (typeof object.totalSizeBytes === "number") + message.totalSizeBytes = object.totalSizeBytes; + else if (typeof object.totalSizeBytes === "object") + message.totalSizeBytes = new $util.LongBits(object.totalSizeBytes.low >>> 0, object.totalSizeBytes.high >>> 0).toNumber(); + if (object.expireTime != null) { + if (typeof object.expireTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Backup.expireTime: object expected"); + message.expireTime = $root.google.protobuf.Timestamp.fromObject(object.expireTime); } - if (object.requestId != null) - message.requestId = String(object.requestId); + if (object.engineVersion != null) + message.engineVersion = String(object.engineVersion); + if (object.backupFiles) { + if (!Array.isArray(object.backupFiles)) + throw TypeError(".google.cloud.redis.cluster.v1beta1.Backup.backupFiles: array expected"); + message.backupFiles = []; + for (var i = 0; i < object.backupFiles.length; ++i) { + if (typeof object.backupFiles[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Backup.backupFiles: object expected"); + message.backupFiles[i] = $root.google.cloud.redis.cluster.v1beta1.BackupFile.fromObject(object.backupFiles[i]); + } + } + switch (object.nodeType) { + default: + if (typeof object.nodeType === "number") { + message.nodeType = object.nodeType; + break; + } + break; + case "NODE_TYPE_UNSPECIFIED": + case 0: + message.nodeType = 0; + break; + case "REDIS_SHARED_CORE_NANO": + case 1: + message.nodeType = 1; + break; + case "REDIS_HIGHMEM_MEDIUM": + case 2: + message.nodeType = 2; + break; + case "REDIS_HIGHMEM_XLARGE": + case 3: + message.nodeType = 3; + break; + case "REDIS_STANDARD_SMALL": + case 4: + message.nodeType = 4; + break; + } + if (object.replicaCount != null) + message.replicaCount = object.replicaCount | 0; + if (object.shardCount != null) + message.shardCount = object.shardCount | 0; + switch (object.backupType) { + default: + if (typeof object.backupType === "number") { + message.backupType = object.backupType; + break; + } + break; + case "BACKUP_TYPE_UNSPECIFIED": + case 0: + message.backupType = 0; + break; + case "ON_DEMAND": + case 1: + message.backupType = 1; + break; + case "AUTOMATED": + case 2: + message.backupType = 2; + break; + } + switch (object.state) { + default: + if (typeof object.state === "number") { + message.state = object.state; + break; + } + break; + case "STATE_UNSPECIFIED": + case 0: + message.state = 0; + break; + case "CREATING": + case 1: + message.state = 1; + break; + case "ACTIVE": + case 2: + message.state = 2; + break; + case "DELETING": + case 3: + message.state = 3; + break; + case "SUSPENDED": + case 4: + message.state = 4; + break; + } + if (object.encryptionInfo != null) { + if (typeof object.encryptionInfo !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.Backup.encryptionInfo: object expected"); + message.encryptionInfo = $root.google.cloud.redis.cluster.v1beta1.EncryptionInfo.fromObject(object.encryptionInfo); + } + if (object.uid != null) + message.uid = String(object.uid); return message; }; /** - * Creates a plain object from an UpdateClusterRequest message. Also converts values to other types if specified. + * Creates a plain object from a Backup message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.Backup * @static - * @param {google.cloud.redis.cluster.v1beta1.UpdateClusterRequest} message UpdateClusterRequest + * @param {google.cloud.redis.cluster.v1beta1.Backup} message Backup * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - UpdateClusterRequest.toObject = function toObject(message, options) { + Backup.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; + if (options.arrays || options.defaults) + object.backupFiles = []; if (options.defaults) { - object.updateMask = null; - object.cluster = null; - object.requestId = ""; + object.name = ""; + object.createTime = null; + object.cluster = ""; + object.clusterUid = ""; + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.totalSizeBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.totalSizeBytes = options.longs === String ? "0" : 0; + object.expireTime = null; + object.engineVersion = ""; + object.nodeType = options.enums === String ? "NODE_TYPE_UNSPECIFIED" : 0; + object.replicaCount = 0; + object.shardCount = 0; + object.backupType = options.enums === String ? "BACKUP_TYPE_UNSPECIFIED" : 0; + object.state = options.enums === String ? "STATE_UNSPECIFIED" : 0; + object.encryptionInfo = null; + object.uid = ""; } - if (message.updateMask != null && message.hasOwnProperty("updateMask")) - object.updateMask = $root.google.protobuf.FieldMask.toObject(message.updateMask, options); + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.createTime != null && message.hasOwnProperty("createTime")) + object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options); if (message.cluster != null && message.hasOwnProperty("cluster")) - object.cluster = $root.google.cloud.redis.cluster.v1beta1.Cluster.toObject(message.cluster, options); - if (message.requestId != null && message.hasOwnProperty("requestId")) - object.requestId = message.requestId; + object.cluster = message.cluster; + if (message.clusterUid != null && message.hasOwnProperty("clusterUid")) + object.clusterUid = message.clusterUid; + if (message.totalSizeBytes != null && message.hasOwnProperty("totalSizeBytes")) + if (typeof message.totalSizeBytes === "number") + object.totalSizeBytes = options.longs === String ? String(message.totalSizeBytes) : message.totalSizeBytes; + else + object.totalSizeBytes = options.longs === String ? $util.Long.prototype.toString.call(message.totalSizeBytes) : options.longs === Number ? new $util.LongBits(message.totalSizeBytes.low >>> 0, message.totalSizeBytes.high >>> 0).toNumber() : message.totalSizeBytes; + if (message.expireTime != null && message.hasOwnProperty("expireTime")) + object.expireTime = $root.google.protobuf.Timestamp.toObject(message.expireTime, options); + if (message.engineVersion != null && message.hasOwnProperty("engineVersion")) + object.engineVersion = message.engineVersion; + if (message.backupFiles && message.backupFiles.length) { + object.backupFiles = []; + for (var j = 0; j < message.backupFiles.length; ++j) + object.backupFiles[j] = $root.google.cloud.redis.cluster.v1beta1.BackupFile.toObject(message.backupFiles[j], options); + } + if (message.nodeType != null && message.hasOwnProperty("nodeType")) + object.nodeType = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.NodeType[message.nodeType] === undefined ? message.nodeType : $root.google.cloud.redis.cluster.v1beta1.NodeType[message.nodeType] : message.nodeType; + if (message.replicaCount != null && message.hasOwnProperty("replicaCount")) + object.replicaCount = message.replicaCount; + if (message.shardCount != null && message.hasOwnProperty("shardCount")) + object.shardCount = message.shardCount; + if (message.backupType != null && message.hasOwnProperty("backupType")) + object.backupType = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.Backup.BackupType[message.backupType] === undefined ? message.backupType : $root.google.cloud.redis.cluster.v1beta1.Backup.BackupType[message.backupType] : message.backupType; + if (message.state != null && message.hasOwnProperty("state")) + object.state = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.Backup.State[message.state] === undefined ? message.state : $root.google.cloud.redis.cluster.v1beta1.Backup.State[message.state] : message.state; + if (message.encryptionInfo != null && message.hasOwnProperty("encryptionInfo")) + object.encryptionInfo = $root.google.cloud.redis.cluster.v1beta1.EncryptionInfo.toObject(message.encryptionInfo, options); + if (message.uid != null && message.hasOwnProperty("uid")) + object.uid = message.uid; return object; }; /** - * Converts this UpdateClusterRequest to JSON. + * Converts this Backup to JSON. * @function toJSON - * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.Backup * @instance * @returns {Object.} JSON object */ - UpdateClusterRequest.prototype.toJSON = function toJSON() { + Backup.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for UpdateClusterRequest + * Gets the default type url for Backup * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1beta1.UpdateClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.Backup * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - UpdateClusterRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + Backup.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.UpdateClusterRequest"; + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.Backup"; }; - return UpdateClusterRequest; + /** + * BackupType enum. + * @name google.cloud.redis.cluster.v1beta1.Backup.BackupType + * @enum {number} + * @property {number} BACKUP_TYPE_UNSPECIFIED=0 BACKUP_TYPE_UNSPECIFIED value + * @property {number} ON_DEMAND=1 ON_DEMAND value + * @property {number} AUTOMATED=2 AUTOMATED value + */ + Backup.BackupType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "BACKUP_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "ON_DEMAND"] = 1; + values[valuesById[2] = "AUTOMATED"] = 2; + return values; + })(); + + /** + * State enum. + * @name google.cloud.redis.cluster.v1beta1.Backup.State + * @enum {number} + * @property {number} STATE_UNSPECIFIED=0 STATE_UNSPECIFIED value + * @property {number} CREATING=1 CREATING value + * @property {number} ACTIVE=2 ACTIVE value + * @property {number} DELETING=3 DELETING value + * @property {number} SUSPENDED=4 SUSPENDED value + */ + Backup.State = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "STATE_UNSPECIFIED"] = 0; + values[valuesById[1] = "CREATING"] = 1; + values[valuesById[2] = "ACTIVE"] = 2; + values[valuesById[3] = "DELETING"] = 3; + values[valuesById[4] = "SUSPENDED"] = 4; + return values; + })(); + + return Backup; })(); - v1beta1.GetClusterRequest = (function() { + v1beta1.BackupFile = (function() { /** - * Properties of a GetClusterRequest. + * Properties of a BackupFile. * @memberof google.cloud.redis.cluster.v1beta1 - * @interface IGetClusterRequest - * @property {string|null} [name] GetClusterRequest name + * @interface IBackupFile + * @property {string|null} [fileName] BackupFile fileName + * @property {number|Long|null} [sizeBytes] BackupFile sizeBytes + * @property {google.protobuf.ITimestamp|null} [createTime] BackupFile createTime */ /** - * Constructs a new GetClusterRequest. + * Constructs a new BackupFile. * @memberof google.cloud.redis.cluster.v1beta1 - * @classdesc Represents a GetClusterRequest. - * @implements IGetClusterRequest + * @classdesc Represents a BackupFile. + * @implements IBackupFile * @constructor - * @param {google.cloud.redis.cluster.v1beta1.IGetClusterRequest=} [properties] Properties to set + * @param {google.cloud.redis.cluster.v1beta1.IBackupFile=} [properties] Properties to set */ - function GetClusterRequest(properties) { + function BackupFile(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -7817,75 +23667,103 @@ } /** - * GetClusterRequest name. - * @member {string} name - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * BackupFile fileName. + * @member {string} fileName + * @memberof google.cloud.redis.cluster.v1beta1.BackupFile * @instance */ - GetClusterRequest.prototype.name = ""; + BackupFile.prototype.fileName = ""; /** - * Creates a new GetClusterRequest instance using the specified properties. + * BackupFile sizeBytes. + * @member {number|Long} sizeBytes + * @memberof google.cloud.redis.cluster.v1beta1.BackupFile + * @instance + */ + BackupFile.prototype.sizeBytes = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * BackupFile createTime. + * @member {google.protobuf.ITimestamp|null|undefined} createTime + * @memberof google.cloud.redis.cluster.v1beta1.BackupFile + * @instance + */ + BackupFile.prototype.createTime = null; + + /** + * Creates a new BackupFile instance using the specified properties. * @function create - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.BackupFile * @static - * @param {google.cloud.redis.cluster.v1beta1.IGetClusterRequest=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1beta1.GetClusterRequest} GetClusterRequest instance + * @param {google.cloud.redis.cluster.v1beta1.IBackupFile=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.BackupFile} BackupFile instance */ - GetClusterRequest.create = function create(properties) { - return new GetClusterRequest(properties); + BackupFile.create = function create(properties) { + return new BackupFile(properties); }; /** - * Encodes the specified GetClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetClusterRequest.verify|verify} messages. + * Encodes the specified BackupFile message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.BackupFile.verify|verify} messages. * @function encode - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.BackupFile * @static - * @param {google.cloud.redis.cluster.v1beta1.IGetClusterRequest} message GetClusterRequest message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.IBackupFile} message BackupFile message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetClusterRequest.encode = function encode(message, writer) { + BackupFile.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.fileName != null && Object.hasOwnProperty.call(message, "fileName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.fileName); + if (message.sizeBytes != null && Object.hasOwnProperty.call(message, "sizeBytes")) + writer.uint32(/* id 2, wireType 0 =*/16).int64(message.sizeBytes); + if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) + $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetClusterRequest.verify|verify} messages. + * Encodes the specified BackupFile message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.BackupFile.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.BackupFile * @static - * @param {google.cloud.redis.cluster.v1beta1.IGetClusterRequest} message GetClusterRequest message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.IBackupFile} message BackupFile message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetClusterRequest.encodeDelimited = function encodeDelimited(message, writer) { + BackupFile.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetClusterRequest message from the specified reader or buffer. + * Decodes a BackupFile message from the specified reader or buffer. * @function decode - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.BackupFile * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1beta1.GetClusterRequest} GetClusterRequest + * @returns {google.cloud.redis.cluster.v1beta1.BackupFile} BackupFile * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetClusterRequest.decode = function decode(reader, length) { + BackupFile.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.GetClusterRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.BackupFile(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.name = reader.string(); + message.fileName = reader.string(); + break; + } + case 2: { + message.sizeBytes = reader.int64(); + break; + } + case 3: { + message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); break; } default: @@ -7897,123 +23775,159 @@ }; /** - * Decodes a GetClusterRequest message from the specified reader or buffer, length delimited. + * Decodes a BackupFile message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.BackupFile * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1beta1.GetClusterRequest} GetClusterRequest + * @returns {google.cloud.redis.cluster.v1beta1.BackupFile} BackupFile * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetClusterRequest.decodeDelimited = function decodeDelimited(reader) { + BackupFile.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetClusterRequest message. + * Verifies a BackupFile message. * @function verify - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.BackupFile * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetClusterRequest.verify = function verify(message) { + BackupFile.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; + if (message.fileName != null && message.hasOwnProperty("fileName")) + if (!$util.isString(message.fileName)) + return "fileName: string expected"; + if (message.sizeBytes != null && message.hasOwnProperty("sizeBytes")) + if (!$util.isInteger(message.sizeBytes) && !(message.sizeBytes && $util.isInteger(message.sizeBytes.low) && $util.isInteger(message.sizeBytes.high))) + return "sizeBytes: integer|Long expected"; + if (message.createTime != null && message.hasOwnProperty("createTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.createTime); + if (error) + return "createTime." + error; + } return null; }; /** - * Creates a GetClusterRequest message from a plain object. Also converts values to their respective internal types. + * Creates a BackupFile message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.BackupFile * @static * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1beta1.GetClusterRequest} GetClusterRequest + * @returns {google.cloud.redis.cluster.v1beta1.BackupFile} BackupFile */ - GetClusterRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1beta1.GetClusterRequest) + BackupFile.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.BackupFile) return object; - var message = new $root.google.cloud.redis.cluster.v1beta1.GetClusterRequest(); - if (object.name != null) - message.name = String(object.name); + var message = new $root.google.cloud.redis.cluster.v1beta1.BackupFile(); + if (object.fileName != null) + message.fileName = String(object.fileName); + if (object.sizeBytes != null) + if ($util.Long) + (message.sizeBytes = $util.Long.fromValue(object.sizeBytes)).unsigned = false; + else if (typeof object.sizeBytes === "string") + message.sizeBytes = parseInt(object.sizeBytes, 10); + else if (typeof object.sizeBytes === "number") + message.sizeBytes = object.sizeBytes; + else if (typeof object.sizeBytes === "object") + message.sizeBytes = new $util.LongBits(object.sizeBytes.low >>> 0, object.sizeBytes.high >>> 0).toNumber(); + if (object.createTime != null) { + if (typeof object.createTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.BackupFile.createTime: object expected"); + message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime); + } return message; }; /** - * Creates a plain object from a GetClusterRequest message. Also converts values to other types if specified. + * Creates a plain object from a BackupFile message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.BackupFile * @static - * @param {google.cloud.redis.cluster.v1beta1.GetClusterRequest} message GetClusterRequest + * @param {google.cloud.redis.cluster.v1beta1.BackupFile} message BackupFile * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetClusterRequest.toObject = function toObject(message, options) { + BackupFile.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.name = ""; - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; + if (options.defaults) { + object.fileName = ""; + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.sizeBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.sizeBytes = options.longs === String ? "0" : 0; + object.createTime = null; + } + if (message.fileName != null && message.hasOwnProperty("fileName")) + object.fileName = message.fileName; + if (message.sizeBytes != null && message.hasOwnProperty("sizeBytes")) + if (typeof message.sizeBytes === "number") + object.sizeBytes = options.longs === String ? String(message.sizeBytes) : message.sizeBytes; + else + object.sizeBytes = options.longs === String ? $util.Long.prototype.toString.call(message.sizeBytes) : options.longs === Number ? new $util.LongBits(message.sizeBytes.low >>> 0, message.sizeBytes.high >>> 0).toNumber() : message.sizeBytes; + if (message.createTime != null && message.hasOwnProperty("createTime")) + object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options); return object; }; /** - * Converts this GetClusterRequest to JSON. + * Converts this BackupFile to JSON. * @function toJSON - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.BackupFile * @instance * @returns {Object.} JSON object */ - GetClusterRequest.prototype.toJSON = function toJSON() { + BackupFile.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for GetClusterRequest + * Gets the default type url for BackupFile * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.BackupFile * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - GetClusterRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + BackupFile.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.GetClusterRequest"; + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.BackupFile"; }; - return GetClusterRequest; + return BackupFile; })(); - v1beta1.DeleteClusterRequest = (function() { + v1beta1.PscServiceAttachment = (function() { /** - * Properties of a DeleteClusterRequest. + * Properties of a PscServiceAttachment. * @memberof google.cloud.redis.cluster.v1beta1 - * @interface IDeleteClusterRequest - * @property {string|null} [name] DeleteClusterRequest name - * @property {string|null} [requestId] DeleteClusterRequest requestId + * @interface IPscServiceAttachment + * @property {string|null} [serviceAttachment] PscServiceAttachment serviceAttachment + * @property {google.cloud.redis.cluster.v1beta1.ConnectionType|null} [connectionType] PscServiceAttachment connectionType */ /** - * Constructs a new DeleteClusterRequest. + * Constructs a new PscServiceAttachment. * @memberof google.cloud.redis.cluster.v1beta1 - * @classdesc Represents a DeleteClusterRequest. - * @implements IDeleteClusterRequest + * @classdesc Represents a PscServiceAttachment. + * @implements IPscServiceAttachment * @constructor - * @param {google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest=} [properties] Properties to set + * @param {google.cloud.redis.cluster.v1beta1.IPscServiceAttachment=} [properties] Properties to set */ - function DeleteClusterRequest(properties) { + function PscServiceAttachment(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -8021,89 +23935,89 @@ } /** - * DeleteClusterRequest name. - * @member {string} name - * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * PscServiceAttachment serviceAttachment. + * @member {string} serviceAttachment + * @memberof google.cloud.redis.cluster.v1beta1.PscServiceAttachment * @instance */ - DeleteClusterRequest.prototype.name = ""; + PscServiceAttachment.prototype.serviceAttachment = ""; /** - * DeleteClusterRequest requestId. - * @member {string} requestId - * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * PscServiceAttachment connectionType. + * @member {google.cloud.redis.cluster.v1beta1.ConnectionType} connectionType + * @memberof google.cloud.redis.cluster.v1beta1.PscServiceAttachment * @instance */ - DeleteClusterRequest.prototype.requestId = ""; + PscServiceAttachment.prototype.connectionType = 0; /** - * Creates a new DeleteClusterRequest instance using the specified properties. + * Creates a new PscServiceAttachment instance using the specified properties. * @function create - * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.PscServiceAttachment * @static - * @param {google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1beta1.DeleteClusterRequest} DeleteClusterRequest instance + * @param {google.cloud.redis.cluster.v1beta1.IPscServiceAttachment=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.PscServiceAttachment} PscServiceAttachment instance */ - DeleteClusterRequest.create = function create(properties) { - return new DeleteClusterRequest(properties); + PscServiceAttachment.create = function create(properties) { + return new PscServiceAttachment(properties); }; /** - * Encodes the specified DeleteClusterRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DeleteClusterRequest.verify|verify} messages. + * Encodes the specified PscServiceAttachment message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscServiceAttachment.verify|verify} messages. * @function encode - * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.PscServiceAttachment * @static - * @param {google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest} message DeleteClusterRequest message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.IPscServiceAttachment} message PscServiceAttachment message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DeleteClusterRequest.encode = function encode(message, writer) { + PscServiceAttachment.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.requestId != null && Object.hasOwnProperty.call(message, "requestId")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.requestId); + if (message.serviceAttachment != null && Object.hasOwnProperty.call(message, "serviceAttachment")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.serviceAttachment); + if (message.connectionType != null && Object.hasOwnProperty.call(message, "connectionType")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.connectionType); return writer; }; /** - * Encodes the specified DeleteClusterRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DeleteClusterRequest.verify|verify} messages. + * Encodes the specified PscServiceAttachment message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscServiceAttachment.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.PscServiceAttachment * @static - * @param {google.cloud.redis.cluster.v1beta1.IDeleteClusterRequest} message DeleteClusterRequest message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.IPscServiceAttachment} message PscServiceAttachment message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DeleteClusterRequest.encodeDelimited = function encodeDelimited(message, writer) { + PscServiceAttachment.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a DeleteClusterRequest message from the specified reader or buffer. + * Decodes a PscServiceAttachment message from the specified reader or buffer. * @function decode - * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.PscServiceAttachment * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1beta1.DeleteClusterRequest} DeleteClusterRequest + * @returns {google.cloud.redis.cluster.v1beta1.PscServiceAttachment} PscServiceAttachment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteClusterRequest.decode = function decode(reader, length) { + PscServiceAttachment.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.DeleteClusterRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.PscServiceAttachment(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.name = reader.string(); + message.serviceAttachment = reader.string(); break; } - case 2: { - message.requestId = reader.string(); + case 3: { + message.connectionType = reader.int32(); break; } default: @@ -8115,131 +24029,165 @@ }; /** - * Decodes a DeleteClusterRequest message from the specified reader or buffer, length delimited. + * Decodes a PscServiceAttachment message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.PscServiceAttachment * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1beta1.DeleteClusterRequest} DeleteClusterRequest + * @returns {google.cloud.redis.cluster.v1beta1.PscServiceAttachment} PscServiceAttachment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteClusterRequest.decodeDelimited = function decodeDelimited(reader) { + PscServiceAttachment.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a DeleteClusterRequest message. + * Verifies a PscServiceAttachment message. * @function verify - * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.PscServiceAttachment * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DeleteClusterRequest.verify = function verify(message) { + PscServiceAttachment.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.requestId != null && message.hasOwnProperty("requestId")) - if (!$util.isString(message.requestId)) - return "requestId: string expected"; + if (message.serviceAttachment != null && message.hasOwnProperty("serviceAttachment")) + if (!$util.isString(message.serviceAttachment)) + return "serviceAttachment: string expected"; + if (message.connectionType != null && message.hasOwnProperty("connectionType")) + switch (message.connectionType) { + default: + return "connectionType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } return null; }; /** - * Creates a DeleteClusterRequest message from a plain object. Also converts values to their respective internal types. + * Creates a PscServiceAttachment message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.PscServiceAttachment * @static * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1beta1.DeleteClusterRequest} DeleteClusterRequest + * @returns {google.cloud.redis.cluster.v1beta1.PscServiceAttachment} PscServiceAttachment */ - DeleteClusterRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1beta1.DeleteClusterRequest) + PscServiceAttachment.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.PscServiceAttachment) return object; - var message = new $root.google.cloud.redis.cluster.v1beta1.DeleteClusterRequest(); - if (object.name != null) - message.name = String(object.name); - if (object.requestId != null) - message.requestId = String(object.requestId); + var message = new $root.google.cloud.redis.cluster.v1beta1.PscServiceAttachment(); + if (object.serviceAttachment != null) + message.serviceAttachment = String(object.serviceAttachment); + switch (object.connectionType) { + default: + if (typeof object.connectionType === "number") { + message.connectionType = object.connectionType; + break; + } + break; + case "CONNECTION_TYPE_UNSPECIFIED": + case 0: + message.connectionType = 0; + break; + case "CONNECTION_TYPE_DISCOVERY": + case 1: + message.connectionType = 1; + break; + case "CONNECTION_TYPE_PRIMARY": + case 2: + message.connectionType = 2; + break; + case "CONNECTION_TYPE_READER": + case 3: + message.connectionType = 3; + break; + } return message; }; /** - * Creates a plain object from a DeleteClusterRequest message. Also converts values to other types if specified. + * Creates a plain object from a PscServiceAttachment message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.PscServiceAttachment * @static - * @param {google.cloud.redis.cluster.v1beta1.DeleteClusterRequest} message DeleteClusterRequest + * @param {google.cloud.redis.cluster.v1beta1.PscServiceAttachment} message PscServiceAttachment * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DeleteClusterRequest.toObject = function toObject(message, options) { + PscServiceAttachment.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.name = ""; - object.requestId = ""; + object.serviceAttachment = ""; + object.connectionType = options.enums === String ? "CONNECTION_TYPE_UNSPECIFIED" : 0; } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.requestId != null && message.hasOwnProperty("requestId")) - object.requestId = message.requestId; + if (message.serviceAttachment != null && message.hasOwnProperty("serviceAttachment")) + object.serviceAttachment = message.serviceAttachment; + if (message.connectionType != null && message.hasOwnProperty("connectionType")) + object.connectionType = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.ConnectionType[message.connectionType] === undefined ? message.connectionType : $root.google.cloud.redis.cluster.v1beta1.ConnectionType[message.connectionType] : message.connectionType; return object; }; /** - * Converts this DeleteClusterRequest to JSON. + * Converts this PscServiceAttachment to JSON. * @function toJSON - * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.PscServiceAttachment * @instance * @returns {Object.} JSON object */ - DeleteClusterRequest.prototype.toJSON = function toJSON() { + PscServiceAttachment.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for DeleteClusterRequest + * Gets the default type url for PscServiceAttachment * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1beta1.DeleteClusterRequest + * @memberof google.cloud.redis.cluster.v1beta1.PscServiceAttachment * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - DeleteClusterRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + PscServiceAttachment.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.DeleteClusterRequest"; + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.PscServiceAttachment"; }; - return DeleteClusterRequest; + return PscServiceAttachment; })(); - v1beta1.GetClusterCertificateAuthorityRequest = (function() { + v1beta1.CrossClusterReplicationConfig = (function() { /** - * Properties of a GetClusterCertificateAuthorityRequest. + * Properties of a CrossClusterReplicationConfig. * @memberof google.cloud.redis.cluster.v1beta1 - * @interface IGetClusterCertificateAuthorityRequest - * @property {string|null} [name] GetClusterCertificateAuthorityRequest name + * @interface ICrossClusterReplicationConfig + * @property {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.ClusterRole|null} [clusterRole] CrossClusterReplicationConfig clusterRole + * @property {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster|null} [primaryCluster] CrossClusterReplicationConfig primaryCluster + * @property {Array.|null} [secondaryClusters] CrossClusterReplicationConfig secondaryClusters + * @property {google.protobuf.ITimestamp|null} [updateTime] CrossClusterReplicationConfig updateTime + * @property {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IMembership|null} [membership] CrossClusterReplicationConfig membership */ /** - * Constructs a new GetClusterCertificateAuthorityRequest. + * Constructs a new CrossClusterReplicationConfig. * @memberof google.cloud.redis.cluster.v1beta1 - * @classdesc Represents a GetClusterCertificateAuthorityRequest. - * @implements IGetClusterCertificateAuthorityRequest + * @classdesc Represents a CrossClusterReplicationConfig. + * @implements ICrossClusterReplicationConfig * @constructor - * @param {google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest=} [properties] Properties to set + * @param {google.cloud.redis.cluster.v1beta1.ICrossClusterReplicationConfig=} [properties] Properties to set */ - function GetClusterCertificateAuthorityRequest(properties) { + function CrossClusterReplicationConfig(properties) { + this.secondaryClusters = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -8247,75 +24195,134 @@ } /** - * GetClusterCertificateAuthorityRequest name. - * @member {string} name - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * CrossClusterReplicationConfig clusterRole. + * @member {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.ClusterRole} clusterRole + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig * @instance */ - GetClusterCertificateAuthorityRequest.prototype.name = ""; + CrossClusterReplicationConfig.prototype.clusterRole = 0; /** - * Creates a new GetClusterCertificateAuthorityRequest instance using the specified properties. + * CrossClusterReplicationConfig primaryCluster. + * @member {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster|null|undefined} primaryCluster + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig + * @instance + */ + CrossClusterReplicationConfig.prototype.primaryCluster = null; + + /** + * CrossClusterReplicationConfig secondaryClusters. + * @member {Array.} secondaryClusters + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig + * @instance + */ + CrossClusterReplicationConfig.prototype.secondaryClusters = $util.emptyArray; + + /** + * CrossClusterReplicationConfig updateTime. + * @member {google.protobuf.ITimestamp|null|undefined} updateTime + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig + * @instance + */ + CrossClusterReplicationConfig.prototype.updateTime = null; + + /** + * CrossClusterReplicationConfig membership. + * @member {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IMembership|null|undefined} membership + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig + * @instance + */ + CrossClusterReplicationConfig.prototype.membership = null; + + /** + * Creates a new CrossClusterReplicationConfig instance using the specified properties. * @function create - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig * @static - * @param {google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest} GetClusterCertificateAuthorityRequest instance + * @param {google.cloud.redis.cluster.v1beta1.ICrossClusterReplicationConfig=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig} CrossClusterReplicationConfig instance */ - GetClusterCertificateAuthorityRequest.create = function create(properties) { - return new GetClusterCertificateAuthorityRequest(properties); + CrossClusterReplicationConfig.create = function create(properties) { + return new CrossClusterReplicationConfig(properties); }; /** - * Encodes the specified GetClusterCertificateAuthorityRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest.verify|verify} messages. + * Encodes the specified CrossClusterReplicationConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.verify|verify} messages. * @function encode - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig * @static - * @param {google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest} message GetClusterCertificateAuthorityRequest message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.ICrossClusterReplicationConfig} message CrossClusterReplicationConfig message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetClusterCertificateAuthorityRequest.encode = function encode(message, writer) { + CrossClusterReplicationConfig.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.clusterRole != null && Object.hasOwnProperty.call(message, "clusterRole")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.clusterRole); + if (message.primaryCluster != null && Object.hasOwnProperty.call(message, "primaryCluster")) + $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.encode(message.primaryCluster, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.secondaryClusters != null && message.secondaryClusters.length) + for (var i = 0; i < message.secondaryClusters.length; ++i) + $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.encode(message.secondaryClusters[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.updateTime != null && Object.hasOwnProperty.call(message, "updateTime")) + $root.google.protobuf.Timestamp.encode(message.updateTime, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.membership != null && Object.hasOwnProperty.call(message, "membership")) + $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership.encode(message.membership, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetClusterCertificateAuthorityRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest.verify|verify} messages. + * Encodes the specified CrossClusterReplicationConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig * @static - * @param {google.cloud.redis.cluster.v1beta1.IGetClusterCertificateAuthorityRequest} message GetClusterCertificateAuthorityRequest message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.ICrossClusterReplicationConfig} message CrossClusterReplicationConfig message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetClusterCertificateAuthorityRequest.encodeDelimited = function encodeDelimited(message, writer) { + CrossClusterReplicationConfig.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetClusterCertificateAuthorityRequest message from the specified reader or buffer. + * Decodes a CrossClusterReplicationConfig message from the specified reader or buffer. * @function decode - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest} GetClusterCertificateAuthorityRequest + * @returns {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig} CrossClusterReplicationConfig * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetClusterCertificateAuthorityRequest.decode = function decode(reader, length) { + CrossClusterReplicationConfig.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.name = reader.string(); + message.clusterRole = reader.int32(); + break; + } + case 2: { + message.primaryCluster = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.decode(reader, reader.uint32()); + break; + } + case 3: { + if (!(message.secondaryClusters && message.secondaryClusters.length)) + message.secondaryClusters = []; + message.secondaryClusters.push($root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.decode(reader, reader.uint32())); + break; + } + case 4: { + message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 5: { + message.membership = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership.decode(reader, reader.uint32()); break; } default: @@ -8327,559 +24334,1369 @@ }; /** - * Decodes a GetClusterCertificateAuthorityRequest message from the specified reader or buffer, length delimited. + * Decodes a CrossClusterReplicationConfig message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest} GetClusterCertificateAuthorityRequest + * @returns {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig} CrossClusterReplicationConfig * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetClusterCertificateAuthorityRequest.decodeDelimited = function decodeDelimited(reader) { + CrossClusterReplicationConfig.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetClusterCertificateAuthorityRequest message. + * Verifies a CrossClusterReplicationConfig message. * @function verify - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetClusterCertificateAuthorityRequest.verify = function verify(message) { + CrossClusterReplicationConfig.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; + if (message.clusterRole != null && message.hasOwnProperty("clusterRole")) + switch (message.clusterRole) { + default: + return "clusterRole: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + if (message.primaryCluster != null && message.hasOwnProperty("primaryCluster")) { + var error = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.verify(message.primaryCluster); + if (error) + return "primaryCluster." + error; + } + if (message.secondaryClusters != null && message.hasOwnProperty("secondaryClusters")) { + if (!Array.isArray(message.secondaryClusters)) + return "secondaryClusters: array expected"; + for (var i = 0; i < message.secondaryClusters.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.verify(message.secondaryClusters[i]); + if (error) + return "secondaryClusters." + error; + } + } + if (message.updateTime != null && message.hasOwnProperty("updateTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.updateTime); + if (error) + return "updateTime." + error; + } + if (message.membership != null && message.hasOwnProperty("membership")) { + var error = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership.verify(message.membership); + if (error) + return "membership." + error; + } return null; }; /** - * Creates a GetClusterCertificateAuthorityRequest message from a plain object. Also converts values to their respective internal types. + * Creates a CrossClusterReplicationConfig message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig * @static * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest} GetClusterCertificateAuthorityRequest + * @returns {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig} CrossClusterReplicationConfig */ - GetClusterCertificateAuthorityRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest) + CrossClusterReplicationConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig) return object; - var message = new $root.google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest(); - if (object.name != null) - message.name = String(object.name); + var message = new $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig(); + switch (object.clusterRole) { + default: + if (typeof object.clusterRole === "number") { + message.clusterRole = object.clusterRole; + break; + } + break; + case "CLUSTER_ROLE_UNSPECIFIED": + case 0: + message.clusterRole = 0; + break; + case "NONE": + case 1: + message.clusterRole = 1; + break; + case "PRIMARY": + case 2: + message.clusterRole = 2; + break; + case "SECONDARY": + case 3: + message.clusterRole = 3; + break; + } + if (object.primaryCluster != null) { + if (typeof object.primaryCluster !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.primaryCluster: object expected"); + message.primaryCluster = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.fromObject(object.primaryCluster); + } + if (object.secondaryClusters) { + if (!Array.isArray(object.secondaryClusters)) + throw TypeError(".google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.secondaryClusters: array expected"); + message.secondaryClusters = []; + for (var i = 0; i < object.secondaryClusters.length; ++i) { + if (typeof object.secondaryClusters[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.secondaryClusters: object expected"); + message.secondaryClusters[i] = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.fromObject(object.secondaryClusters[i]); + } + } + if (object.updateTime != null) { + if (typeof object.updateTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.updateTime: object expected"); + message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime); + } + if (object.membership != null) { + if (typeof object.membership !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.membership: object expected"); + message.membership = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership.fromObject(object.membership); + } return message; }; /** - * Creates a plain object from a GetClusterCertificateAuthorityRequest message. Also converts values to other types if specified. + * Creates a plain object from a CrossClusterReplicationConfig message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig * @static - * @param {google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest} message GetClusterCertificateAuthorityRequest + * @param {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig} message CrossClusterReplicationConfig * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetClusterCertificateAuthorityRequest.toObject = function toObject(message, options) { + CrossClusterReplicationConfig.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.name = ""; - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; + if (options.arrays || options.defaults) + object.secondaryClusters = []; + if (options.defaults) { + object.clusterRole = options.enums === String ? "CLUSTER_ROLE_UNSPECIFIED" : 0; + object.primaryCluster = null; + object.updateTime = null; + object.membership = null; + } + if (message.clusterRole != null && message.hasOwnProperty("clusterRole")) + object.clusterRole = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.ClusterRole[message.clusterRole] === undefined ? message.clusterRole : $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.ClusterRole[message.clusterRole] : message.clusterRole; + if (message.primaryCluster != null && message.hasOwnProperty("primaryCluster")) + object.primaryCluster = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.toObject(message.primaryCluster, options); + if (message.secondaryClusters && message.secondaryClusters.length) { + object.secondaryClusters = []; + for (var j = 0; j < message.secondaryClusters.length; ++j) + object.secondaryClusters[j] = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.toObject(message.secondaryClusters[j], options); + } + if (message.updateTime != null && message.hasOwnProperty("updateTime")) + object.updateTime = $root.google.protobuf.Timestamp.toObject(message.updateTime, options); + if (message.membership != null && message.hasOwnProperty("membership")) + object.membership = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership.toObject(message.membership, options); return object; }; /** - * Converts this GetClusterCertificateAuthorityRequest to JSON. + * Converts this CrossClusterReplicationConfig to JSON. * @function toJSON - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig * @instance * @returns {Object.} JSON object */ - GetClusterCertificateAuthorityRequest.prototype.toJSON = function toJSON() { + CrossClusterReplicationConfig.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for GetClusterCertificateAuthorityRequest + * Gets the default type url for CrossClusterReplicationConfig * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - GetClusterCertificateAuthorityRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + CrossClusterReplicationConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.GetClusterCertificateAuthorityRequest"; + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig"; }; - return GetClusterCertificateAuthorityRequest; - })(); + CrossClusterReplicationConfig.RemoteCluster = (function() { - v1beta1.Cluster = (function() { + /** + * Properties of a RemoteCluster. + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig + * @interface IRemoteCluster + * @property {string|null} [cluster] RemoteCluster cluster + * @property {string|null} [uid] RemoteCluster uid + */ - /** - * Properties of a Cluster. - * @memberof google.cloud.redis.cluster.v1beta1 - * @interface ICluster - * @property {string|null} [name] Cluster name - * @property {google.protobuf.ITimestamp|null} [createTime] Cluster createTime - * @property {google.cloud.redis.cluster.v1beta1.Cluster.State|null} [state] Cluster state - * @property {string|null} [uid] Cluster uid - * @property {number|null} [replicaCount] Cluster replicaCount - * @property {google.cloud.redis.cluster.v1beta1.AuthorizationMode|null} [authorizationMode] Cluster authorizationMode - * @property {google.cloud.redis.cluster.v1beta1.TransitEncryptionMode|null} [transitEncryptionMode] Cluster transitEncryptionMode - * @property {number|null} [sizeGb] Cluster sizeGb - * @property {number|null} [shardCount] Cluster shardCount - * @property {Array.|null} [pscConfigs] Cluster pscConfigs - * @property {Array.|null} [discoveryEndpoints] Cluster discoveryEndpoints - * @property {Array.|null} [pscConnections] Cluster pscConnections - * @property {google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo|null} [stateInfo] Cluster stateInfo - * @property {google.cloud.redis.cluster.v1beta1.NodeType|null} [nodeType] Cluster nodeType - * @property {google.cloud.redis.cluster.v1beta1.IClusterPersistenceConfig|null} [persistenceConfig] Cluster persistenceConfig - * @property {Object.|null} [redisConfigs] Cluster redisConfigs - * @property {number|null} [preciseSizeGb] Cluster preciseSizeGb - * @property {google.cloud.redis.cluster.v1beta1.IZoneDistributionConfig|null} [zoneDistributionConfig] Cluster zoneDistributionConfig - * @property {boolean|null} [deletionProtectionEnabled] Cluster deletionProtectionEnabled - */ + /** + * Constructs a new RemoteCluster. + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig + * @classdesc Represents a RemoteCluster. + * @implements IRemoteCluster + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster=} [properties] Properties to set + */ + function RemoteCluster(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Constructs a new Cluster. - * @memberof google.cloud.redis.cluster.v1beta1 - * @classdesc Represents a Cluster. - * @implements ICluster - * @constructor - * @param {google.cloud.redis.cluster.v1beta1.ICluster=} [properties] Properties to set - */ - function Cluster(properties) { - this.pscConfigs = []; - this.discoveryEndpoints = []; - this.pscConnections = []; - this.redisConfigs = {}; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * RemoteCluster cluster. + * @member {string} cluster + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster + * @instance + */ + RemoteCluster.prototype.cluster = ""; - /** - * Cluster name. - * @member {string} name - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @instance - */ - Cluster.prototype.name = ""; + /** + * RemoteCluster uid. + * @member {string} uid + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster + * @instance + */ + RemoteCluster.prototype.uid = ""; + + /** + * Creates a new RemoteCluster instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster + * @static + * @param {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster} RemoteCluster instance + */ + RemoteCluster.create = function create(properties) { + return new RemoteCluster(properties); + }; + + /** + * Encodes the specified RemoteCluster message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster + * @static + * @param {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster} message RemoteCluster message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RemoteCluster.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.cluster != null && Object.hasOwnProperty.call(message, "cluster")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.cluster); + if (message.uid != null && Object.hasOwnProperty.call(message, "uid")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.uid); + return writer; + }; + + /** + * Encodes the specified RemoteCluster message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster + * @static + * @param {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster} message RemoteCluster message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RemoteCluster.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RemoteCluster message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster} RemoteCluster + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RemoteCluster.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.cluster = reader.string(); + break; + } + case 2: { + message.uid = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RemoteCluster message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster} RemoteCluster + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RemoteCluster.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RemoteCluster message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RemoteCluster.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.cluster != null && message.hasOwnProperty("cluster")) + if (!$util.isString(message.cluster)) + return "cluster: string expected"; + if (message.uid != null && message.hasOwnProperty("uid")) + if (!$util.isString(message.uid)) + return "uid: string expected"; + return null; + }; + + /** + * Creates a RemoteCluster message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster} RemoteCluster + */ + RemoteCluster.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster(); + if (object.cluster != null) + message.cluster = String(object.cluster); + if (object.uid != null) + message.uid = String(object.uid); + return message; + }; + + /** + * Creates a plain object from a RemoteCluster message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster + * @static + * @param {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster} message RemoteCluster + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RemoteCluster.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.cluster = ""; + object.uid = ""; + } + if (message.cluster != null && message.hasOwnProperty("cluster")) + object.cluster = message.cluster; + if (message.uid != null && message.hasOwnProperty("uid")) + object.uid = message.uid; + return object; + }; + + /** + * Converts this RemoteCluster to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster + * @instance + * @returns {Object.} JSON object + */ + RemoteCluster.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for RemoteCluster + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + RemoteCluster.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster"; + }; + + return RemoteCluster; + })(); + + CrossClusterReplicationConfig.Membership = (function() { + + /** + * Properties of a Membership. + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig + * @interface IMembership + * @property {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster|null} [primaryCluster] Membership primaryCluster + * @property {Array.|null} [secondaryClusters] Membership secondaryClusters + */ + + /** + * Constructs a new Membership. + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig + * @classdesc Represents a Membership. + * @implements IMembership + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IMembership=} [properties] Properties to set + */ + function Membership(properties) { + this.secondaryClusters = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Membership primaryCluster. + * @member {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IRemoteCluster|null|undefined} primaryCluster + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership + * @instance + */ + Membership.prototype.primaryCluster = null; + + /** + * Membership secondaryClusters. + * @member {Array.} secondaryClusters + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership + * @instance + */ + Membership.prototype.secondaryClusters = $util.emptyArray; + + /** + * Creates a new Membership instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership + * @static + * @param {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IMembership=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership} Membership instance + */ + Membership.create = function create(properties) { + return new Membership(properties); + }; + + /** + * Encodes the specified Membership message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership + * @static + * @param {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IMembership} message Membership message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Membership.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.primaryCluster != null && Object.hasOwnProperty.call(message, "primaryCluster")) + $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.encode(message.primaryCluster, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.secondaryClusters != null && message.secondaryClusters.length) + for (var i = 0; i < message.secondaryClusters.length; ++i) + $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.encode(message.secondaryClusters[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified Membership message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership + * @static + * @param {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.IMembership} message Membership message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Membership.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Membership message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership} Membership + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Membership.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.primaryCluster = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.decode(reader, reader.uint32()); + break; + } + case 2: { + if (!(message.secondaryClusters && message.secondaryClusters.length)) + message.secondaryClusters = []; + message.secondaryClusters.push($root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Membership message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership} Membership + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Membership.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Membership message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Membership.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.primaryCluster != null && message.hasOwnProperty("primaryCluster")) { + var error = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.verify(message.primaryCluster); + if (error) + return "primaryCluster." + error; + } + if (message.secondaryClusters != null && message.hasOwnProperty("secondaryClusters")) { + if (!Array.isArray(message.secondaryClusters)) + return "secondaryClusters: array expected"; + for (var i = 0; i < message.secondaryClusters.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.verify(message.secondaryClusters[i]); + if (error) + return "secondaryClusters." + error; + } + } + return null; + }; + + /** + * Creates a Membership message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership} Membership + */ + Membership.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership(); + if (object.primaryCluster != null) { + if (typeof object.primaryCluster !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership.primaryCluster: object expected"); + message.primaryCluster = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.fromObject(object.primaryCluster); + } + if (object.secondaryClusters) { + if (!Array.isArray(object.secondaryClusters)) + throw TypeError(".google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership.secondaryClusters: array expected"); + message.secondaryClusters = []; + for (var i = 0; i < object.secondaryClusters.length; ++i) { + if (typeof object.secondaryClusters[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership.secondaryClusters: object expected"); + message.secondaryClusters[i] = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.fromObject(object.secondaryClusters[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a Membership message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership + * @static + * @param {google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership} message Membership + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Membership.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.secondaryClusters = []; + if (options.defaults) + object.primaryCluster = null; + if (message.primaryCluster != null && message.hasOwnProperty("primaryCluster")) + object.primaryCluster = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.toObject(message.primaryCluster, options); + if (message.secondaryClusters && message.secondaryClusters.length) { + object.secondaryClusters = []; + for (var j = 0; j < message.secondaryClusters.length; ++j) + object.secondaryClusters[j] = $root.google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.RemoteCluster.toObject(message.secondaryClusters[j], options); + } + return object; + }; + + /** + * Converts this Membership to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership + * @instance + * @returns {Object.} JSON object + */ + Membership.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Membership + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Membership.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.Membership"; + }; + + return Membership; + })(); /** - * Cluster createTime. - * @member {google.protobuf.ITimestamp|null|undefined} createTime - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @instance + * ClusterRole enum. + * @name google.cloud.redis.cluster.v1beta1.CrossClusterReplicationConfig.ClusterRole + * @enum {number} + * @property {number} CLUSTER_ROLE_UNSPECIFIED=0 CLUSTER_ROLE_UNSPECIFIED value + * @property {number} NONE=1 NONE value + * @property {number} PRIMARY=2 PRIMARY value + * @property {number} SECONDARY=3 SECONDARY value */ - Cluster.prototype.createTime = null; + CrossClusterReplicationConfig.ClusterRole = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "CLUSTER_ROLE_UNSPECIFIED"] = 0; + values[valuesById[1] = "NONE"] = 1; + values[valuesById[2] = "PRIMARY"] = 2; + values[valuesById[3] = "SECONDARY"] = 3; + return values; + })(); - /** - * Cluster state. - * @member {google.cloud.redis.cluster.v1beta1.Cluster.State} state - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @instance - */ - Cluster.prototype.state = 0; + return CrossClusterReplicationConfig; + })(); - /** - * Cluster uid. - * @member {string} uid - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @instance - */ - Cluster.prototype.uid = ""; + v1beta1.ClusterMaintenancePolicy = (function() { /** - * Cluster replicaCount. - * @member {number|null|undefined} replicaCount - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @instance + * Properties of a ClusterMaintenancePolicy. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IClusterMaintenancePolicy + * @property {google.protobuf.ITimestamp|null} [createTime] ClusterMaintenancePolicy createTime + * @property {google.protobuf.ITimestamp|null} [updateTime] ClusterMaintenancePolicy updateTime + * @property {Array.|null} [weeklyMaintenanceWindow] ClusterMaintenancePolicy weeklyMaintenanceWindow */ - Cluster.prototype.replicaCount = null; /** - * Cluster authorizationMode. - * @member {google.cloud.redis.cluster.v1beta1.AuthorizationMode} authorizationMode - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @instance + * Constructs a new ClusterMaintenancePolicy. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a ClusterMaintenancePolicy. + * @implements IClusterMaintenancePolicy + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IClusterMaintenancePolicy=} [properties] Properties to set */ - Cluster.prototype.authorizationMode = 0; + function ClusterMaintenancePolicy(properties) { + this.weeklyMaintenanceWindow = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } /** - * Cluster transitEncryptionMode. - * @member {google.cloud.redis.cluster.v1beta1.TransitEncryptionMode} transitEncryptionMode - * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * ClusterMaintenancePolicy createTime. + * @member {google.protobuf.ITimestamp|null|undefined} createTime + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy * @instance */ - Cluster.prototype.transitEncryptionMode = 0; + ClusterMaintenancePolicy.prototype.createTime = null; /** - * Cluster sizeGb. - * @member {number|null|undefined} sizeGb - * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * ClusterMaintenancePolicy updateTime. + * @member {google.protobuf.ITimestamp|null|undefined} updateTime + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy * @instance */ - Cluster.prototype.sizeGb = null; + ClusterMaintenancePolicy.prototype.updateTime = null; /** - * Cluster shardCount. - * @member {number|null|undefined} shardCount - * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * ClusterMaintenancePolicy weeklyMaintenanceWindow. + * @member {Array.} weeklyMaintenanceWindow + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy * @instance */ - Cluster.prototype.shardCount = null; + ClusterMaintenancePolicy.prototype.weeklyMaintenanceWindow = $util.emptyArray; /** - * Cluster pscConfigs. - * @member {Array.} pscConfigs - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @instance + * Creates a new ClusterMaintenancePolicy instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy + * @static + * @param {google.cloud.redis.cluster.v1beta1.IClusterMaintenancePolicy=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy} ClusterMaintenancePolicy instance */ - Cluster.prototype.pscConfigs = $util.emptyArray; + ClusterMaintenancePolicy.create = function create(properties) { + return new ClusterMaintenancePolicy(properties); + }; /** - * Cluster discoveryEndpoints. - * @member {Array.} discoveryEndpoints - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @instance + * Encodes the specified ClusterMaintenancePolicy message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy + * @static + * @param {google.cloud.redis.cluster.v1beta1.IClusterMaintenancePolicy} message ClusterMaintenancePolicy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ - Cluster.prototype.discoveryEndpoints = $util.emptyArray; + ClusterMaintenancePolicy.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) + $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.updateTime != null && Object.hasOwnProperty.call(message, "updateTime")) + $root.google.protobuf.Timestamp.encode(message.updateTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.weeklyMaintenanceWindow != null && message.weeklyMaintenanceWindow.length) + for (var i = 0; i < message.weeklyMaintenanceWindow.length; ++i) + $root.google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow.encode(message.weeklyMaintenanceWindow[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; /** - * Cluster pscConnections. - * @member {Array.} pscConnections - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @instance + * Encodes the specified ClusterMaintenancePolicy message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy + * @static + * @param {google.cloud.redis.cluster.v1beta1.IClusterMaintenancePolicy} message ClusterMaintenancePolicy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ - Cluster.prototype.pscConnections = $util.emptyArray; + ClusterMaintenancePolicy.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; /** - * Cluster stateInfo. - * @member {google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo|null|undefined} stateInfo - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @instance + * Decodes a ClusterMaintenancePolicy message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy} ClusterMaintenancePolicy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Cluster.prototype.stateInfo = null; + ClusterMaintenancePolicy.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 2: { + message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 3: { + if (!(message.weeklyMaintenanceWindow && message.weeklyMaintenanceWindow.length)) + message.weeklyMaintenanceWindow = []; + message.weeklyMaintenanceWindow.push($root.google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; /** - * Cluster nodeType. - * @member {google.cloud.redis.cluster.v1beta1.NodeType} nodeType - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @instance + * Decodes a ClusterMaintenancePolicy message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy} ClusterMaintenancePolicy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Cluster.prototype.nodeType = 0; + ClusterMaintenancePolicy.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; /** - * Cluster persistenceConfig. - * @member {google.cloud.redis.cluster.v1beta1.IClusterPersistenceConfig|null|undefined} persistenceConfig - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @instance + * Verifies a ClusterMaintenancePolicy message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Cluster.prototype.persistenceConfig = null; + ClusterMaintenancePolicy.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.createTime != null && message.hasOwnProperty("createTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.createTime); + if (error) + return "createTime." + error; + } + if (message.updateTime != null && message.hasOwnProperty("updateTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.updateTime); + if (error) + return "updateTime." + error; + } + if (message.weeklyMaintenanceWindow != null && message.hasOwnProperty("weeklyMaintenanceWindow")) { + if (!Array.isArray(message.weeklyMaintenanceWindow)) + return "weeklyMaintenanceWindow: array expected"; + for (var i = 0; i < message.weeklyMaintenanceWindow.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow.verify(message.weeklyMaintenanceWindow[i]); + if (error) + return "weeklyMaintenanceWindow." + error; + } + } + return null; + }; /** - * Cluster redisConfigs. - * @member {Object.} redisConfigs - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @instance + * Creates a ClusterMaintenancePolicy message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy} ClusterMaintenancePolicy */ - Cluster.prototype.redisConfigs = $util.emptyObject; + ClusterMaintenancePolicy.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy(); + if (object.createTime != null) { + if (typeof object.createTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy.createTime: object expected"); + message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime); + } + if (object.updateTime != null) { + if (typeof object.updateTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy.updateTime: object expected"); + message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime); + } + if (object.weeklyMaintenanceWindow) { + if (!Array.isArray(object.weeklyMaintenanceWindow)) + throw TypeError(".google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy.weeklyMaintenanceWindow: array expected"); + message.weeklyMaintenanceWindow = []; + for (var i = 0; i < object.weeklyMaintenanceWindow.length; ++i) { + if (typeof object.weeklyMaintenanceWindow[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy.weeklyMaintenanceWindow: object expected"); + message.weeklyMaintenanceWindow[i] = $root.google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow.fromObject(object.weeklyMaintenanceWindow[i]); + } + } + return message; + }; /** - * Cluster preciseSizeGb. - * @member {number|null|undefined} preciseSizeGb - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @instance + * Creates a plain object from a ClusterMaintenancePolicy message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy + * @static + * @param {google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy} message ClusterMaintenancePolicy + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object */ - Cluster.prototype.preciseSizeGb = null; + ClusterMaintenancePolicy.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.weeklyMaintenanceWindow = []; + if (options.defaults) { + object.createTime = null; + object.updateTime = null; + } + if (message.createTime != null && message.hasOwnProperty("createTime")) + object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options); + if (message.updateTime != null && message.hasOwnProperty("updateTime")) + object.updateTime = $root.google.protobuf.Timestamp.toObject(message.updateTime, options); + if (message.weeklyMaintenanceWindow && message.weeklyMaintenanceWindow.length) { + object.weeklyMaintenanceWindow = []; + for (var j = 0; j < message.weeklyMaintenanceWindow.length; ++j) + object.weeklyMaintenanceWindow[j] = $root.google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow.toObject(message.weeklyMaintenanceWindow[j], options); + } + return object; + }; /** - * Cluster zoneDistributionConfig. - * @member {google.cloud.redis.cluster.v1beta1.IZoneDistributionConfig|null|undefined} zoneDistributionConfig - * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * Converts this ClusterMaintenancePolicy to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy * @instance + * @returns {Object.} JSON object */ - Cluster.prototype.zoneDistributionConfig = null; + ClusterMaintenancePolicy.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; /** - * Cluster deletionProtectionEnabled. - * @member {boolean|null|undefined} deletionProtectionEnabled - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @instance + * Gets the default type url for ClusterMaintenancePolicy + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url */ - Cluster.prototype.deletionProtectionEnabled = null; + ClusterMaintenancePolicy.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.ClusterMaintenancePolicy"; + }; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + return ClusterMaintenancePolicy; + })(); - /** - * Cluster _replicaCount. - * @member {"replicaCount"|undefined} _replicaCount - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @instance - */ - Object.defineProperty(Cluster.prototype, "_replicaCount", { - get: $util.oneOfGetter($oneOfFields = ["replicaCount"]), - set: $util.oneOfSetter($oneOfFields) - }); + v1beta1.ClusterWeeklyMaintenanceWindow = (function() { /** - * Cluster _sizeGb. - * @member {"sizeGb"|undefined} _sizeGb - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @instance + * Properties of a ClusterWeeklyMaintenanceWindow. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IClusterWeeklyMaintenanceWindow + * @property {google.type.DayOfWeek|null} [day] ClusterWeeklyMaintenanceWindow day + * @property {google.type.ITimeOfDay|null} [startTime] ClusterWeeklyMaintenanceWindow startTime */ - Object.defineProperty(Cluster.prototype, "_sizeGb", { - get: $util.oneOfGetter($oneOfFields = ["sizeGb"]), - set: $util.oneOfSetter($oneOfFields) - }); /** - * Cluster _shardCount. - * @member {"shardCount"|undefined} _shardCount - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @instance + * Constructs a new ClusterWeeklyMaintenanceWindow. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a ClusterWeeklyMaintenanceWindow. + * @implements IClusterWeeklyMaintenanceWindow + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IClusterWeeklyMaintenanceWindow=} [properties] Properties to set */ - Object.defineProperty(Cluster.prototype, "_shardCount", { - get: $util.oneOfGetter($oneOfFields = ["shardCount"]), - set: $util.oneOfSetter($oneOfFields) - }); + function ClusterWeeklyMaintenanceWindow(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } /** - * Cluster _preciseSizeGb. - * @member {"preciseSizeGb"|undefined} _preciseSizeGb - * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * ClusterWeeklyMaintenanceWindow day. + * @member {google.type.DayOfWeek} day + * @memberof google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow * @instance */ - Object.defineProperty(Cluster.prototype, "_preciseSizeGb", { - get: $util.oneOfGetter($oneOfFields = ["preciseSizeGb"]), - set: $util.oneOfSetter($oneOfFields) - }); + ClusterWeeklyMaintenanceWindow.prototype.day = 0; /** - * Cluster _deletionProtectionEnabled. - * @member {"deletionProtectionEnabled"|undefined} _deletionProtectionEnabled - * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * ClusterWeeklyMaintenanceWindow startTime. + * @member {google.type.ITimeOfDay|null|undefined} startTime + * @memberof google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow * @instance */ - Object.defineProperty(Cluster.prototype, "_deletionProtectionEnabled", { - get: $util.oneOfGetter($oneOfFields = ["deletionProtectionEnabled"]), - set: $util.oneOfSetter($oneOfFields) - }); + ClusterWeeklyMaintenanceWindow.prototype.startTime = null; /** - * Creates a new Cluster instance using the specified properties. + * Creates a new ClusterWeeklyMaintenanceWindow instance using the specified properties. * @function create - * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @memberof google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow * @static - * @param {google.cloud.redis.cluster.v1beta1.ICluster=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1beta1.Cluster} Cluster instance + * @param {google.cloud.redis.cluster.v1beta1.IClusterWeeklyMaintenanceWindow=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow} ClusterWeeklyMaintenanceWindow instance */ - Cluster.create = function create(properties) { - return new Cluster(properties); + ClusterWeeklyMaintenanceWindow.create = function create(properties) { + return new ClusterWeeklyMaintenanceWindow(properties); }; /** - * Encodes the specified Cluster message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.verify|verify} messages. + * Encodes the specified ClusterWeeklyMaintenanceWindow message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow.verify|verify} messages. * @function encode - * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @memberof google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow * @static - * @param {google.cloud.redis.cluster.v1beta1.ICluster} message Cluster message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.IClusterWeeklyMaintenanceWindow} message ClusterWeeklyMaintenanceWindow message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Cluster.encode = function encode(message, writer) { + ClusterWeeklyMaintenanceWindow.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) - $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.state != null && Object.hasOwnProperty.call(message, "state")) - writer.uint32(/* id 4, wireType 0 =*/32).int32(message.state); - if (message.uid != null && Object.hasOwnProperty.call(message, "uid")) - writer.uint32(/* id 5, wireType 2 =*/42).string(message.uid); - if (message.replicaCount != null && Object.hasOwnProperty.call(message, "replicaCount")) - writer.uint32(/* id 8, wireType 0 =*/64).int32(message.replicaCount); - if (message.authorizationMode != null && Object.hasOwnProperty.call(message, "authorizationMode")) - writer.uint32(/* id 11, wireType 0 =*/88).int32(message.authorizationMode); - if (message.transitEncryptionMode != null && Object.hasOwnProperty.call(message, "transitEncryptionMode")) - writer.uint32(/* id 12, wireType 0 =*/96).int32(message.transitEncryptionMode); - if (message.sizeGb != null && Object.hasOwnProperty.call(message, "sizeGb")) - writer.uint32(/* id 13, wireType 0 =*/104).int32(message.sizeGb); - if (message.shardCount != null && Object.hasOwnProperty.call(message, "shardCount")) - writer.uint32(/* id 14, wireType 0 =*/112).int32(message.shardCount); - if (message.pscConfigs != null && message.pscConfigs.length) - for (var i = 0; i < message.pscConfigs.length; ++i) - $root.google.cloud.redis.cluster.v1beta1.PscConfig.encode(message.pscConfigs[i], writer.uint32(/* id 15, wireType 2 =*/122).fork()).ldelim(); - if (message.discoveryEndpoints != null && message.discoveryEndpoints.length) - for (var i = 0; i < message.discoveryEndpoints.length; ++i) - $root.google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.encode(message.discoveryEndpoints[i], writer.uint32(/* id 16, wireType 2 =*/130).fork()).ldelim(); - if (message.pscConnections != null && message.pscConnections.length) - for (var i = 0; i < message.pscConnections.length; ++i) - $root.google.cloud.redis.cluster.v1beta1.PscConnection.encode(message.pscConnections[i], writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); - if (message.stateInfo != null && Object.hasOwnProperty.call(message, "stateInfo")) - $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.encode(message.stateInfo, writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim(); - if (message.nodeType != null && Object.hasOwnProperty.call(message, "nodeType")) - writer.uint32(/* id 19, wireType 0 =*/152).int32(message.nodeType); - if (message.persistenceConfig != null && Object.hasOwnProperty.call(message, "persistenceConfig")) - $root.google.cloud.redis.cluster.v1beta1.ClusterPersistenceConfig.encode(message.persistenceConfig, writer.uint32(/* id 20, wireType 2 =*/162).fork()).ldelim(); - if (message.redisConfigs != null && Object.hasOwnProperty.call(message, "redisConfigs")) - for (var keys = Object.keys(message.redisConfigs), i = 0; i < keys.length; ++i) - writer.uint32(/* id 21, wireType 2 =*/170).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.redisConfigs[keys[i]]).ldelim(); - if (message.preciseSizeGb != null && Object.hasOwnProperty.call(message, "preciseSizeGb")) - writer.uint32(/* id 22, wireType 1 =*/177).double(message.preciseSizeGb); - if (message.zoneDistributionConfig != null && Object.hasOwnProperty.call(message, "zoneDistributionConfig")) - $root.google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.encode(message.zoneDistributionConfig, writer.uint32(/* id 23, wireType 2 =*/186).fork()).ldelim(); - if (message.deletionProtectionEnabled != null && Object.hasOwnProperty.call(message, "deletionProtectionEnabled")) - writer.uint32(/* id 25, wireType 0 =*/200).bool(message.deletionProtectionEnabled); + if (message.day != null && Object.hasOwnProperty.call(message, "day")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.day); + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) + $root.google.type.TimeOfDay.encode(message.startTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified Cluster message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.verify|verify} messages. + * Encodes the specified ClusterWeeklyMaintenanceWindow message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @memberof google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow * @static - * @param {google.cloud.redis.cluster.v1beta1.ICluster} message Cluster message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.IClusterWeeklyMaintenanceWindow} message ClusterWeeklyMaintenanceWindow message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Cluster.encodeDelimited = function encodeDelimited(message, writer) { + ClusterWeeklyMaintenanceWindow.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Cluster message from the specified reader or buffer. + * Decodes a ClusterWeeklyMaintenanceWindow message from the specified reader or buffer. * @function decode - * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @memberof google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1beta1.Cluster} Cluster + * @returns {google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow} ClusterWeeklyMaintenanceWindow * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Cluster.decode = function decode(reader, length) { + ClusterWeeklyMaintenanceWindow.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.Cluster(), key, value; + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.name = reader.string(); - break; - } - case 3: { - message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); - break; - } - case 4: { - message.state = reader.int32(); - break; - } - case 5: { - message.uid = reader.string(); - break; - } - case 8: { - message.replicaCount = reader.int32(); - break; - } - case 11: { - message.authorizationMode = reader.int32(); - break; - } - case 12: { - message.transitEncryptionMode = reader.int32(); - break; - } - case 13: { - message.sizeGb = reader.int32(); - break; - } - case 14: { - message.shardCount = reader.int32(); - break; - } - case 15: { - if (!(message.pscConfigs && message.pscConfigs.length)) - message.pscConfigs = []; - message.pscConfigs.push($root.google.cloud.redis.cluster.v1beta1.PscConfig.decode(reader, reader.uint32())); - break; - } - case 16: { - if (!(message.discoveryEndpoints && message.discoveryEndpoints.length)) - message.discoveryEndpoints = []; - message.discoveryEndpoints.push($root.google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.decode(reader, reader.uint32())); - break; - } - case 17: { - if (!(message.pscConnections && message.pscConnections.length)) - message.pscConnections = []; - message.pscConnections.push($root.google.cloud.redis.cluster.v1beta1.PscConnection.decode(reader, reader.uint32())); - break; - } - case 18: { - message.stateInfo = $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.decode(reader, reader.uint32()); - break; - } - case 19: { - message.nodeType = reader.int32(); - break; - } - case 20: { - message.persistenceConfig = $root.google.cloud.redis.cluster.v1beta1.ClusterPersistenceConfig.decode(reader, reader.uint32()); - break; - } - case 21: { - if (message.redisConfigs === $util.emptyObject) - message.redisConfigs = {}; - var end2 = reader.uint32() + reader.pos; - key = ""; - value = ""; - while (reader.pos < end2) { - var tag2 = reader.uint32(); - switch (tag2 >>> 3) { - case 1: - key = reader.string(); - break; - case 2: - value = reader.string(); - break; - default: - reader.skipType(tag2 & 7); - break; - } - } - message.redisConfigs[key] = value; + message.day = reader.int32(); break; } - case 22: { - message.preciseSizeGb = reader.double(); + case 2: { + message.startTime = $root.google.type.TimeOfDay.decode(reader, reader.uint32()); break; } - case 23: { - message.zoneDistributionConfig = $root.google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.decode(reader, reader.uint32()); + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ClusterWeeklyMaintenanceWindow message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow} ClusterWeeklyMaintenanceWindow + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ClusterWeeklyMaintenanceWindow.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ClusterWeeklyMaintenanceWindow message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ClusterWeeklyMaintenanceWindow.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.day != null && message.hasOwnProperty("day")) + switch (message.day) { + default: + return "day: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + break; + } + if (message.startTime != null && message.hasOwnProperty("startTime")) { + var error = $root.google.type.TimeOfDay.verify(message.startTime); + if (error) + return "startTime." + error; + } + return null; + }; + + /** + * Creates a ClusterWeeklyMaintenanceWindow message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow} ClusterWeeklyMaintenanceWindow + */ + ClusterWeeklyMaintenanceWindow.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow(); + switch (object.day) { + default: + if (typeof object.day === "number") { + message.day = object.day; + break; + } + break; + case "DAY_OF_WEEK_UNSPECIFIED": + case 0: + message.day = 0; + break; + case "MONDAY": + case 1: + message.day = 1; + break; + case "TUESDAY": + case 2: + message.day = 2; + break; + case "WEDNESDAY": + case 3: + message.day = 3; + break; + case "THURSDAY": + case 4: + message.day = 4; + break; + case "FRIDAY": + case 5: + message.day = 5; + break; + case "SATURDAY": + case 6: + message.day = 6; + break; + case "SUNDAY": + case 7: + message.day = 7; + break; + } + if (object.startTime != null) { + if (typeof object.startTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow.startTime: object expected"); + message.startTime = $root.google.type.TimeOfDay.fromObject(object.startTime); + } + return message; + }; + + /** + * Creates a plain object from a ClusterWeeklyMaintenanceWindow message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow + * @static + * @param {google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow} message ClusterWeeklyMaintenanceWindow + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ClusterWeeklyMaintenanceWindow.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.day = options.enums === String ? "DAY_OF_WEEK_UNSPECIFIED" : 0; + object.startTime = null; + } + if (message.day != null && message.hasOwnProperty("day")) + object.day = options.enums === String ? $root.google.type.DayOfWeek[message.day] === undefined ? message.day : $root.google.type.DayOfWeek[message.day] : message.day; + if (message.startTime != null && message.hasOwnProperty("startTime")) + object.startTime = $root.google.type.TimeOfDay.toObject(message.startTime, options); + return object; + }; + + /** + * Converts this ClusterWeeklyMaintenanceWindow to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow + * @instance + * @returns {Object.} JSON object + */ + ClusterWeeklyMaintenanceWindow.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ClusterWeeklyMaintenanceWindow + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ClusterWeeklyMaintenanceWindow.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.ClusterWeeklyMaintenanceWindow"; + }; + + return ClusterWeeklyMaintenanceWindow; + })(); + + v1beta1.ClusterMaintenanceSchedule = (function() { + + /** + * Properties of a ClusterMaintenanceSchedule. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IClusterMaintenanceSchedule + * @property {google.protobuf.ITimestamp|null} [startTime] ClusterMaintenanceSchedule startTime + * @property {google.protobuf.ITimestamp|null} [endTime] ClusterMaintenanceSchedule endTime + */ + + /** + * Constructs a new ClusterMaintenanceSchedule. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a ClusterMaintenanceSchedule. + * @implements IClusterMaintenanceSchedule + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IClusterMaintenanceSchedule=} [properties] Properties to set + */ + function ClusterMaintenanceSchedule(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ClusterMaintenanceSchedule startTime. + * @member {google.protobuf.ITimestamp|null|undefined} startTime + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule + * @instance + */ + ClusterMaintenanceSchedule.prototype.startTime = null; + + /** + * ClusterMaintenanceSchedule endTime. + * @member {google.protobuf.ITimestamp|null|undefined} endTime + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule + * @instance + */ + ClusterMaintenanceSchedule.prototype.endTime = null; + + /** + * Creates a new ClusterMaintenanceSchedule instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule + * @static + * @param {google.cloud.redis.cluster.v1beta1.IClusterMaintenanceSchedule=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule} ClusterMaintenanceSchedule instance + */ + ClusterMaintenanceSchedule.create = function create(properties) { + return new ClusterMaintenanceSchedule(properties); + }; + + /** + * Encodes the specified ClusterMaintenanceSchedule message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule + * @static + * @param {google.cloud.redis.cluster.v1beta1.IClusterMaintenanceSchedule} message ClusterMaintenanceSchedule message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ClusterMaintenanceSchedule.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) + $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) + $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ClusterMaintenanceSchedule message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule + * @static + * @param {google.cloud.redis.cluster.v1beta1.IClusterMaintenanceSchedule} message ClusterMaintenanceSchedule message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ClusterMaintenanceSchedule.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ClusterMaintenanceSchedule message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule} ClusterMaintenanceSchedule + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ClusterMaintenanceSchedule.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); break; } - case 25: { - message.deletionProtectionEnabled = reader.bool(); + case 2: { + message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); break; } default: @@ -8891,998 +25708,1018 @@ }; /** - * Decodes a Cluster message from the specified reader or buffer, length delimited. + * Decodes a ClusterMaintenanceSchedule message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1beta1.Cluster} Cluster + * @returns {google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule} ClusterMaintenanceSchedule * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Cluster.decodeDelimited = function decodeDelimited(reader) { + ClusterMaintenanceSchedule.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Cluster message. + * Verifies a ClusterMaintenanceSchedule message. * @function verify - * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Cluster.verify = function verify(message) { + ClusterMaintenanceSchedule.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.createTime != null && message.hasOwnProperty("createTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.createTime); - if (error) - return "createTime." + error; - } - if (message.state != null && message.hasOwnProperty("state")) - switch (message.state) { - default: - return "state: enum value expected"; - case 0: - case 1: - case 2: - case 3: - case 4: - break; - } - if (message.uid != null && message.hasOwnProperty("uid")) - if (!$util.isString(message.uid)) - return "uid: string expected"; - if (message.replicaCount != null && message.hasOwnProperty("replicaCount")) { - properties._replicaCount = 1; - if (!$util.isInteger(message.replicaCount)) - return "replicaCount: integer expected"; - } - if (message.authorizationMode != null && message.hasOwnProperty("authorizationMode")) - switch (message.authorizationMode) { - default: - return "authorizationMode: enum value expected"; - case 0: - case 1: - case 2: - break; - } - if (message.transitEncryptionMode != null && message.hasOwnProperty("transitEncryptionMode")) - switch (message.transitEncryptionMode) { - default: - return "transitEncryptionMode: enum value expected"; - case 0: - case 1: - case 2: - break; - } - if (message.sizeGb != null && message.hasOwnProperty("sizeGb")) { - properties._sizeGb = 1; - if (!$util.isInteger(message.sizeGb)) - return "sizeGb: integer expected"; - } - if (message.shardCount != null && message.hasOwnProperty("shardCount")) { - properties._shardCount = 1; - if (!$util.isInteger(message.shardCount)) - return "shardCount: integer expected"; - } - if (message.pscConfigs != null && message.hasOwnProperty("pscConfigs")) { - if (!Array.isArray(message.pscConfigs)) - return "pscConfigs: array expected"; - for (var i = 0; i < message.pscConfigs.length; ++i) { - var error = $root.google.cloud.redis.cluster.v1beta1.PscConfig.verify(message.pscConfigs[i]); - if (error) - return "pscConfigs." + error; - } - } - if (message.discoveryEndpoints != null && message.hasOwnProperty("discoveryEndpoints")) { - if (!Array.isArray(message.discoveryEndpoints)) - return "discoveryEndpoints: array expected"; - for (var i = 0; i < message.discoveryEndpoints.length; ++i) { - var error = $root.google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.verify(message.discoveryEndpoints[i]); - if (error) - return "discoveryEndpoints." + error; - } - } - if (message.pscConnections != null && message.hasOwnProperty("pscConnections")) { - if (!Array.isArray(message.pscConnections)) - return "pscConnections: array expected"; - for (var i = 0; i < message.pscConnections.length; ++i) { - var error = $root.google.cloud.redis.cluster.v1beta1.PscConnection.verify(message.pscConnections[i]); - if (error) - return "pscConnections." + error; - } - } - if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) { - var error = $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.verify(message.stateInfo); - if (error) - return "stateInfo." + error; - } - if (message.nodeType != null && message.hasOwnProperty("nodeType")) - switch (message.nodeType) { - default: - return "nodeType: enum value expected"; - case 0: - case 1: - case 2: - case 3: - case 4: - break; - } - if (message.persistenceConfig != null && message.hasOwnProperty("persistenceConfig")) { - var error = $root.google.cloud.redis.cluster.v1beta1.ClusterPersistenceConfig.verify(message.persistenceConfig); + if (message.startTime != null && message.hasOwnProperty("startTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.startTime); if (error) - return "persistenceConfig." + error; + return "startTime." + error; } - if (message.redisConfigs != null && message.hasOwnProperty("redisConfigs")) { - if (!$util.isObject(message.redisConfigs)) - return "redisConfigs: object expected"; - var key = Object.keys(message.redisConfigs); - for (var i = 0; i < key.length; ++i) - if (!$util.isString(message.redisConfigs[key[i]])) - return "redisConfigs: string{k:string} expected"; - } - if (message.preciseSizeGb != null && message.hasOwnProperty("preciseSizeGb")) { - properties._preciseSizeGb = 1; - if (typeof message.preciseSizeGb !== "number") - return "preciseSizeGb: number expected"; - } - if (message.zoneDistributionConfig != null && message.hasOwnProperty("zoneDistributionConfig")) { - var error = $root.google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.verify(message.zoneDistributionConfig); + if (message.endTime != null && message.hasOwnProperty("endTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.endTime); if (error) - return "zoneDistributionConfig." + error; - } - if (message.deletionProtectionEnabled != null && message.hasOwnProperty("deletionProtectionEnabled")) { - properties._deletionProtectionEnabled = 1; - if (typeof message.deletionProtectionEnabled !== "boolean") - return "deletionProtectionEnabled: boolean expected"; + return "endTime." + error; } return null; }; /** - * Creates a Cluster message from a plain object. Also converts values to their respective internal types. + * Creates a ClusterMaintenanceSchedule message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule * @static * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1beta1.Cluster} Cluster + * @returns {google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule} ClusterMaintenanceSchedule */ - Cluster.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1beta1.Cluster) + ClusterMaintenanceSchedule.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule) return object; - var message = new $root.google.cloud.redis.cluster.v1beta1.Cluster(); - if (object.name != null) - message.name = String(object.name); - if (object.createTime != null) { - if (typeof object.createTime !== "object") - throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.createTime: object expected"); - message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime); - } - switch (object.state) { - default: - if (typeof object.state === "number") { - message.state = object.state; - break; - } - break; - case "STATE_UNSPECIFIED": - case 0: - message.state = 0; - break; - case "CREATING": - case 1: - message.state = 1; - break; - case "ACTIVE": - case 2: - message.state = 2; - break; - case "UPDATING": - case 3: - message.state = 3; - break; - case "DELETING": - case 4: - message.state = 4; - break; + var message = new $root.google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule(); + if (object.startTime != null) { + if (typeof object.startTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule.startTime: object expected"); + message.startTime = $root.google.protobuf.Timestamp.fromObject(object.startTime); } - if (object.uid != null) - message.uid = String(object.uid); - if (object.replicaCount != null) - message.replicaCount = object.replicaCount | 0; - switch (object.authorizationMode) { - default: - if (typeof object.authorizationMode === "number") { - message.authorizationMode = object.authorizationMode; - break; - } - break; - case "AUTH_MODE_UNSPECIFIED": - case 0: - message.authorizationMode = 0; - break; - case "AUTH_MODE_IAM_AUTH": - case 1: - message.authorizationMode = 1; - break; - case "AUTH_MODE_DISABLED": - case 2: - message.authorizationMode = 2; - break; - } - switch (object.transitEncryptionMode) { - default: - if (typeof object.transitEncryptionMode === "number") { - message.transitEncryptionMode = object.transitEncryptionMode; - break; - } - break; - case "TRANSIT_ENCRYPTION_MODE_UNSPECIFIED": - case 0: - message.transitEncryptionMode = 0; - break; - case "TRANSIT_ENCRYPTION_MODE_DISABLED": - case 1: - message.transitEncryptionMode = 1; - break; - case "TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION": - case 2: - message.transitEncryptionMode = 2; - break; - } - if (object.sizeGb != null) - message.sizeGb = object.sizeGb | 0; - if (object.shardCount != null) - message.shardCount = object.shardCount | 0; - if (object.pscConfigs) { - if (!Array.isArray(object.pscConfigs)) - throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.pscConfigs: array expected"); - message.pscConfigs = []; - for (var i = 0; i < object.pscConfigs.length; ++i) { - if (typeof object.pscConfigs[i] !== "object") - throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.pscConfigs: object expected"); - message.pscConfigs[i] = $root.google.cloud.redis.cluster.v1beta1.PscConfig.fromObject(object.pscConfigs[i]); - } - } - if (object.discoveryEndpoints) { - if (!Array.isArray(object.discoveryEndpoints)) - throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.discoveryEndpoints: array expected"); - message.discoveryEndpoints = []; - for (var i = 0; i < object.discoveryEndpoints.length; ++i) { - if (typeof object.discoveryEndpoints[i] !== "object") - throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.discoveryEndpoints: object expected"); - message.discoveryEndpoints[i] = $root.google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.fromObject(object.discoveryEndpoints[i]); - } - } - if (object.pscConnections) { - if (!Array.isArray(object.pscConnections)) - throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.pscConnections: array expected"); - message.pscConnections = []; - for (var i = 0; i < object.pscConnections.length; ++i) { - if (typeof object.pscConnections[i] !== "object") - throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.pscConnections: object expected"); - message.pscConnections[i] = $root.google.cloud.redis.cluster.v1beta1.PscConnection.fromObject(object.pscConnections[i]); - } - } - if (object.stateInfo != null) { - if (typeof object.stateInfo !== "object") - throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.stateInfo: object expected"); - message.stateInfo = $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.fromObject(object.stateInfo); - } - switch (object.nodeType) { - default: - if (typeof object.nodeType === "number") { - message.nodeType = object.nodeType; - break; - } - break; - case "NODE_TYPE_UNSPECIFIED": - case 0: - message.nodeType = 0; - break; - case "REDIS_SHARED_CORE_NANO": - case 1: - message.nodeType = 1; - break; - case "REDIS_HIGHMEM_MEDIUM": - case 2: - message.nodeType = 2; - break; - case "REDIS_HIGHMEM_XLARGE": - case 3: - message.nodeType = 3; - break; - case "REDIS_STANDARD_SMALL": - case 4: - message.nodeType = 4; - break; + if (object.endTime != null) { + if (typeof object.endTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule.endTime: object expected"); + message.endTime = $root.google.protobuf.Timestamp.fromObject(object.endTime); } - if (object.persistenceConfig != null) { - if (typeof object.persistenceConfig !== "object") - throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.persistenceConfig: object expected"); - message.persistenceConfig = $root.google.cloud.redis.cluster.v1beta1.ClusterPersistenceConfig.fromObject(object.persistenceConfig); + return message; + }; + + /** + * Creates a plain object from a ClusterMaintenanceSchedule message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule + * @static + * @param {google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule} message ClusterMaintenanceSchedule + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ClusterMaintenanceSchedule.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.startTime = null; + object.endTime = null; } - if (object.redisConfigs) { - if (typeof object.redisConfigs !== "object") - throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.redisConfigs: object expected"); - message.redisConfigs = {}; - for (var keys = Object.keys(object.redisConfigs), i = 0; i < keys.length; ++i) - message.redisConfigs[keys[i]] = String(object.redisConfigs[keys[i]]); + if (message.startTime != null && message.hasOwnProperty("startTime")) + object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options); + if (message.endTime != null && message.hasOwnProperty("endTime")) + object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options); + return object; + }; + + /** + * Converts this ClusterMaintenanceSchedule to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule + * @instance + * @returns {Object.} JSON object + */ + ClusterMaintenanceSchedule.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ClusterMaintenanceSchedule + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ClusterMaintenanceSchedule.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; } - if (object.preciseSizeGb != null) - message.preciseSizeGb = Number(object.preciseSizeGb); - if (object.zoneDistributionConfig != null) { - if (typeof object.zoneDistributionConfig !== "object") - throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.zoneDistributionConfig: object expected"); - message.zoneDistributionConfig = $root.google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.fromObject(object.zoneDistributionConfig); + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.ClusterMaintenanceSchedule"; + }; + + return ClusterMaintenanceSchedule; + })(); + + v1beta1.PscConfig = (function() { + + /** + * Properties of a PscConfig. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IPscConfig + * @property {string|null} [network] PscConfig network + */ + + /** + * Constructs a new PscConfig. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a PscConfig. + * @implements IPscConfig + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IPscConfig=} [properties] Properties to set + */ + function PscConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PscConfig network. + * @member {string} network + * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * @instance + */ + PscConfig.prototype.network = ""; + + /** + * Creates a new PscConfig instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * @static + * @param {google.cloud.redis.cluster.v1beta1.IPscConfig=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.PscConfig} PscConfig instance + */ + PscConfig.create = function create(properties) { + return new PscConfig(properties); + }; + + /** + * Encodes the specified PscConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscConfig.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * @static + * @param {google.cloud.redis.cluster.v1beta1.IPscConfig} message PscConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PscConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.network != null && Object.hasOwnProperty.call(message, "network")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.network); + return writer; + }; + + /** + * Encodes the specified PscConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * @static + * @param {google.cloud.redis.cluster.v1beta1.IPscConfig} message PscConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PscConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PscConfig message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.PscConfig} PscConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PscConfig.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.PscConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 2: { + message.network = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } } - if (object.deletionProtectionEnabled != null) - message.deletionProtectionEnabled = Boolean(object.deletionProtectionEnabled); return message; }; /** - * Creates a plain object from a Cluster message. Also converts values to other types if specified. + * Decodes a PscConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.PscConfig} PscConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PscConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PscConfig message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PscConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.network != null && message.hasOwnProperty("network")) + if (!$util.isString(message.network)) + return "network: string expected"; + return null; + }; + + /** + * Creates a PscConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.PscConfig} PscConfig + */ + PscConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.PscConfig) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.PscConfig(); + if (object.network != null) + message.network = String(object.network); + return message; + }; + + /** + * Creates a plain object from a PscConfig message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @memberof google.cloud.redis.cluster.v1beta1.PscConfig * @static - * @param {google.cloud.redis.cluster.v1beta1.Cluster} message Cluster + * @param {google.cloud.redis.cluster.v1beta1.PscConfig} message PscConfig * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Cluster.toObject = function toObject(message, options) { + PscConfig.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.pscConfigs = []; - object.discoveryEndpoints = []; - object.pscConnections = []; - } - if (options.objects || options.defaults) - object.redisConfigs = {}; - if (options.defaults) { - object.name = ""; - object.createTime = null; - object.state = options.enums === String ? "STATE_UNSPECIFIED" : 0; - object.uid = ""; - object.authorizationMode = options.enums === String ? "AUTH_MODE_UNSPECIFIED" : 0; - object.transitEncryptionMode = options.enums === String ? "TRANSIT_ENCRYPTION_MODE_UNSPECIFIED" : 0; - object.stateInfo = null; - object.nodeType = options.enums === String ? "NODE_TYPE_UNSPECIFIED" : 0; - object.persistenceConfig = null; - object.zoneDistributionConfig = null; - } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.createTime != null && message.hasOwnProperty("createTime")) - object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options); - if (message.state != null && message.hasOwnProperty("state")) - object.state = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.Cluster.State[message.state] === undefined ? message.state : $root.google.cloud.redis.cluster.v1beta1.Cluster.State[message.state] : message.state; - if (message.uid != null && message.hasOwnProperty("uid")) - object.uid = message.uid; - if (message.replicaCount != null && message.hasOwnProperty("replicaCount")) { - object.replicaCount = message.replicaCount; - if (options.oneofs) - object._replicaCount = "replicaCount"; - } - if (message.authorizationMode != null && message.hasOwnProperty("authorizationMode")) - object.authorizationMode = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.AuthorizationMode[message.authorizationMode] === undefined ? message.authorizationMode : $root.google.cloud.redis.cluster.v1beta1.AuthorizationMode[message.authorizationMode] : message.authorizationMode; - if (message.transitEncryptionMode != null && message.hasOwnProperty("transitEncryptionMode")) - object.transitEncryptionMode = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.TransitEncryptionMode[message.transitEncryptionMode] === undefined ? message.transitEncryptionMode : $root.google.cloud.redis.cluster.v1beta1.TransitEncryptionMode[message.transitEncryptionMode] : message.transitEncryptionMode; - if (message.sizeGb != null && message.hasOwnProperty("sizeGb")) { - object.sizeGb = message.sizeGb; - if (options.oneofs) - object._sizeGb = "sizeGb"; - } - if (message.shardCount != null && message.hasOwnProperty("shardCount")) { - object.shardCount = message.shardCount; - if (options.oneofs) - object._shardCount = "shardCount"; - } - if (message.pscConfigs && message.pscConfigs.length) { - object.pscConfigs = []; - for (var j = 0; j < message.pscConfigs.length; ++j) - object.pscConfigs[j] = $root.google.cloud.redis.cluster.v1beta1.PscConfig.toObject(message.pscConfigs[j], options); - } - if (message.discoveryEndpoints && message.discoveryEndpoints.length) { - object.discoveryEndpoints = []; - for (var j = 0; j < message.discoveryEndpoints.length; ++j) - object.discoveryEndpoints[j] = $root.google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.toObject(message.discoveryEndpoints[j], options); - } - if (message.pscConnections && message.pscConnections.length) { - object.pscConnections = []; - for (var j = 0; j < message.pscConnections.length; ++j) - object.pscConnections[j] = $root.google.cloud.redis.cluster.v1beta1.PscConnection.toObject(message.pscConnections[j], options); - } - if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) - object.stateInfo = $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.toObject(message.stateInfo, options); - if (message.nodeType != null && message.hasOwnProperty("nodeType")) - object.nodeType = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.NodeType[message.nodeType] === undefined ? message.nodeType : $root.google.cloud.redis.cluster.v1beta1.NodeType[message.nodeType] : message.nodeType; - if (message.persistenceConfig != null && message.hasOwnProperty("persistenceConfig")) - object.persistenceConfig = $root.google.cloud.redis.cluster.v1beta1.ClusterPersistenceConfig.toObject(message.persistenceConfig, options); - var keys2; - if (message.redisConfigs && (keys2 = Object.keys(message.redisConfigs)).length) { - object.redisConfigs = {}; - for (var j = 0; j < keys2.length; ++j) - object.redisConfigs[keys2[j]] = message.redisConfigs[keys2[j]]; - } - if (message.preciseSizeGb != null && message.hasOwnProperty("preciseSizeGb")) { - object.preciseSizeGb = options.json && !isFinite(message.preciseSizeGb) ? String(message.preciseSizeGb) : message.preciseSizeGb; - if (options.oneofs) - object._preciseSizeGb = "preciseSizeGb"; - } - if (message.zoneDistributionConfig != null && message.hasOwnProperty("zoneDistributionConfig")) - object.zoneDistributionConfig = $root.google.cloud.redis.cluster.v1beta1.ZoneDistributionConfig.toObject(message.zoneDistributionConfig, options); - if (message.deletionProtectionEnabled != null && message.hasOwnProperty("deletionProtectionEnabled")) { - object.deletionProtectionEnabled = message.deletionProtectionEnabled; - if (options.oneofs) - object._deletionProtectionEnabled = "deletionProtectionEnabled"; - } + if (options.defaults) + object.network = ""; + if (message.network != null && message.hasOwnProperty("network")) + object.network = message.network; return object; }; /** - * Converts this Cluster to JSON. + * Converts this PscConfig to JSON. * @function toJSON - * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @memberof google.cloud.redis.cluster.v1beta1.PscConfig * @instance * @returns {Object.} JSON object */ - Cluster.prototype.toJSON = function toJSON() { + PscConfig.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for Cluster + * Gets the default type url for PscConfig * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1beta1.Cluster + * @memberof google.cloud.redis.cluster.v1beta1.PscConfig * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - Cluster.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + PscConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.Cluster"; + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.PscConfig"; }; - Cluster.StateInfo = (function() { + return PscConfig; + })(); - /** - * Properties of a StateInfo. - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @interface IStateInfo - * @property {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo|null} [updateInfo] StateInfo updateInfo - */ + v1beta1.DiscoveryEndpoint = (function() { - /** - * Constructs a new StateInfo. - * @memberof google.cloud.redis.cluster.v1beta1.Cluster - * @classdesc Represents a StateInfo. - * @implements IStateInfo - * @constructor - * @param {google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo=} [properties] Properties to set - */ - function StateInfo(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a DiscoveryEndpoint. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IDiscoveryEndpoint + * @property {string|null} [address] DiscoveryEndpoint address + * @property {number|null} [port] DiscoveryEndpoint port + * @property {google.cloud.redis.cluster.v1beta1.IPscConfig|null} [pscConfig] DiscoveryEndpoint pscConfig + */ - /** - * StateInfo updateInfo. - * @member {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo|null|undefined} updateInfo - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo - * @instance - */ - StateInfo.prototype.updateInfo = null; + /** + * Constructs a new DiscoveryEndpoint. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a DiscoveryEndpoint. + * @implements IDiscoveryEndpoint + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint=} [properties] Properties to set + */ + function DiscoveryEndpoint(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * DiscoveryEndpoint address. + * @member {string} address + * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @instance + */ + DiscoveryEndpoint.prototype.address = ""; - /** - * StateInfo info. - * @member {"updateInfo"|undefined} info - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo - * @instance - */ - Object.defineProperty(StateInfo.prototype, "info", { - get: $util.oneOfGetter($oneOfFields = ["updateInfo"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * DiscoveryEndpoint port. + * @member {number} port + * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @instance + */ + DiscoveryEndpoint.prototype.port = 0; - /** - * Creates a new StateInfo instance using the specified properties. - * @function create - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo - * @static - * @param {google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo} StateInfo instance - */ - StateInfo.create = function create(properties) { - return new StateInfo(properties); - }; + /** + * DiscoveryEndpoint pscConfig. + * @member {google.cloud.redis.cluster.v1beta1.IPscConfig|null|undefined} pscConfig + * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @instance + */ + DiscoveryEndpoint.prototype.pscConfig = null; - /** - * Encodes the specified StateInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.verify|verify} messages. - * @function encode - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo - * @static - * @param {google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo} message StateInfo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - StateInfo.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.updateInfo != null && Object.hasOwnProperty.call(message, "updateInfo")) - $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo.encode(message.updateInfo, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; + /** + * Creates a new DiscoveryEndpoint instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @static + * @param {google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint} DiscoveryEndpoint instance + */ + DiscoveryEndpoint.create = function create(properties) { + return new DiscoveryEndpoint(properties); + }; - /** - * Encodes the specified StateInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.verify|verify} messages. - * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo - * @static - * @param {google.cloud.redis.cluster.v1beta1.Cluster.IStateInfo} message StateInfo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - StateInfo.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified DiscoveryEndpoint message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @static + * @param {google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint} message DiscoveryEndpoint message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DiscoveryEndpoint.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.address != null && Object.hasOwnProperty.call(message, "address")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.address); + if (message.port != null && Object.hasOwnProperty.call(message, "port")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.port); + if (message.pscConfig != null && Object.hasOwnProperty.call(message, "pscConfig")) + $root.google.cloud.redis.cluster.v1beta1.PscConfig.encode(message.pscConfig, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; - /** - * Decodes a StateInfo message from the specified reader or buffer. - * @function decode - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo} StateInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - StateInfo.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - message.updateInfo = $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo.decode(reader, reader.uint32()); - break; - } - default: - reader.skipType(tag & 7); + /** + * Encodes the specified DiscoveryEndpoint message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @static + * @param {google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint} message DiscoveryEndpoint message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DiscoveryEndpoint.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DiscoveryEndpoint message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint} DiscoveryEndpoint + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DiscoveryEndpoint.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.address = reader.string(); + break; + } + case 2: { + message.port = reader.int32(); break; } + case 3: { + message.pscConfig = $root.google.cloud.redis.cluster.v1beta1.PscConfig.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; } - return message; - }; + } + return message; + }; - /** - * Decodes a StateInfo message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo} StateInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - StateInfo.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes a DiscoveryEndpoint message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint} DiscoveryEndpoint + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DiscoveryEndpoint.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Verifies a StateInfo message. - * @function verify - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - StateInfo.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.updateInfo != null && message.hasOwnProperty("updateInfo")) { - properties.info = 1; - { - var error = $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo.verify(message.updateInfo); - if (error) - return "updateInfo." + error; - } - } - return null; - }; + /** + * Verifies a DiscoveryEndpoint message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DiscoveryEndpoint.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.address != null && message.hasOwnProperty("address")) + if (!$util.isString(message.address)) + return "address: string expected"; + if (message.port != null && message.hasOwnProperty("port")) + if (!$util.isInteger(message.port)) + return "port: integer expected"; + if (message.pscConfig != null && message.hasOwnProperty("pscConfig")) { + var error = $root.google.cloud.redis.cluster.v1beta1.PscConfig.verify(message.pscConfig); + if (error) + return "pscConfig." + error; + } + return null; + }; + + /** + * Creates a DiscoveryEndpoint message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint} DiscoveryEndpoint + */ + DiscoveryEndpoint.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint(); + if (object.address != null) + message.address = String(object.address); + if (object.port != null) + message.port = object.port | 0; + if (object.pscConfig != null) { + if (typeof object.pscConfig !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.pscConfig: object expected"); + message.pscConfig = $root.google.cloud.redis.cluster.v1beta1.PscConfig.fromObject(object.pscConfig); + } + return message; + }; + + /** + * Creates a plain object from a DiscoveryEndpoint message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @static + * @param {google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint} message DiscoveryEndpoint + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DiscoveryEndpoint.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.address = ""; + object.port = 0; + object.pscConfig = null; + } + if (message.address != null && message.hasOwnProperty("address")) + object.address = message.address; + if (message.port != null && message.hasOwnProperty("port")) + object.port = message.port; + if (message.pscConfig != null && message.hasOwnProperty("pscConfig")) + object.pscConfig = $root.google.cloud.redis.cluster.v1beta1.PscConfig.toObject(message.pscConfig, options); + return object; + }; - /** - * Creates a StateInfo message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo - * @static - * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo} StateInfo - */ - StateInfo.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo) - return object; - var message = new $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo(); - if (object.updateInfo != null) { - if (typeof object.updateInfo !== "object") - throw TypeError(".google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.updateInfo: object expected"); - message.updateInfo = $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo.fromObject(object.updateInfo); - } - return message; - }; + /** + * Converts this DiscoveryEndpoint to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @instance + * @returns {Object.} JSON object + */ + DiscoveryEndpoint.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Creates a plain object from a StateInfo message. Also converts values to other types if specified. - * @function toObject - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo - * @static - * @param {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo} message StateInfo - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - StateInfo.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (message.updateInfo != null && message.hasOwnProperty("updateInfo")) { - object.updateInfo = $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo.toObject(message.updateInfo, options); - if (options.oneofs) - object.info = "updateInfo"; - } - return object; - }; + /** + * Gets the default type url for DiscoveryEndpoint + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DiscoveryEndpoint.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint"; + }; - /** - * Converts this StateInfo to JSON. - * @function toJSON - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo - * @instance - * @returns {Object.} JSON object - */ - StateInfo.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + return DiscoveryEndpoint; + })(); - /** - * Gets the default type url for StateInfo - * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - StateInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.Cluster.StateInfo"; - }; + v1beta1.PscConnection = (function() { - StateInfo.UpdateInfo = (function() { + /** + * Properties of a PscConnection. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IPscConnection + * @property {string|null} [pscConnectionId] PscConnection pscConnectionId + * @property {string|null} [address] PscConnection address + * @property {string|null} [forwardingRule] PscConnection forwardingRule + * @property {string|null} [projectId] PscConnection projectId + * @property {string|null} [network] PscConnection network + * @property {string|null} [serviceAttachment] PscConnection serviceAttachment + * @property {google.cloud.redis.cluster.v1beta1.PscConnectionStatus|null} [pscConnectionStatus] PscConnection pscConnectionStatus + * @property {google.cloud.redis.cluster.v1beta1.ConnectionType|null} [connectionType] PscConnection connectionType + */ - /** - * Properties of an UpdateInfo. - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo - * @interface IUpdateInfo - * @property {number|null} [targetShardCount] UpdateInfo targetShardCount - * @property {number|null} [targetReplicaCount] UpdateInfo targetReplicaCount - */ + /** + * Constructs a new PscConnection. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a PscConnection. + * @implements IPscConnection + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IPscConnection=} [properties] Properties to set + */ + function PscConnection(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Constructs a new UpdateInfo. - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo - * @classdesc Represents an UpdateInfo. - * @implements IUpdateInfo - * @constructor - * @param {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo=} [properties] Properties to set - */ - function UpdateInfo(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * PscConnection pscConnectionId. + * @member {string} pscConnectionId + * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @instance + */ + PscConnection.prototype.pscConnectionId = ""; - /** - * UpdateInfo targetShardCount. - * @member {number|null|undefined} targetShardCount - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo - * @instance - */ - UpdateInfo.prototype.targetShardCount = null; + /** + * PscConnection address. + * @member {string} address + * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @instance + */ + PscConnection.prototype.address = ""; - /** - * UpdateInfo targetReplicaCount. - * @member {number|null|undefined} targetReplicaCount - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo - * @instance - */ - UpdateInfo.prototype.targetReplicaCount = null; + /** + * PscConnection forwardingRule. + * @member {string} forwardingRule + * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @instance + */ + PscConnection.prototype.forwardingRule = ""; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * PscConnection projectId. + * @member {string} projectId + * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @instance + */ + PscConnection.prototype.projectId = ""; - /** - * UpdateInfo _targetShardCount. - * @member {"targetShardCount"|undefined} _targetShardCount - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo - * @instance - */ - Object.defineProperty(UpdateInfo.prototype, "_targetShardCount", { - get: $util.oneOfGetter($oneOfFields = ["targetShardCount"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * PscConnection network. + * @member {string} network + * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @instance + */ + PscConnection.prototype.network = ""; - /** - * UpdateInfo _targetReplicaCount. - * @member {"targetReplicaCount"|undefined} _targetReplicaCount - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo - * @instance - */ - Object.defineProperty(UpdateInfo.prototype, "_targetReplicaCount", { - get: $util.oneOfGetter($oneOfFields = ["targetReplicaCount"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * PscConnection serviceAttachment. + * @member {string} serviceAttachment + * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @instance + */ + PscConnection.prototype.serviceAttachment = ""; - /** - * Creates a new UpdateInfo instance using the specified properties. - * @function create - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo - * @static - * @param {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo} UpdateInfo instance - */ - UpdateInfo.create = function create(properties) { - return new UpdateInfo(properties); - }; + /** + * PscConnection pscConnectionStatus. + * @member {google.cloud.redis.cluster.v1beta1.PscConnectionStatus} pscConnectionStatus + * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @instance + */ + PscConnection.prototype.pscConnectionStatus = 0; - /** - * Encodes the specified UpdateInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo.verify|verify} messages. - * @function encode - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo - * @static - * @param {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo} message UpdateInfo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - UpdateInfo.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.targetShardCount != null && Object.hasOwnProperty.call(message, "targetShardCount")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.targetShardCount); - if (message.targetReplicaCount != null && Object.hasOwnProperty.call(message, "targetReplicaCount")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.targetReplicaCount); - return writer; - }; + /** + * PscConnection connectionType. + * @member {google.cloud.redis.cluster.v1beta1.ConnectionType} connectionType + * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @instance + */ + PscConnection.prototype.connectionType = 0; - /** - * Encodes the specified UpdateInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo.verify|verify} messages. - * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo - * @static - * @param {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.IUpdateInfo} message UpdateInfo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - UpdateInfo.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Creates a new PscConnection instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @static + * @param {google.cloud.redis.cluster.v1beta1.IPscConnection=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.PscConnection} PscConnection instance + */ + PscConnection.create = function create(properties) { + return new PscConnection(properties); + }; - /** - * Decodes an UpdateInfo message from the specified reader or buffer. - * @function decode - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo} UpdateInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - UpdateInfo.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - message.targetShardCount = reader.int32(); - break; - } - case 2: { - message.targetReplicaCount = reader.int32(); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Encodes the specified PscConnection message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscConnection.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @static + * @param {google.cloud.redis.cluster.v1beta1.IPscConnection} message PscConnection message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PscConnection.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.pscConnectionId != null && Object.hasOwnProperty.call(message, "pscConnectionId")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.pscConnectionId); + if (message.address != null && Object.hasOwnProperty.call(message, "address")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.address); + if (message.forwardingRule != null && Object.hasOwnProperty.call(message, "forwardingRule")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.forwardingRule); + if (message.projectId != null && Object.hasOwnProperty.call(message, "projectId")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.projectId); + if (message.network != null && Object.hasOwnProperty.call(message, "network")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.network); + if (message.serviceAttachment != null && Object.hasOwnProperty.call(message, "serviceAttachment")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.serviceAttachment); + if (message.pscConnectionStatus != null && Object.hasOwnProperty.call(message, "pscConnectionStatus")) + writer.uint32(/* id 8, wireType 0 =*/64).int32(message.pscConnectionStatus); + if (message.connectionType != null && Object.hasOwnProperty.call(message, "connectionType")) + writer.uint32(/* id 10, wireType 0 =*/80).int32(message.connectionType); + return writer; + }; - /** - * Decodes an UpdateInfo message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo} UpdateInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - UpdateInfo.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Encodes the specified PscConnection message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscConnection.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @static + * @param {google.cloud.redis.cluster.v1beta1.IPscConnection} message PscConnection message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PscConnection.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Verifies an UpdateInfo message. - * @function verify - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - UpdateInfo.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.targetShardCount != null && message.hasOwnProperty("targetShardCount")) { - properties._targetShardCount = 1; - if (!$util.isInteger(message.targetShardCount)) - return "targetShardCount: integer expected"; + /** + * Decodes a PscConnection message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.PscConnection} PscConnection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PscConnection.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.PscConnection(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.pscConnectionId = reader.string(); + break; } - if (message.targetReplicaCount != null && message.hasOwnProperty("targetReplicaCount")) { - properties._targetReplicaCount = 1; - if (!$util.isInteger(message.targetReplicaCount)) - return "targetReplicaCount: integer expected"; + case 2: { + message.address = reader.string(); + break; } - return null; - }; - - /** - * Creates an UpdateInfo message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo - * @static - * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo} UpdateInfo - */ - UpdateInfo.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo) - return object; - var message = new $root.google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo(); - if (object.targetShardCount != null) - message.targetShardCount = object.targetShardCount | 0; - if (object.targetReplicaCount != null) - message.targetReplicaCount = object.targetReplicaCount | 0; - return message; - }; - - /** - * Creates a plain object from an UpdateInfo message. Also converts values to other types if specified. - * @function toObject - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo - * @static - * @param {google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo} message UpdateInfo - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - UpdateInfo.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (message.targetShardCount != null && message.hasOwnProperty("targetShardCount")) { - object.targetShardCount = message.targetShardCount; - if (options.oneofs) - object._targetShardCount = "targetShardCount"; + case 3: { + message.forwardingRule = reader.string(); + break; } - if (message.targetReplicaCount != null && message.hasOwnProperty("targetReplicaCount")) { - object.targetReplicaCount = message.targetReplicaCount; - if (options.oneofs) - object._targetReplicaCount = "targetReplicaCount"; + case 4: { + message.projectId = reader.string(); + break; } - return object; - }; + case 5: { + message.network = reader.string(); + break; + } + case 6: { + message.serviceAttachment = reader.string(); + break; + } + case 8: { + message.pscConnectionStatus = reader.int32(); + break; + } + case 10: { + message.connectionType = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Converts this UpdateInfo to JSON. - * @function toJSON - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo - * @instance - * @returns {Object.} JSON object - */ - UpdateInfo.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Decodes a PscConnection message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.PscConnection} PscConnection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PscConnection.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Gets the default type url for UpdateInfo - * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - UpdateInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.Cluster.StateInfo.UpdateInfo"; - }; + /** + * Verifies a PscConnection message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PscConnection.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.pscConnectionId != null && message.hasOwnProperty("pscConnectionId")) + if (!$util.isString(message.pscConnectionId)) + return "pscConnectionId: string expected"; + if (message.address != null && message.hasOwnProperty("address")) + if (!$util.isString(message.address)) + return "address: string expected"; + if (message.forwardingRule != null && message.hasOwnProperty("forwardingRule")) + if (!$util.isString(message.forwardingRule)) + return "forwardingRule: string expected"; + if (message.projectId != null && message.hasOwnProperty("projectId")) + if (!$util.isString(message.projectId)) + return "projectId: string expected"; + if (message.network != null && message.hasOwnProperty("network")) + if (!$util.isString(message.network)) + return "network: string expected"; + if (message.serviceAttachment != null && message.hasOwnProperty("serviceAttachment")) + if (!$util.isString(message.serviceAttachment)) + return "serviceAttachment: string expected"; + if (message.pscConnectionStatus != null && message.hasOwnProperty("pscConnectionStatus")) + switch (message.pscConnectionStatus) { + default: + return "pscConnectionStatus: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.connectionType != null && message.hasOwnProperty("connectionType")) + switch (message.connectionType) { + default: + return "connectionType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + return null; + }; - return UpdateInfo; - })(); + /** + * Creates a PscConnection message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.PscConnection} PscConnection + */ + PscConnection.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.PscConnection) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.PscConnection(); + if (object.pscConnectionId != null) + message.pscConnectionId = String(object.pscConnectionId); + if (object.address != null) + message.address = String(object.address); + if (object.forwardingRule != null) + message.forwardingRule = String(object.forwardingRule); + if (object.projectId != null) + message.projectId = String(object.projectId); + if (object.network != null) + message.network = String(object.network); + if (object.serviceAttachment != null) + message.serviceAttachment = String(object.serviceAttachment); + switch (object.pscConnectionStatus) { + default: + if (typeof object.pscConnectionStatus === "number") { + message.pscConnectionStatus = object.pscConnectionStatus; + break; + } + break; + case "PSC_CONNECTION_STATUS_UNSPECIFIED": + case 0: + message.pscConnectionStatus = 0; + break; + case "PSC_CONNECTION_STATUS_ACTIVE": + case 1: + message.pscConnectionStatus = 1; + break; + case "PSC_CONNECTION_STATUS_NOT_FOUND": + case 2: + message.pscConnectionStatus = 2; + break; + } + switch (object.connectionType) { + default: + if (typeof object.connectionType === "number") { + message.connectionType = object.connectionType; + break; + } + break; + case "CONNECTION_TYPE_UNSPECIFIED": + case 0: + message.connectionType = 0; + break; + case "CONNECTION_TYPE_DISCOVERY": + case 1: + message.connectionType = 1; + break; + case "CONNECTION_TYPE_PRIMARY": + case 2: + message.connectionType = 2; + break; + case "CONNECTION_TYPE_READER": + case 3: + message.connectionType = 3; + break; + } + return message; + }; - return StateInfo; - })(); + /** + * Creates a plain object from a PscConnection message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @static + * @param {google.cloud.redis.cluster.v1beta1.PscConnection} message PscConnection + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PscConnection.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.pscConnectionId = ""; + object.address = ""; + object.forwardingRule = ""; + object.projectId = ""; + object.network = ""; + object.serviceAttachment = ""; + object.pscConnectionStatus = options.enums === String ? "PSC_CONNECTION_STATUS_UNSPECIFIED" : 0; + object.connectionType = options.enums === String ? "CONNECTION_TYPE_UNSPECIFIED" : 0; + } + if (message.pscConnectionId != null && message.hasOwnProperty("pscConnectionId")) + object.pscConnectionId = message.pscConnectionId; + if (message.address != null && message.hasOwnProperty("address")) + object.address = message.address; + if (message.forwardingRule != null && message.hasOwnProperty("forwardingRule")) + object.forwardingRule = message.forwardingRule; + if (message.projectId != null && message.hasOwnProperty("projectId")) + object.projectId = message.projectId; + if (message.network != null && message.hasOwnProperty("network")) + object.network = message.network; + if (message.serviceAttachment != null && message.hasOwnProperty("serviceAttachment")) + object.serviceAttachment = message.serviceAttachment; + if (message.pscConnectionStatus != null && message.hasOwnProperty("pscConnectionStatus")) + object.pscConnectionStatus = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.PscConnectionStatus[message.pscConnectionStatus] === undefined ? message.pscConnectionStatus : $root.google.cloud.redis.cluster.v1beta1.PscConnectionStatus[message.pscConnectionStatus] : message.pscConnectionStatus; + if (message.connectionType != null && message.hasOwnProperty("connectionType")) + object.connectionType = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.ConnectionType[message.connectionType] === undefined ? message.connectionType : $root.google.cloud.redis.cluster.v1beta1.ConnectionType[message.connectionType] : message.connectionType; + return object; + }; /** - * State enum. - * @name google.cloud.redis.cluster.v1beta1.Cluster.State - * @enum {number} - * @property {number} STATE_UNSPECIFIED=0 STATE_UNSPECIFIED value - * @property {number} CREATING=1 CREATING value - * @property {number} ACTIVE=2 ACTIVE value - * @property {number} UPDATING=3 UPDATING value - * @property {number} DELETING=4 DELETING value + * Converts this PscConnection to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @instance + * @returns {Object.} JSON object */ - Cluster.State = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "STATE_UNSPECIFIED"] = 0; - values[valuesById[1] = "CREATING"] = 1; - values[valuesById[2] = "ACTIVE"] = 2; - values[valuesById[3] = "UPDATING"] = 3; - values[valuesById[4] = "DELETING"] = 4; - return values; - })(); + PscConnection.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return Cluster; + /** + * Gets the default type url for PscConnection + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + PscConnection.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.PscConnection"; + }; + + return PscConnection; })(); - v1beta1.PscConfig = (function() { + v1beta1.ClusterEndpoint = (function() { /** - * Properties of a PscConfig. + * Properties of a ClusterEndpoint. * @memberof google.cloud.redis.cluster.v1beta1 - * @interface IPscConfig - * @property {string|null} [network] PscConfig network + * @interface IClusterEndpoint + * @property {Array.|null} [connections] ClusterEndpoint connections */ /** - * Constructs a new PscConfig. + * Constructs a new ClusterEndpoint. * @memberof google.cloud.redis.cluster.v1beta1 - * @classdesc Represents a PscConfig. - * @implements IPscConfig + * @classdesc Represents a ClusterEndpoint. + * @implements IClusterEndpoint * @constructor - * @param {google.cloud.redis.cluster.v1beta1.IPscConfig=} [properties] Properties to set + * @param {google.cloud.redis.cluster.v1beta1.IClusterEndpoint=} [properties] Properties to set */ - function PscConfig(properties) { + function ClusterEndpoint(properties) { + this.connections = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -9890,75 +26727,78 @@ } /** - * PscConfig network. - * @member {string} network - * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * ClusterEndpoint connections. + * @member {Array.} connections + * @memberof google.cloud.redis.cluster.v1beta1.ClusterEndpoint * @instance */ - PscConfig.prototype.network = ""; + ClusterEndpoint.prototype.connections = $util.emptyArray; /** - * Creates a new PscConfig instance using the specified properties. + * Creates a new ClusterEndpoint instance using the specified properties. * @function create - * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * @memberof google.cloud.redis.cluster.v1beta1.ClusterEndpoint * @static - * @param {google.cloud.redis.cluster.v1beta1.IPscConfig=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1beta1.PscConfig} PscConfig instance + * @param {google.cloud.redis.cluster.v1beta1.IClusterEndpoint=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.ClusterEndpoint} ClusterEndpoint instance */ - PscConfig.create = function create(properties) { - return new PscConfig(properties); + ClusterEndpoint.create = function create(properties) { + return new ClusterEndpoint(properties); }; /** - * Encodes the specified PscConfig message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscConfig.verify|verify} messages. + * Encodes the specified ClusterEndpoint message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ClusterEndpoint.verify|verify} messages. * @function encode - * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * @memberof google.cloud.redis.cluster.v1beta1.ClusterEndpoint * @static - * @param {google.cloud.redis.cluster.v1beta1.IPscConfig} message PscConfig message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.IClusterEndpoint} message ClusterEndpoint message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PscConfig.encode = function encode(message, writer) { + ClusterEndpoint.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.network != null && Object.hasOwnProperty.call(message, "network")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.network); + if (message.connections != null && message.connections.length) + for (var i = 0; i < message.connections.length; ++i) + $root.google.cloud.redis.cluster.v1beta1.ConnectionDetail.encode(message.connections[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified PscConfig message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscConfig.verify|verify} messages. + * Encodes the specified ClusterEndpoint message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ClusterEndpoint.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * @memberof google.cloud.redis.cluster.v1beta1.ClusterEndpoint * @static - * @param {google.cloud.redis.cluster.v1beta1.IPscConfig} message PscConfig message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.IClusterEndpoint} message ClusterEndpoint message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PscConfig.encodeDelimited = function encodeDelimited(message, writer) { + ClusterEndpoint.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a PscConfig message from the specified reader or buffer. + * Decodes a ClusterEndpoint message from the specified reader or buffer. * @function decode - * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * @memberof google.cloud.redis.cluster.v1beta1.ClusterEndpoint * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1beta1.PscConfig} PscConfig + * @returns {google.cloud.redis.cluster.v1beta1.ClusterEndpoint} ClusterEndpoint * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PscConfig.decode = function decode(reader, length) { + ClusterEndpoint.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.PscConfig(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.ClusterEndpoint(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 2: { - message.network = reader.string(); + case 1: { + if (!(message.connections && message.connections.length)) + message.connections = []; + message.connections.push($root.google.cloud.redis.cluster.v1beta1.ConnectionDetail.decode(reader, reader.uint32())); break; } default: @@ -9970,124 +26810,140 @@ }; /** - * Decodes a PscConfig message from the specified reader or buffer, length delimited. + * Decodes a ClusterEndpoint message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * @memberof google.cloud.redis.cluster.v1beta1.ClusterEndpoint * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1beta1.PscConfig} PscConfig + * @returns {google.cloud.redis.cluster.v1beta1.ClusterEndpoint} ClusterEndpoint * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PscConfig.decodeDelimited = function decodeDelimited(reader) { + ClusterEndpoint.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a PscConfig message. + * Verifies a ClusterEndpoint message. * @function verify - * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * @memberof google.cloud.redis.cluster.v1beta1.ClusterEndpoint * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PscConfig.verify = function verify(message) { + ClusterEndpoint.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.network != null && message.hasOwnProperty("network")) - if (!$util.isString(message.network)) - return "network: string expected"; + if (message.connections != null && message.hasOwnProperty("connections")) { + if (!Array.isArray(message.connections)) + return "connections: array expected"; + for (var i = 0; i < message.connections.length; ++i) { + var error = $root.google.cloud.redis.cluster.v1beta1.ConnectionDetail.verify(message.connections[i]); + if (error) + return "connections." + error; + } + } return null; }; /** - * Creates a PscConfig message from a plain object. Also converts values to their respective internal types. + * Creates a ClusterEndpoint message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * @memberof google.cloud.redis.cluster.v1beta1.ClusterEndpoint * @static * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1beta1.PscConfig} PscConfig + * @returns {google.cloud.redis.cluster.v1beta1.ClusterEndpoint} ClusterEndpoint */ - PscConfig.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1beta1.PscConfig) + ClusterEndpoint.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.ClusterEndpoint) return object; - var message = new $root.google.cloud.redis.cluster.v1beta1.PscConfig(); - if (object.network != null) - message.network = String(object.network); + var message = new $root.google.cloud.redis.cluster.v1beta1.ClusterEndpoint(); + if (object.connections) { + if (!Array.isArray(object.connections)) + throw TypeError(".google.cloud.redis.cluster.v1beta1.ClusterEndpoint.connections: array expected"); + message.connections = []; + for (var i = 0; i < object.connections.length; ++i) { + if (typeof object.connections[i] !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.ClusterEndpoint.connections: object expected"); + message.connections[i] = $root.google.cloud.redis.cluster.v1beta1.ConnectionDetail.fromObject(object.connections[i]); + } + } return message; }; /** - * Creates a plain object from a PscConfig message. Also converts values to other types if specified. + * Creates a plain object from a ClusterEndpoint message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * @memberof google.cloud.redis.cluster.v1beta1.ClusterEndpoint * @static - * @param {google.cloud.redis.cluster.v1beta1.PscConfig} message PscConfig + * @param {google.cloud.redis.cluster.v1beta1.ClusterEndpoint} message ClusterEndpoint * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PscConfig.toObject = function toObject(message, options) { + ClusterEndpoint.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.network = ""; - if (message.network != null && message.hasOwnProperty("network")) - object.network = message.network; + if (options.arrays || options.defaults) + object.connections = []; + if (message.connections && message.connections.length) { + object.connections = []; + for (var j = 0; j < message.connections.length; ++j) + object.connections[j] = $root.google.cloud.redis.cluster.v1beta1.ConnectionDetail.toObject(message.connections[j], options); + } return object; }; /** - * Converts this PscConfig to JSON. + * Converts this ClusterEndpoint to JSON. * @function toJSON - * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * @memberof google.cloud.redis.cluster.v1beta1.ClusterEndpoint * @instance * @returns {Object.} JSON object */ - PscConfig.prototype.toJSON = function toJSON() { + ClusterEndpoint.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for PscConfig + * Gets the default type url for ClusterEndpoint * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1beta1.PscConfig + * @memberof google.cloud.redis.cluster.v1beta1.ClusterEndpoint * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - PscConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + ClusterEndpoint.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.PscConfig"; + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.ClusterEndpoint"; }; - return PscConfig; + return ClusterEndpoint; })(); - v1beta1.DiscoveryEndpoint = (function() { + v1beta1.ConnectionDetail = (function() { /** - * Properties of a DiscoveryEndpoint. + * Properties of a ConnectionDetail. * @memberof google.cloud.redis.cluster.v1beta1 - * @interface IDiscoveryEndpoint - * @property {string|null} [address] DiscoveryEndpoint address - * @property {number|null} [port] DiscoveryEndpoint port - * @property {google.cloud.redis.cluster.v1beta1.IPscConfig|null} [pscConfig] DiscoveryEndpoint pscConfig + * @interface IConnectionDetail + * @property {google.cloud.redis.cluster.v1beta1.IPscAutoConnection|null} [pscAutoConnection] ConnectionDetail pscAutoConnection + * @property {google.cloud.redis.cluster.v1beta1.IPscConnection|null} [pscConnection] ConnectionDetail pscConnection */ /** - * Constructs a new DiscoveryEndpoint. + * Constructs a new ConnectionDetail. * @memberof google.cloud.redis.cluster.v1beta1 - * @classdesc Represents a DiscoveryEndpoint. - * @implements IDiscoveryEndpoint + * @classdesc Represents a ConnectionDetail. + * @implements IConnectionDetail * @constructor - * @param {google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint=} [properties] Properties to set + * @param {google.cloud.redis.cluster.v1beta1.IConnectionDetail=} [properties] Properties to set */ - function DiscoveryEndpoint(properties) { + function ConnectionDetail(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -10095,103 +26951,103 @@ } /** - * DiscoveryEndpoint address. - * @member {string} address - * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * ConnectionDetail pscAutoConnection. + * @member {google.cloud.redis.cluster.v1beta1.IPscAutoConnection|null|undefined} pscAutoConnection + * @memberof google.cloud.redis.cluster.v1beta1.ConnectionDetail * @instance */ - DiscoveryEndpoint.prototype.address = ""; + ConnectionDetail.prototype.pscAutoConnection = null; /** - * DiscoveryEndpoint port. - * @member {number} port - * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * ConnectionDetail pscConnection. + * @member {google.cloud.redis.cluster.v1beta1.IPscConnection|null|undefined} pscConnection + * @memberof google.cloud.redis.cluster.v1beta1.ConnectionDetail * @instance */ - DiscoveryEndpoint.prototype.port = 0; + ConnectionDetail.prototype.pscConnection = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; /** - * DiscoveryEndpoint pscConfig. - * @member {google.cloud.redis.cluster.v1beta1.IPscConfig|null|undefined} pscConfig - * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * ConnectionDetail connection. + * @member {"pscAutoConnection"|"pscConnection"|undefined} connection + * @memberof google.cloud.redis.cluster.v1beta1.ConnectionDetail * @instance */ - DiscoveryEndpoint.prototype.pscConfig = null; + Object.defineProperty(ConnectionDetail.prototype, "connection", { + get: $util.oneOfGetter($oneOfFields = ["pscAutoConnection", "pscConnection"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * Creates a new DiscoveryEndpoint instance using the specified properties. + * Creates a new ConnectionDetail instance using the specified properties. * @function create - * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1beta1.ConnectionDetail * @static - * @param {google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint} DiscoveryEndpoint instance + * @param {google.cloud.redis.cluster.v1beta1.IConnectionDetail=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.ConnectionDetail} ConnectionDetail instance */ - DiscoveryEndpoint.create = function create(properties) { - return new DiscoveryEndpoint(properties); + ConnectionDetail.create = function create(properties) { + return new ConnectionDetail(properties); }; /** - * Encodes the specified DiscoveryEndpoint message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.verify|verify} messages. + * Encodes the specified ConnectionDetail message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ConnectionDetail.verify|verify} messages. * @function encode - * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1beta1.ConnectionDetail * @static - * @param {google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint} message DiscoveryEndpoint message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.IConnectionDetail} message ConnectionDetail message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DiscoveryEndpoint.encode = function encode(message, writer) { + ConnectionDetail.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.address != null && Object.hasOwnProperty.call(message, "address")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.address); - if (message.port != null && Object.hasOwnProperty.call(message, "port")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.port); - if (message.pscConfig != null && Object.hasOwnProperty.call(message, "pscConfig")) - $root.google.cloud.redis.cluster.v1beta1.PscConfig.encode(message.pscConfig, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.pscAutoConnection != null && Object.hasOwnProperty.call(message, "pscAutoConnection")) + $root.google.cloud.redis.cluster.v1beta1.PscAutoConnection.encode(message.pscAutoConnection, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.pscConnection != null && Object.hasOwnProperty.call(message, "pscConnection")) + $root.google.cloud.redis.cluster.v1beta1.PscConnection.encode(message.pscConnection, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified DiscoveryEndpoint message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.verify|verify} messages. + * Encodes the specified ConnectionDetail message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.ConnectionDetail.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1beta1.ConnectionDetail * @static - * @param {google.cloud.redis.cluster.v1beta1.IDiscoveryEndpoint} message DiscoveryEndpoint message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.IConnectionDetail} message ConnectionDetail message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DiscoveryEndpoint.encodeDelimited = function encodeDelimited(message, writer) { + ConnectionDetail.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a DiscoveryEndpoint message from the specified reader or buffer. + * Decodes a ConnectionDetail message from the specified reader or buffer. * @function decode - * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1beta1.ConnectionDetail * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint} DiscoveryEndpoint + * @returns {google.cloud.redis.cluster.v1beta1.ConnectionDetail} ConnectionDetail * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DiscoveryEndpoint.decode = function decode(reader, length) { + ConnectionDetail.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.ConnectionDetail(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.address = reader.string(); + message.pscAutoConnection = $root.google.cloud.redis.cluster.v1beta1.PscAutoConnection.decode(reader, reader.uint32()); break; } case 2: { - message.port = reader.int32(); - break; - } - case 3: { - message.pscConfig = $root.google.cloud.redis.cluster.v1beta1.PscConfig.decode(reader, reader.uint32()); + message.pscConnection = $root.google.cloud.redis.cluster.v1beta1.PscConnection.decode(reader, reader.uint32()); break; } default: @@ -10203,148 +27059,159 @@ }; /** - * Decodes a DiscoveryEndpoint message from the specified reader or buffer, length delimited. + * Decodes a ConnectionDetail message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1beta1.ConnectionDetail * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint} DiscoveryEndpoint + * @returns {google.cloud.redis.cluster.v1beta1.ConnectionDetail} ConnectionDetail * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DiscoveryEndpoint.decodeDelimited = function decodeDelimited(reader) { + ConnectionDetail.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a DiscoveryEndpoint message. + * Verifies a ConnectionDetail message. * @function verify - * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1beta1.ConnectionDetail * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DiscoveryEndpoint.verify = function verify(message) { + ConnectionDetail.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.address != null && message.hasOwnProperty("address")) - if (!$util.isString(message.address)) - return "address: string expected"; - if (message.port != null && message.hasOwnProperty("port")) - if (!$util.isInteger(message.port)) - return "port: integer expected"; - if (message.pscConfig != null && message.hasOwnProperty("pscConfig")) { - var error = $root.google.cloud.redis.cluster.v1beta1.PscConfig.verify(message.pscConfig); - if (error) - return "pscConfig." + error; + var properties = {}; + if (message.pscAutoConnection != null && message.hasOwnProperty("pscAutoConnection")) { + properties.connection = 1; + { + var error = $root.google.cloud.redis.cluster.v1beta1.PscAutoConnection.verify(message.pscAutoConnection); + if (error) + return "pscAutoConnection." + error; + } + } + if (message.pscConnection != null && message.hasOwnProperty("pscConnection")) { + if (properties.connection === 1) + return "connection: multiple values"; + properties.connection = 1; + { + var error = $root.google.cloud.redis.cluster.v1beta1.PscConnection.verify(message.pscConnection); + if (error) + return "pscConnection." + error; + } } return null; }; /** - * Creates a DiscoveryEndpoint message from a plain object. Also converts values to their respective internal types. + * Creates a ConnectionDetail message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1beta1.ConnectionDetail * @static * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint} DiscoveryEndpoint + * @returns {google.cloud.redis.cluster.v1beta1.ConnectionDetail} ConnectionDetail */ - DiscoveryEndpoint.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint) + ConnectionDetail.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.ConnectionDetail) return object; - var message = new $root.google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint(); - if (object.address != null) - message.address = String(object.address); - if (object.port != null) - message.port = object.port | 0; - if (object.pscConfig != null) { - if (typeof object.pscConfig !== "object") - throw TypeError(".google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint.pscConfig: object expected"); - message.pscConfig = $root.google.cloud.redis.cluster.v1beta1.PscConfig.fromObject(object.pscConfig); + var message = new $root.google.cloud.redis.cluster.v1beta1.ConnectionDetail(); + if (object.pscAutoConnection != null) { + if (typeof object.pscAutoConnection !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.ConnectionDetail.pscAutoConnection: object expected"); + message.pscAutoConnection = $root.google.cloud.redis.cluster.v1beta1.PscAutoConnection.fromObject(object.pscAutoConnection); + } + if (object.pscConnection != null) { + if (typeof object.pscConnection !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.ConnectionDetail.pscConnection: object expected"); + message.pscConnection = $root.google.cloud.redis.cluster.v1beta1.PscConnection.fromObject(object.pscConnection); } return message; }; /** - * Creates a plain object from a DiscoveryEndpoint message. Also converts values to other types if specified. + * Creates a plain object from a ConnectionDetail message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1beta1.ConnectionDetail * @static - * @param {google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint} message DiscoveryEndpoint + * @param {google.cloud.redis.cluster.v1beta1.ConnectionDetail} message ConnectionDetail * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DiscoveryEndpoint.toObject = function toObject(message, options) { + ConnectionDetail.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.address = ""; - object.port = 0; - object.pscConfig = null; + if (message.pscAutoConnection != null && message.hasOwnProperty("pscAutoConnection")) { + object.pscAutoConnection = $root.google.cloud.redis.cluster.v1beta1.PscAutoConnection.toObject(message.pscAutoConnection, options); + if (options.oneofs) + object.connection = "pscAutoConnection"; + } + if (message.pscConnection != null && message.hasOwnProperty("pscConnection")) { + object.pscConnection = $root.google.cloud.redis.cluster.v1beta1.PscConnection.toObject(message.pscConnection, options); + if (options.oneofs) + object.connection = "pscConnection"; } - if (message.address != null && message.hasOwnProperty("address")) - object.address = message.address; - if (message.port != null && message.hasOwnProperty("port")) - object.port = message.port; - if (message.pscConfig != null && message.hasOwnProperty("pscConfig")) - object.pscConfig = $root.google.cloud.redis.cluster.v1beta1.PscConfig.toObject(message.pscConfig, options); return object; }; /** - * Converts this DiscoveryEndpoint to JSON. + * Converts this ConnectionDetail to JSON. * @function toJSON - * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1beta1.ConnectionDetail * @instance * @returns {Object.} JSON object */ - DiscoveryEndpoint.prototype.toJSON = function toJSON() { + ConnectionDetail.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for DiscoveryEndpoint + * Gets the default type url for ConnectionDetail * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint + * @memberof google.cloud.redis.cluster.v1beta1.ConnectionDetail * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - DiscoveryEndpoint.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + ConnectionDetail.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.DiscoveryEndpoint"; + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.ConnectionDetail"; }; - return DiscoveryEndpoint; + return ConnectionDetail; })(); - v1beta1.PscConnection = (function() { + v1beta1.PscAutoConnection = (function() { /** - * Properties of a PscConnection. + * Properties of a PscAutoConnection. * @memberof google.cloud.redis.cluster.v1beta1 - * @interface IPscConnection - * @property {string|null} [pscConnectionId] PscConnection pscConnectionId - * @property {string|null} [address] PscConnection address - * @property {string|null} [forwardingRule] PscConnection forwardingRule - * @property {string|null} [projectId] PscConnection projectId - * @property {string|null} [network] PscConnection network + * @interface IPscAutoConnection + * @property {string|null} [pscConnectionId] PscAutoConnection pscConnectionId + * @property {string|null} [address] PscAutoConnection address + * @property {string|null} [forwardingRule] PscAutoConnection forwardingRule + * @property {string|null} [projectId] PscAutoConnection projectId + * @property {string|null} [network] PscAutoConnection network + * @property {string|null} [serviceAttachment] PscAutoConnection serviceAttachment + * @property {google.cloud.redis.cluster.v1beta1.PscConnectionStatus|null} [pscConnectionStatus] PscAutoConnection pscConnectionStatus + * @property {google.cloud.redis.cluster.v1beta1.ConnectionType|null} [connectionType] PscAutoConnection connectionType */ /** - * Constructs a new PscConnection. + * Constructs a new PscAutoConnection. * @memberof google.cloud.redis.cluster.v1beta1 - * @classdesc Represents a PscConnection. - * @implements IPscConnection + * @classdesc Represents a PscAutoConnection. + * @implements IPscAutoConnection * @constructor - * @param {google.cloud.redis.cluster.v1beta1.IPscConnection=} [properties] Properties to set + * @param {google.cloud.redis.cluster.v1beta1.IPscAutoConnection=} [properties] Properties to set */ - function PscConnection(properties) { + function PscAutoConnection(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -10352,67 +27219,91 @@ } /** - * PscConnection pscConnectionId. + * PscAutoConnection pscConnectionId. * @member {string} pscConnectionId - * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @memberof google.cloud.redis.cluster.v1beta1.PscAutoConnection * @instance */ - PscConnection.prototype.pscConnectionId = ""; + PscAutoConnection.prototype.pscConnectionId = ""; /** - * PscConnection address. + * PscAutoConnection address. * @member {string} address - * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @memberof google.cloud.redis.cluster.v1beta1.PscAutoConnection * @instance */ - PscConnection.prototype.address = ""; + PscAutoConnection.prototype.address = ""; /** - * PscConnection forwardingRule. + * PscAutoConnection forwardingRule. * @member {string} forwardingRule - * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @memberof google.cloud.redis.cluster.v1beta1.PscAutoConnection * @instance */ - PscConnection.prototype.forwardingRule = ""; + PscAutoConnection.prototype.forwardingRule = ""; /** - * PscConnection projectId. + * PscAutoConnection projectId. * @member {string} projectId - * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @memberof google.cloud.redis.cluster.v1beta1.PscAutoConnection * @instance */ - PscConnection.prototype.projectId = ""; + PscAutoConnection.prototype.projectId = ""; /** - * PscConnection network. + * PscAutoConnection network. * @member {string} network - * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @memberof google.cloud.redis.cluster.v1beta1.PscAutoConnection * @instance */ - PscConnection.prototype.network = ""; + PscAutoConnection.prototype.network = ""; /** - * Creates a new PscConnection instance using the specified properties. + * PscAutoConnection serviceAttachment. + * @member {string} serviceAttachment + * @memberof google.cloud.redis.cluster.v1beta1.PscAutoConnection + * @instance + */ + PscAutoConnection.prototype.serviceAttachment = ""; + + /** + * PscAutoConnection pscConnectionStatus. + * @member {google.cloud.redis.cluster.v1beta1.PscConnectionStatus} pscConnectionStatus + * @memberof google.cloud.redis.cluster.v1beta1.PscAutoConnection + * @instance + */ + PscAutoConnection.prototype.pscConnectionStatus = 0; + + /** + * PscAutoConnection connectionType. + * @member {google.cloud.redis.cluster.v1beta1.ConnectionType} connectionType + * @memberof google.cloud.redis.cluster.v1beta1.PscAutoConnection + * @instance + */ + PscAutoConnection.prototype.connectionType = 0; + + /** + * Creates a new PscAutoConnection instance using the specified properties. * @function create - * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @memberof google.cloud.redis.cluster.v1beta1.PscAutoConnection * @static - * @param {google.cloud.redis.cluster.v1beta1.IPscConnection=} [properties] Properties to set - * @returns {google.cloud.redis.cluster.v1beta1.PscConnection} PscConnection instance + * @param {google.cloud.redis.cluster.v1beta1.IPscAutoConnection=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.PscAutoConnection} PscAutoConnection instance */ - PscConnection.create = function create(properties) { - return new PscConnection(properties); + PscAutoConnection.create = function create(properties) { + return new PscAutoConnection(properties); }; /** - * Encodes the specified PscConnection message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscConnection.verify|verify} messages. + * Encodes the specified PscAutoConnection message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscAutoConnection.verify|verify} messages. * @function encode - * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @memberof google.cloud.redis.cluster.v1beta1.PscAutoConnection * @static - * @param {google.cloud.redis.cluster.v1beta1.IPscConnection} message PscConnection message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.IPscAutoConnection} message PscAutoConnection message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PscConnection.encode = function encode(message, writer) { + PscAutoConnection.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); if (message.pscConnectionId != null && Object.hasOwnProperty.call(message, "pscConnectionId")) @@ -10425,37 +27316,43 @@ writer.uint32(/* id 4, wireType 2 =*/34).string(message.projectId); if (message.network != null && Object.hasOwnProperty.call(message, "network")) writer.uint32(/* id 5, wireType 2 =*/42).string(message.network); + if (message.serviceAttachment != null && Object.hasOwnProperty.call(message, "serviceAttachment")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.serviceAttachment); + if (message.pscConnectionStatus != null && Object.hasOwnProperty.call(message, "pscConnectionStatus")) + writer.uint32(/* id 8, wireType 0 =*/64).int32(message.pscConnectionStatus); + if (message.connectionType != null && Object.hasOwnProperty.call(message, "connectionType")) + writer.uint32(/* id 9, wireType 0 =*/72).int32(message.connectionType); return writer; }; /** - * Encodes the specified PscConnection message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscConnection.verify|verify} messages. + * Encodes the specified PscAutoConnection message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.PscAutoConnection.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @memberof google.cloud.redis.cluster.v1beta1.PscAutoConnection * @static - * @param {google.cloud.redis.cluster.v1beta1.IPscConnection} message PscConnection message or plain object to encode + * @param {google.cloud.redis.cluster.v1beta1.IPscAutoConnection} message PscAutoConnection message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PscConnection.encodeDelimited = function encodeDelimited(message, writer) { + PscAutoConnection.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a PscConnection message from the specified reader or buffer. + * Decodes a PscAutoConnection message from the specified reader or buffer. * @function decode - * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @memberof google.cloud.redis.cluster.v1beta1.PscAutoConnection * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.redis.cluster.v1beta1.PscConnection} PscConnection + * @returns {google.cloud.redis.cluster.v1beta1.PscAutoConnection} PscAutoConnection * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PscConnection.decode = function decode(reader, length) { + PscAutoConnection.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.PscConnection(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.PscAutoConnection(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -10479,6 +27376,18 @@ message.network = reader.string(); break; } + case 6: { + message.serviceAttachment = reader.string(); + break; + } + case 8: { + message.pscConnectionStatus = reader.int32(); + break; + } + case 9: { + message.connectionType = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -10488,30 +27397,30 @@ }; /** - * Decodes a PscConnection message from the specified reader or buffer, length delimited. + * Decodes a PscAutoConnection message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @memberof google.cloud.redis.cluster.v1beta1.PscAutoConnection * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.redis.cluster.v1beta1.PscConnection} PscConnection + * @returns {google.cloud.redis.cluster.v1beta1.PscAutoConnection} PscAutoConnection * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PscConnection.decodeDelimited = function decodeDelimited(reader) { + PscAutoConnection.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a PscConnection message. + * Verifies a PscAutoConnection message. * @function verify - * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @memberof google.cloud.redis.cluster.v1beta1.PscAutoConnection * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PscConnection.verify = function verify(message) { + PscAutoConnection.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; if (message.pscConnectionId != null && message.hasOwnProperty("pscConnectionId")) @@ -10529,21 +27438,43 @@ if (message.network != null && message.hasOwnProperty("network")) if (!$util.isString(message.network)) return "network: string expected"; + if (message.serviceAttachment != null && message.hasOwnProperty("serviceAttachment")) + if (!$util.isString(message.serviceAttachment)) + return "serviceAttachment: string expected"; + if (message.pscConnectionStatus != null && message.hasOwnProperty("pscConnectionStatus")) + switch (message.pscConnectionStatus) { + default: + return "pscConnectionStatus: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.connectionType != null && message.hasOwnProperty("connectionType")) + switch (message.connectionType) { + default: + return "connectionType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } return null; }; /** - * Creates a PscConnection message from a plain object. Also converts values to their respective internal types. + * Creates a PscAutoConnection message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @memberof google.cloud.redis.cluster.v1beta1.PscAutoConnection * @static * @param {Object.} object Plain object - * @returns {google.cloud.redis.cluster.v1beta1.PscConnection} PscConnection + * @returns {google.cloud.redis.cluster.v1beta1.PscAutoConnection} PscAutoConnection */ - PscConnection.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.redis.cluster.v1beta1.PscConnection) + PscAutoConnection.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.PscAutoConnection) return object; - var message = new $root.google.cloud.redis.cluster.v1beta1.PscConnection(); + var message = new $root.google.cloud.redis.cluster.v1beta1.PscAutoConnection(); if (object.pscConnectionId != null) message.pscConnectionId = String(object.pscConnectionId); if (object.address != null) @@ -10554,19 +27485,65 @@ message.projectId = String(object.projectId); if (object.network != null) message.network = String(object.network); + if (object.serviceAttachment != null) + message.serviceAttachment = String(object.serviceAttachment); + switch (object.pscConnectionStatus) { + default: + if (typeof object.pscConnectionStatus === "number") { + message.pscConnectionStatus = object.pscConnectionStatus; + break; + } + break; + case "PSC_CONNECTION_STATUS_UNSPECIFIED": + case 0: + message.pscConnectionStatus = 0; + break; + case "PSC_CONNECTION_STATUS_ACTIVE": + case 1: + message.pscConnectionStatus = 1; + break; + case "PSC_CONNECTION_STATUS_NOT_FOUND": + case 2: + message.pscConnectionStatus = 2; + break; + } + switch (object.connectionType) { + default: + if (typeof object.connectionType === "number") { + message.connectionType = object.connectionType; + break; + } + break; + case "CONNECTION_TYPE_UNSPECIFIED": + case 0: + message.connectionType = 0; + break; + case "CONNECTION_TYPE_DISCOVERY": + case 1: + message.connectionType = 1; + break; + case "CONNECTION_TYPE_PRIMARY": + case 2: + message.connectionType = 2; + break; + case "CONNECTION_TYPE_READER": + case 3: + message.connectionType = 3; + break; + } return message; }; /** - * Creates a plain object from a PscConnection message. Also converts values to other types if specified. + * Creates a plain object from a PscAutoConnection message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @memberof google.cloud.redis.cluster.v1beta1.PscAutoConnection * @static - * @param {google.cloud.redis.cluster.v1beta1.PscConnection} message PscConnection + * @param {google.cloud.redis.cluster.v1beta1.PscAutoConnection} message PscAutoConnection * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PscConnection.toObject = function toObject(message, options) { + PscAutoConnection.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; @@ -10576,6 +27553,9 @@ object.forwardingRule = ""; object.projectId = ""; object.network = ""; + object.serviceAttachment = ""; + object.pscConnectionStatus = options.enums === String ? "PSC_CONNECTION_STATUS_UNSPECIFIED" : 0; + object.connectionType = options.enums === String ? "CONNECTION_TYPE_UNSPECIFIED" : 0; } if (message.pscConnectionId != null && message.hasOwnProperty("pscConnectionId")) object.pscConnectionId = message.pscConnectionId; @@ -10587,36 +27567,42 @@ object.projectId = message.projectId; if (message.network != null && message.hasOwnProperty("network")) object.network = message.network; + if (message.serviceAttachment != null && message.hasOwnProperty("serviceAttachment")) + object.serviceAttachment = message.serviceAttachment; + if (message.pscConnectionStatus != null && message.hasOwnProperty("pscConnectionStatus")) + object.pscConnectionStatus = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.PscConnectionStatus[message.pscConnectionStatus] === undefined ? message.pscConnectionStatus : $root.google.cloud.redis.cluster.v1beta1.PscConnectionStatus[message.pscConnectionStatus] : message.pscConnectionStatus; + if (message.connectionType != null && message.hasOwnProperty("connectionType")) + object.connectionType = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.ConnectionType[message.connectionType] === undefined ? message.connectionType : $root.google.cloud.redis.cluster.v1beta1.ConnectionType[message.connectionType] : message.connectionType; return object; }; /** - * Converts this PscConnection to JSON. + * Converts this PscAutoConnection to JSON. * @function toJSON - * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @memberof google.cloud.redis.cluster.v1beta1.PscAutoConnection * @instance * @returns {Object.} JSON object */ - PscConnection.prototype.toJSON = function toJSON() { + PscAutoConnection.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for PscConnection + * Gets the default type url for PscAutoConnection * @function getTypeUrl - * @memberof google.cloud.redis.cluster.v1beta1.PscConnection + * @memberof google.cloud.redis.cluster.v1beta1.PscAutoConnection * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - PscConnection.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + PscAutoConnection.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.PscConnection"; + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.PscAutoConnection"; }; - return PscConnection; + return PscAutoConnection; })(); v1beta1.OperationMetadata = (function() { @@ -12775,6 +29761,718 @@ return ZoneDistributionConfig; })(); + v1beta1.RescheduleClusterMaintenanceRequest = (function() { + + /** + * Properties of a RescheduleClusterMaintenanceRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IRescheduleClusterMaintenanceRequest + * @property {string|null} [name] RescheduleClusterMaintenanceRequest name + * @property {google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest.RescheduleType|null} [rescheduleType] RescheduleClusterMaintenanceRequest rescheduleType + * @property {google.protobuf.ITimestamp|null} [scheduleTime] RescheduleClusterMaintenanceRequest scheduleTime + */ + + /** + * Constructs a new RescheduleClusterMaintenanceRequest. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents a RescheduleClusterMaintenanceRequest. + * @implements IRescheduleClusterMaintenanceRequest + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IRescheduleClusterMaintenanceRequest=} [properties] Properties to set + */ + function RescheduleClusterMaintenanceRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * RescheduleClusterMaintenanceRequest name. + * @member {string} name + * @memberof google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest + * @instance + */ + RescheduleClusterMaintenanceRequest.prototype.name = ""; + + /** + * RescheduleClusterMaintenanceRequest rescheduleType. + * @member {google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest.RescheduleType} rescheduleType + * @memberof google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest + * @instance + */ + RescheduleClusterMaintenanceRequest.prototype.rescheduleType = 0; + + /** + * RescheduleClusterMaintenanceRequest scheduleTime. + * @member {google.protobuf.ITimestamp|null|undefined} scheduleTime + * @memberof google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest + * @instance + */ + RescheduleClusterMaintenanceRequest.prototype.scheduleTime = null; + + /** + * Creates a new RescheduleClusterMaintenanceRequest instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IRescheduleClusterMaintenanceRequest=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest} RescheduleClusterMaintenanceRequest instance + */ + RescheduleClusterMaintenanceRequest.create = function create(properties) { + return new RescheduleClusterMaintenanceRequest(properties); + }; + + /** + * Encodes the specified RescheduleClusterMaintenanceRequest message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IRescheduleClusterMaintenanceRequest} message RescheduleClusterMaintenanceRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RescheduleClusterMaintenanceRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.rescheduleType != null && Object.hasOwnProperty.call(message, "rescheduleType")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.rescheduleType); + if (message.scheduleTime != null && Object.hasOwnProperty.call(message, "scheduleTime")) + $root.google.protobuf.Timestamp.encode(message.scheduleTime, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified RescheduleClusterMaintenanceRequest message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.IRescheduleClusterMaintenanceRequest} message RescheduleClusterMaintenanceRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RescheduleClusterMaintenanceRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RescheduleClusterMaintenanceRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest} RescheduleClusterMaintenanceRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RescheduleClusterMaintenanceRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.name = reader.string(); + break; + } + case 2: { + message.rescheduleType = reader.int32(); + break; + } + case 3: { + message.scheduleTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RescheduleClusterMaintenanceRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest} RescheduleClusterMaintenanceRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RescheduleClusterMaintenanceRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RescheduleClusterMaintenanceRequest message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RescheduleClusterMaintenanceRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.rescheduleType != null && message.hasOwnProperty("rescheduleType")) + switch (message.rescheduleType) { + default: + return "rescheduleType: enum value expected"; + case 0: + case 1: + case 3: + break; + } + if (message.scheduleTime != null && message.hasOwnProperty("scheduleTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.scheduleTime); + if (error) + return "scheduleTime." + error; + } + return null; + }; + + /** + * Creates a RescheduleClusterMaintenanceRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest} RescheduleClusterMaintenanceRequest + */ + RescheduleClusterMaintenanceRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest(); + if (object.name != null) + message.name = String(object.name); + switch (object.rescheduleType) { + default: + if (typeof object.rescheduleType === "number") { + message.rescheduleType = object.rescheduleType; + break; + } + break; + case "RESCHEDULE_TYPE_UNSPECIFIED": + case 0: + message.rescheduleType = 0; + break; + case "IMMEDIATE": + case 1: + message.rescheduleType = 1; + break; + case "SPECIFIC_TIME": + case 3: + message.rescheduleType = 3; + break; + } + if (object.scheduleTime != null) { + if (typeof object.scheduleTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest.scheduleTime: object expected"); + message.scheduleTime = $root.google.protobuf.Timestamp.fromObject(object.scheduleTime); + } + return message; + }; + + /** + * Creates a plain object from a RescheduleClusterMaintenanceRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest + * @static + * @param {google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest} message RescheduleClusterMaintenanceRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RescheduleClusterMaintenanceRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.rescheduleType = options.enums === String ? "RESCHEDULE_TYPE_UNSPECIFIED" : 0; + object.scheduleTime = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.rescheduleType != null && message.hasOwnProperty("rescheduleType")) + object.rescheduleType = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest.RescheduleType[message.rescheduleType] === undefined ? message.rescheduleType : $root.google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest.RescheduleType[message.rescheduleType] : message.rescheduleType; + if (message.scheduleTime != null && message.hasOwnProperty("scheduleTime")) + object.scheduleTime = $root.google.protobuf.Timestamp.toObject(message.scheduleTime, options); + return object; + }; + + /** + * Converts this RescheduleClusterMaintenanceRequest to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest + * @instance + * @returns {Object.} JSON object + */ + RescheduleClusterMaintenanceRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for RescheduleClusterMaintenanceRequest + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + RescheduleClusterMaintenanceRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest"; + }; + + /** + * RescheduleType enum. + * @name google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest.RescheduleType + * @enum {number} + * @property {number} RESCHEDULE_TYPE_UNSPECIFIED=0 RESCHEDULE_TYPE_UNSPECIFIED value + * @property {number} IMMEDIATE=1 IMMEDIATE value + * @property {number} SPECIFIC_TIME=3 SPECIFIC_TIME value + */ + RescheduleClusterMaintenanceRequest.RescheduleType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "RESCHEDULE_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "IMMEDIATE"] = 1; + values[valuesById[3] = "SPECIFIC_TIME"] = 3; + return values; + })(); + + return RescheduleClusterMaintenanceRequest; + })(); + + v1beta1.EncryptionInfo = (function() { + + /** + * Properties of an EncryptionInfo. + * @memberof google.cloud.redis.cluster.v1beta1 + * @interface IEncryptionInfo + * @property {google.cloud.redis.cluster.v1beta1.EncryptionInfo.Type|null} [encryptionType] EncryptionInfo encryptionType + * @property {Array.|null} [kmsKeyVersions] EncryptionInfo kmsKeyVersions + * @property {google.cloud.redis.cluster.v1beta1.EncryptionInfo.KmsKeyState|null} [kmsKeyPrimaryState] EncryptionInfo kmsKeyPrimaryState + * @property {google.protobuf.ITimestamp|null} [lastUpdateTime] EncryptionInfo lastUpdateTime + */ + + /** + * Constructs a new EncryptionInfo. + * @memberof google.cloud.redis.cluster.v1beta1 + * @classdesc Represents an EncryptionInfo. + * @implements IEncryptionInfo + * @constructor + * @param {google.cloud.redis.cluster.v1beta1.IEncryptionInfo=} [properties] Properties to set + */ + function EncryptionInfo(properties) { + this.kmsKeyVersions = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * EncryptionInfo encryptionType. + * @member {google.cloud.redis.cluster.v1beta1.EncryptionInfo.Type} encryptionType + * @memberof google.cloud.redis.cluster.v1beta1.EncryptionInfo + * @instance + */ + EncryptionInfo.prototype.encryptionType = 0; + + /** + * EncryptionInfo kmsKeyVersions. + * @member {Array.} kmsKeyVersions + * @memberof google.cloud.redis.cluster.v1beta1.EncryptionInfo + * @instance + */ + EncryptionInfo.prototype.kmsKeyVersions = $util.emptyArray; + + /** + * EncryptionInfo kmsKeyPrimaryState. + * @member {google.cloud.redis.cluster.v1beta1.EncryptionInfo.KmsKeyState} kmsKeyPrimaryState + * @memberof google.cloud.redis.cluster.v1beta1.EncryptionInfo + * @instance + */ + EncryptionInfo.prototype.kmsKeyPrimaryState = 0; + + /** + * EncryptionInfo lastUpdateTime. + * @member {google.protobuf.ITimestamp|null|undefined} lastUpdateTime + * @memberof google.cloud.redis.cluster.v1beta1.EncryptionInfo + * @instance + */ + EncryptionInfo.prototype.lastUpdateTime = null; + + /** + * Creates a new EncryptionInfo instance using the specified properties. + * @function create + * @memberof google.cloud.redis.cluster.v1beta1.EncryptionInfo + * @static + * @param {google.cloud.redis.cluster.v1beta1.IEncryptionInfo=} [properties] Properties to set + * @returns {google.cloud.redis.cluster.v1beta1.EncryptionInfo} EncryptionInfo instance + */ + EncryptionInfo.create = function create(properties) { + return new EncryptionInfo(properties); + }; + + /** + * Encodes the specified EncryptionInfo message. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.EncryptionInfo.verify|verify} messages. + * @function encode + * @memberof google.cloud.redis.cluster.v1beta1.EncryptionInfo + * @static + * @param {google.cloud.redis.cluster.v1beta1.IEncryptionInfo} message EncryptionInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EncryptionInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.encryptionType != null && Object.hasOwnProperty.call(message, "encryptionType")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.encryptionType); + if (message.kmsKeyVersions != null && message.kmsKeyVersions.length) + for (var i = 0; i < message.kmsKeyVersions.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.kmsKeyVersions[i]); + if (message.kmsKeyPrimaryState != null && Object.hasOwnProperty.call(message, "kmsKeyPrimaryState")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.kmsKeyPrimaryState); + if (message.lastUpdateTime != null && Object.hasOwnProperty.call(message, "lastUpdateTime")) + $root.google.protobuf.Timestamp.encode(message.lastUpdateTime, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified EncryptionInfo message, length delimited. Does not implicitly {@link google.cloud.redis.cluster.v1beta1.EncryptionInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.EncryptionInfo + * @static + * @param {google.cloud.redis.cluster.v1beta1.IEncryptionInfo} message EncryptionInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EncryptionInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an EncryptionInfo message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.redis.cluster.v1beta1.EncryptionInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.redis.cluster.v1beta1.EncryptionInfo} EncryptionInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EncryptionInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.redis.cluster.v1beta1.EncryptionInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.encryptionType = reader.int32(); + break; + } + case 2: { + if (!(message.kmsKeyVersions && message.kmsKeyVersions.length)) + message.kmsKeyVersions = []; + message.kmsKeyVersions.push(reader.string()); + break; + } + case 3: { + message.kmsKeyPrimaryState = reader.int32(); + break; + } + case 4: { + message.lastUpdateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an EncryptionInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.redis.cluster.v1beta1.EncryptionInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.redis.cluster.v1beta1.EncryptionInfo} EncryptionInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EncryptionInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an EncryptionInfo message. + * @function verify + * @memberof google.cloud.redis.cluster.v1beta1.EncryptionInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EncryptionInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.encryptionType != null && message.hasOwnProperty("encryptionType")) + switch (message.encryptionType) { + default: + return "encryptionType: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.kmsKeyVersions != null && message.hasOwnProperty("kmsKeyVersions")) { + if (!Array.isArray(message.kmsKeyVersions)) + return "kmsKeyVersions: array expected"; + for (var i = 0; i < message.kmsKeyVersions.length; ++i) + if (!$util.isString(message.kmsKeyVersions[i])) + return "kmsKeyVersions: string[] expected"; + } + if (message.kmsKeyPrimaryState != null && message.hasOwnProperty("kmsKeyPrimaryState")) + switch (message.kmsKeyPrimaryState) { + default: + return "kmsKeyPrimaryState: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + break; + } + if (message.lastUpdateTime != null && message.hasOwnProperty("lastUpdateTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.lastUpdateTime); + if (error) + return "lastUpdateTime." + error; + } + return null; + }; + + /** + * Creates an EncryptionInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.redis.cluster.v1beta1.EncryptionInfo + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.redis.cluster.v1beta1.EncryptionInfo} EncryptionInfo + */ + EncryptionInfo.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.redis.cluster.v1beta1.EncryptionInfo) + return object; + var message = new $root.google.cloud.redis.cluster.v1beta1.EncryptionInfo(); + switch (object.encryptionType) { + default: + if (typeof object.encryptionType === "number") { + message.encryptionType = object.encryptionType; + break; + } + break; + case "TYPE_UNSPECIFIED": + case 0: + message.encryptionType = 0; + break; + case "GOOGLE_DEFAULT_ENCRYPTION": + case 1: + message.encryptionType = 1; + break; + case "CUSTOMER_MANAGED_ENCRYPTION": + case 2: + message.encryptionType = 2; + break; + } + if (object.kmsKeyVersions) { + if (!Array.isArray(object.kmsKeyVersions)) + throw TypeError(".google.cloud.redis.cluster.v1beta1.EncryptionInfo.kmsKeyVersions: array expected"); + message.kmsKeyVersions = []; + for (var i = 0; i < object.kmsKeyVersions.length; ++i) + message.kmsKeyVersions[i] = String(object.kmsKeyVersions[i]); + } + switch (object.kmsKeyPrimaryState) { + default: + if (typeof object.kmsKeyPrimaryState === "number") { + message.kmsKeyPrimaryState = object.kmsKeyPrimaryState; + break; + } + break; + case "KMS_KEY_STATE_UNSPECIFIED": + case 0: + message.kmsKeyPrimaryState = 0; + break; + case "ENABLED": + case 1: + message.kmsKeyPrimaryState = 1; + break; + case "PERMISSION_DENIED": + case 2: + message.kmsKeyPrimaryState = 2; + break; + case "DISABLED": + case 3: + message.kmsKeyPrimaryState = 3; + break; + case "DESTROYED": + case 4: + message.kmsKeyPrimaryState = 4; + break; + case "DESTROY_SCHEDULED": + case 5: + message.kmsKeyPrimaryState = 5; + break; + case "EKM_KEY_UNREACHABLE_DETECTED": + case 6: + message.kmsKeyPrimaryState = 6; + break; + case "BILLING_DISABLED": + case 7: + message.kmsKeyPrimaryState = 7; + break; + case "UNKNOWN_FAILURE": + case 8: + message.kmsKeyPrimaryState = 8; + break; + } + if (object.lastUpdateTime != null) { + if (typeof object.lastUpdateTime !== "object") + throw TypeError(".google.cloud.redis.cluster.v1beta1.EncryptionInfo.lastUpdateTime: object expected"); + message.lastUpdateTime = $root.google.protobuf.Timestamp.fromObject(object.lastUpdateTime); + } + return message; + }; + + /** + * Creates a plain object from an EncryptionInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.redis.cluster.v1beta1.EncryptionInfo + * @static + * @param {google.cloud.redis.cluster.v1beta1.EncryptionInfo} message EncryptionInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EncryptionInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.kmsKeyVersions = []; + if (options.defaults) { + object.encryptionType = options.enums === String ? "TYPE_UNSPECIFIED" : 0; + object.kmsKeyPrimaryState = options.enums === String ? "KMS_KEY_STATE_UNSPECIFIED" : 0; + object.lastUpdateTime = null; + } + if (message.encryptionType != null && message.hasOwnProperty("encryptionType")) + object.encryptionType = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.EncryptionInfo.Type[message.encryptionType] === undefined ? message.encryptionType : $root.google.cloud.redis.cluster.v1beta1.EncryptionInfo.Type[message.encryptionType] : message.encryptionType; + if (message.kmsKeyVersions && message.kmsKeyVersions.length) { + object.kmsKeyVersions = []; + for (var j = 0; j < message.kmsKeyVersions.length; ++j) + object.kmsKeyVersions[j] = message.kmsKeyVersions[j]; + } + if (message.kmsKeyPrimaryState != null && message.hasOwnProperty("kmsKeyPrimaryState")) + object.kmsKeyPrimaryState = options.enums === String ? $root.google.cloud.redis.cluster.v1beta1.EncryptionInfo.KmsKeyState[message.kmsKeyPrimaryState] === undefined ? message.kmsKeyPrimaryState : $root.google.cloud.redis.cluster.v1beta1.EncryptionInfo.KmsKeyState[message.kmsKeyPrimaryState] : message.kmsKeyPrimaryState; + if (message.lastUpdateTime != null && message.hasOwnProperty("lastUpdateTime")) + object.lastUpdateTime = $root.google.protobuf.Timestamp.toObject(message.lastUpdateTime, options); + return object; + }; + + /** + * Converts this EncryptionInfo to JSON. + * @function toJSON + * @memberof google.cloud.redis.cluster.v1beta1.EncryptionInfo + * @instance + * @returns {Object.} JSON object + */ + EncryptionInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for EncryptionInfo + * @function getTypeUrl + * @memberof google.cloud.redis.cluster.v1beta1.EncryptionInfo + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + EncryptionInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.redis.cluster.v1beta1.EncryptionInfo"; + }; + + /** + * Type enum. + * @name google.cloud.redis.cluster.v1beta1.EncryptionInfo.Type + * @enum {number} + * @property {number} TYPE_UNSPECIFIED=0 TYPE_UNSPECIFIED value + * @property {number} GOOGLE_DEFAULT_ENCRYPTION=1 GOOGLE_DEFAULT_ENCRYPTION value + * @property {number} CUSTOMER_MANAGED_ENCRYPTION=2 CUSTOMER_MANAGED_ENCRYPTION value + */ + EncryptionInfo.Type = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "GOOGLE_DEFAULT_ENCRYPTION"] = 1; + values[valuesById[2] = "CUSTOMER_MANAGED_ENCRYPTION"] = 2; + return values; + })(); + + /** + * KmsKeyState enum. + * @name google.cloud.redis.cluster.v1beta1.EncryptionInfo.KmsKeyState + * @enum {number} + * @property {number} KMS_KEY_STATE_UNSPECIFIED=0 KMS_KEY_STATE_UNSPECIFIED value + * @property {number} ENABLED=1 ENABLED value + * @property {number} PERMISSION_DENIED=2 PERMISSION_DENIED value + * @property {number} DISABLED=3 DISABLED value + * @property {number} DESTROYED=4 DESTROYED value + * @property {number} DESTROY_SCHEDULED=5 DESTROY_SCHEDULED value + * @property {number} EKM_KEY_UNREACHABLE_DETECTED=6 EKM_KEY_UNREACHABLE_DETECTED value + * @property {number} BILLING_DISABLED=7 BILLING_DISABLED value + * @property {number} UNKNOWN_FAILURE=8 UNKNOWN_FAILURE value + */ + EncryptionInfo.KmsKeyState = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "KMS_KEY_STATE_UNSPECIFIED"] = 0; + values[valuesById[1] = "ENABLED"] = 1; + values[valuesById[2] = "PERMISSION_DENIED"] = 2; + values[valuesById[3] = "DISABLED"] = 3; + values[valuesById[4] = "DESTROYED"] = 4; + values[valuesById[5] = "DESTROY_SCHEDULED"] = 5; + values[valuesById[6] = "EKM_KEY_UNREACHABLE_DETECTED"] = 6; + values[valuesById[7] = "BILLING_DISABLED"] = 7; + values[valuesById[8] = "UNKNOWN_FAILURE"] = 8; + return values; + })(); + + return EncryptionInfo; + })(); + return v1beta1; })(); @@ -17716,6 +35414,263 @@ return values; })(); + api.FieldInfo = (function() { + + /** + * Properties of a FieldInfo. + * @memberof google.api + * @interface IFieldInfo + * @property {google.api.FieldInfo.Format|null} [format] FieldInfo format + */ + + /** + * Constructs a new FieldInfo. + * @memberof google.api + * @classdesc Represents a FieldInfo. + * @implements IFieldInfo + * @constructor + * @param {google.api.IFieldInfo=} [properties] Properties to set + */ + function FieldInfo(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * FieldInfo format. + * @member {google.api.FieldInfo.Format} format + * @memberof google.api.FieldInfo + * @instance + */ + FieldInfo.prototype.format = 0; + + /** + * Creates a new FieldInfo instance using the specified properties. + * @function create + * @memberof google.api.FieldInfo + * @static + * @param {google.api.IFieldInfo=} [properties] Properties to set + * @returns {google.api.FieldInfo} FieldInfo instance + */ + FieldInfo.create = function create(properties) { + return new FieldInfo(properties); + }; + + /** + * Encodes the specified FieldInfo message. Does not implicitly {@link google.api.FieldInfo.verify|verify} messages. + * @function encode + * @memberof google.api.FieldInfo + * @static + * @param {google.api.IFieldInfo} message FieldInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FieldInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.format != null && Object.hasOwnProperty.call(message, "format")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.format); + return writer; + }; + + /** + * Encodes the specified FieldInfo message, length delimited. Does not implicitly {@link google.api.FieldInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof google.api.FieldInfo + * @static + * @param {google.api.IFieldInfo} message FieldInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FieldInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FieldInfo message from the specified reader or buffer. + * @function decode + * @memberof google.api.FieldInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.api.FieldInfo} FieldInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FieldInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.FieldInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.format = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a FieldInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.api.FieldInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.api.FieldInfo} FieldInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FieldInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FieldInfo message. + * @function verify + * @memberof google.api.FieldInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FieldInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.format != null && message.hasOwnProperty("format")) + switch (message.format) { + default: + return "format: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + break; + } + return null; + }; + + /** + * Creates a FieldInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.api.FieldInfo + * @static + * @param {Object.} object Plain object + * @returns {google.api.FieldInfo} FieldInfo + */ + FieldInfo.fromObject = function fromObject(object) { + if (object instanceof $root.google.api.FieldInfo) + return object; + var message = new $root.google.api.FieldInfo(); + switch (object.format) { + default: + if (typeof object.format === "number") { + message.format = object.format; + break; + } + break; + case "FORMAT_UNSPECIFIED": + case 0: + message.format = 0; + break; + case "UUID4": + case 1: + message.format = 1; + break; + case "IPV4": + case 2: + message.format = 2; + break; + case "IPV6": + case 3: + message.format = 3; + break; + case "IPV4_OR_IPV6": + case 4: + message.format = 4; + break; + } + return message; + }; + + /** + * Creates a plain object from a FieldInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof google.api.FieldInfo + * @static + * @param {google.api.FieldInfo} message FieldInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FieldInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.format = options.enums === String ? "FORMAT_UNSPECIFIED" : 0; + if (message.format != null && message.hasOwnProperty("format")) + object.format = options.enums === String ? $root.google.api.FieldInfo.Format[message.format] === undefined ? message.format : $root.google.api.FieldInfo.Format[message.format] : message.format; + return object; + }; + + /** + * Converts this FieldInfo to JSON. + * @function toJSON + * @memberof google.api.FieldInfo + * @instance + * @returns {Object.} JSON object + */ + FieldInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for FieldInfo + * @function getTypeUrl + * @memberof google.api.FieldInfo + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + FieldInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.api.FieldInfo"; + }; + + /** + * Format enum. + * @name google.api.FieldInfo.Format + * @enum {number} + * @property {number} FORMAT_UNSPECIFIED=0 FORMAT_UNSPECIFIED value + * @property {number} UUID4=1 UUID4 value + * @property {number} IPV4=2 IPV4 value + * @property {number} IPV6=3 IPV6 value + * @property {number} IPV4_OR_IPV6=4 IPV4_OR_IPV6 value + */ + FieldInfo.Format = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "FORMAT_UNSPECIFIED"] = 0; + values[valuesById[1] = "UUID4"] = 1; + values[valuesById[2] = "IPV4"] = 2; + values[valuesById[3] = "IPV6"] = 3; + values[valuesById[4] = "IPV4_OR_IPV6"] = 4; + return values; + })(); + + return FieldInfo; + })(); + api.ResourceDescriptor = (function() { /** @@ -24573,6 +42528,7 @@ * @property {google.protobuf.IFeatureSet|null} [features] FieldOptions features * @property {Array.|null} [uninterpretedOption] FieldOptions uninterpretedOption * @property {Array.|null} [".google.api.fieldBehavior"] FieldOptions .google.api.fieldBehavior + * @property {google.api.IFieldInfo|null} [".google.api.fieldInfo"] FieldOptions .google.api.fieldInfo * @property {google.api.IResourceReference|null} [".google.api.resourceReference"] FieldOptions .google.api.resourceReference */ @@ -24707,6 +42663,14 @@ */ FieldOptions.prototype[".google.api.fieldBehavior"] = $util.emptyArray; + /** + * FieldOptions .google.api.fieldInfo. + * @member {google.api.IFieldInfo|null|undefined} .google.api.fieldInfo + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype[".google.api.fieldInfo"] = null; + /** * FieldOptions .google.api.resourceReference. * @member {google.api.IResourceReference|null|undefined} .google.api.resourceReference @@ -24776,6 +42740,8 @@ } if (message[".google.api.resourceReference"] != null && Object.hasOwnProperty.call(message, ".google.api.resourceReference")) $root.google.api.ResourceReference.encode(message[".google.api.resourceReference"], writer.uint32(/* id 1055, wireType 2 =*/8442).fork()).ldelim(); + if (message[".google.api.fieldInfo"] != null && Object.hasOwnProperty.call(message, ".google.api.fieldInfo")) + $root.google.api.FieldInfo.encode(message[".google.api.fieldInfo"], writer.uint32(/* id 291403980, wireType 2 =*/2331231842).fork()).ldelim(); return writer; }; @@ -24884,6 +42850,10 @@ message[".google.api.fieldBehavior"].push(reader.int32()); break; } + case 291403980: { + message[".google.api.fieldInfo"] = $root.google.api.FieldInfo.decode(reader, reader.uint32()); + break; + } case 1055: { message[".google.api.resourceReference"] = $root.google.api.ResourceReference.decode(reader, reader.uint32()); break; @@ -25030,6 +43000,11 @@ break; } } + if (message[".google.api.fieldInfo"] != null && message.hasOwnProperty(".google.api.fieldInfo")) { + var error = $root.google.api.FieldInfo.verify(message[".google.api.fieldInfo"]); + if (error) + return ".google.api.fieldInfo." + error; + } if (message[".google.api.resourceReference"] != null && message.hasOwnProperty(".google.api.resourceReference")) { var error = $root.google.api.ResourceReference.verify(message[".google.api.resourceReference"]); if (error) @@ -25249,6 +43224,11 @@ break; } } + if (object[".google.api.fieldInfo"] != null) { + if (typeof object[".google.api.fieldInfo"] !== "object") + throw TypeError(".google.protobuf.FieldOptions..google.api.fieldInfo: object expected"); + message[".google.api.fieldInfo"] = $root.google.api.FieldInfo.fromObject(object[".google.api.fieldInfo"]); + } if (object[".google.api.resourceReference"] != null) { if (typeof object[".google.api.resourceReference"] !== "object") throw TypeError(".google.protobuf.FieldOptions..google.api.resourceReference: object expected"); @@ -25288,6 +43268,7 @@ object.retention = options.enums === String ? "RETENTION_UNKNOWN" : 0; object.features = null; object[".google.api.resourceReference"] = null; + object[".google.api.fieldInfo"] = null; } if (message.ctype != null && message.hasOwnProperty("ctype")) object.ctype = options.enums === String ? $root.google.protobuf.FieldOptions.CType[message.ctype] === undefined ? message.ctype : $root.google.protobuf.FieldOptions.CType[message.ctype] : message.ctype; @@ -25331,6 +43312,8 @@ } if (message[".google.api.resourceReference"] != null && message.hasOwnProperty(".google.api.resourceReference")) object[".google.api.resourceReference"] = $root.google.api.ResourceReference.toObject(message[".google.api.resourceReference"], options); + if (message[".google.api.fieldInfo"] != null && message.hasOwnProperty(".google.api.fieldInfo")) + object[".google.api.fieldInfo"] = $root.google.api.FieldInfo.toObject(message[".google.api.fieldInfo"], options); return object; }; @@ -33966,6 +51949,317 @@ return rpc; })(); + google.type = (function() { + + /** + * Namespace type. + * @memberof google + * @namespace + */ + var type = {}; + + /** + * DayOfWeek enum. + * @name google.type.DayOfWeek + * @enum {number} + * @property {number} DAY_OF_WEEK_UNSPECIFIED=0 DAY_OF_WEEK_UNSPECIFIED value + * @property {number} MONDAY=1 MONDAY value + * @property {number} TUESDAY=2 TUESDAY value + * @property {number} WEDNESDAY=3 WEDNESDAY value + * @property {number} THURSDAY=4 THURSDAY value + * @property {number} FRIDAY=5 FRIDAY value + * @property {number} SATURDAY=6 SATURDAY value + * @property {number} SUNDAY=7 SUNDAY value + */ + type.DayOfWeek = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "DAY_OF_WEEK_UNSPECIFIED"] = 0; + values[valuesById[1] = "MONDAY"] = 1; + values[valuesById[2] = "TUESDAY"] = 2; + values[valuesById[3] = "WEDNESDAY"] = 3; + values[valuesById[4] = "THURSDAY"] = 4; + values[valuesById[5] = "FRIDAY"] = 5; + values[valuesById[6] = "SATURDAY"] = 6; + values[valuesById[7] = "SUNDAY"] = 7; + return values; + })(); + + type.TimeOfDay = (function() { + + /** + * Properties of a TimeOfDay. + * @memberof google.type + * @interface ITimeOfDay + * @property {number|null} [hours] TimeOfDay hours + * @property {number|null} [minutes] TimeOfDay minutes + * @property {number|null} [seconds] TimeOfDay seconds + * @property {number|null} [nanos] TimeOfDay nanos + */ + + /** + * Constructs a new TimeOfDay. + * @memberof google.type + * @classdesc Represents a TimeOfDay. + * @implements ITimeOfDay + * @constructor + * @param {google.type.ITimeOfDay=} [properties] Properties to set + */ + function TimeOfDay(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * TimeOfDay hours. + * @member {number} hours + * @memberof google.type.TimeOfDay + * @instance + */ + TimeOfDay.prototype.hours = 0; + + /** + * TimeOfDay minutes. + * @member {number} minutes + * @memberof google.type.TimeOfDay + * @instance + */ + TimeOfDay.prototype.minutes = 0; + + /** + * TimeOfDay seconds. + * @member {number} seconds + * @memberof google.type.TimeOfDay + * @instance + */ + TimeOfDay.prototype.seconds = 0; + + /** + * TimeOfDay nanos. + * @member {number} nanos + * @memberof google.type.TimeOfDay + * @instance + */ + TimeOfDay.prototype.nanos = 0; + + /** + * Creates a new TimeOfDay instance using the specified properties. + * @function create + * @memberof google.type.TimeOfDay + * @static + * @param {google.type.ITimeOfDay=} [properties] Properties to set + * @returns {google.type.TimeOfDay} TimeOfDay instance + */ + TimeOfDay.create = function create(properties) { + return new TimeOfDay(properties); + }; + + /** + * Encodes the specified TimeOfDay message. Does not implicitly {@link google.type.TimeOfDay.verify|verify} messages. + * @function encode + * @memberof google.type.TimeOfDay + * @static + * @param {google.type.ITimeOfDay} message TimeOfDay message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TimeOfDay.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.hours != null && Object.hasOwnProperty.call(message, "hours")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.hours); + if (message.minutes != null && Object.hasOwnProperty.call(message, "minutes")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.minutes); + if (message.seconds != null && Object.hasOwnProperty.call(message, "seconds")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.seconds); + if (message.nanos != null && Object.hasOwnProperty.call(message, "nanos")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.nanos); + return writer; + }; + + /** + * Encodes the specified TimeOfDay message, length delimited. Does not implicitly {@link google.type.TimeOfDay.verify|verify} messages. + * @function encodeDelimited + * @memberof google.type.TimeOfDay + * @static + * @param {google.type.ITimeOfDay} message TimeOfDay message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TimeOfDay.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a TimeOfDay message from the specified reader or buffer. + * @function decode + * @memberof google.type.TimeOfDay + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.type.TimeOfDay} TimeOfDay + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TimeOfDay.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.type.TimeOfDay(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.hours = reader.int32(); + break; + } + case 2: { + message.minutes = reader.int32(); + break; + } + case 3: { + message.seconds = reader.int32(); + break; + } + case 4: { + message.nanos = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a TimeOfDay message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.type.TimeOfDay + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.type.TimeOfDay} TimeOfDay + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TimeOfDay.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a TimeOfDay message. + * @function verify + * @memberof google.type.TimeOfDay + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + TimeOfDay.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.hours != null && message.hasOwnProperty("hours")) + if (!$util.isInteger(message.hours)) + return "hours: integer expected"; + if (message.minutes != null && message.hasOwnProperty("minutes")) + if (!$util.isInteger(message.minutes)) + return "minutes: integer expected"; + if (message.seconds != null && message.hasOwnProperty("seconds")) + if (!$util.isInteger(message.seconds)) + return "seconds: integer expected"; + if (message.nanos != null && message.hasOwnProperty("nanos")) + if (!$util.isInteger(message.nanos)) + return "nanos: integer expected"; + return null; + }; + + /** + * Creates a TimeOfDay message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.type.TimeOfDay + * @static + * @param {Object.} object Plain object + * @returns {google.type.TimeOfDay} TimeOfDay + */ + TimeOfDay.fromObject = function fromObject(object) { + if (object instanceof $root.google.type.TimeOfDay) + return object; + var message = new $root.google.type.TimeOfDay(); + if (object.hours != null) + message.hours = object.hours | 0; + if (object.minutes != null) + message.minutes = object.minutes | 0; + if (object.seconds != null) + message.seconds = object.seconds | 0; + if (object.nanos != null) + message.nanos = object.nanos | 0; + return message; + }; + + /** + * Creates a plain object from a TimeOfDay message. Also converts values to other types if specified. + * @function toObject + * @memberof google.type.TimeOfDay + * @static + * @param {google.type.TimeOfDay} message TimeOfDay + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + TimeOfDay.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.hours = 0; + object.minutes = 0; + object.seconds = 0; + object.nanos = 0; + } + if (message.hours != null && message.hasOwnProperty("hours")) + object.hours = message.hours; + if (message.minutes != null && message.hasOwnProperty("minutes")) + object.minutes = message.minutes; + if (message.seconds != null && message.hasOwnProperty("seconds")) + object.seconds = message.seconds; + if (message.nanos != null && message.hasOwnProperty("nanos")) + object.nanos = message.nanos; + return object; + }; + + /** + * Converts this TimeOfDay to JSON. + * @function toJSON + * @memberof google.type.TimeOfDay + * @instance + * @returns {Object.} JSON object + */ + TimeOfDay.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for TimeOfDay + * @function getTypeUrl + * @memberof google.type.TimeOfDay + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + TimeOfDay.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.type.TimeOfDay"; + }; + + return TimeOfDay; + })(); + + return type; + })(); + return google; })(); diff --git a/packages/google-cloud-redis-cluster/protos/protos.json b/packages/google-cloud-redis-cluster/protos/protos.json index 2d0f04fbcc8..a7ec1be6a5c 100644 --- a/packages/google-cloud-redis-cluster/protos/protos.json +++ b/packages/google-cloud-redis-cluster/protos/protos.json @@ -17,7 +17,9 @@ "java_multiple_files": true, "java_outer_classname": "CloudRedisClusterProto", "java_package": "com.google.cloud.redis.cluster.v1", - "ruby_package": "Google::Cloud::Redis::Cluster::V1" + "ruby_package": "Google::Cloud::Redis::Cluster::V1", + "(google.api.resource_definition).type": "cloudkms.googleapis.com/CryptoKeyVersion", + "(google.api.resource_definition).pattern": "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}" }, "nested": { "CloudRedisCluster": { @@ -161,9 +163,194 @@ "(google.api.method_signature)": "name" } ] + }, + "RescheduleClusterMaintenance": { + "requestType": "RescheduleClusterMaintenanceRequest", + "responseType": "google.longrunning.Operation", + "options": { + "(google.api.http).post": "/v1/{name=projects/*/locations/*/clusters/*}:rescheduleClusterMaintenance", + "(google.api.http).body": "*", + "(google.api.method_signature)": "name,reschedule_type,schedule_time", + "(google.longrunning.operation_info).response_type": "Cluster", + "(google.longrunning.operation_info).metadata_type": "google.protobuf.Any" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1/{name=projects/*/locations/*/clusters/*}:rescheduleClusterMaintenance", + "body": "*" + } + }, + { + "(google.api.method_signature)": "name,reschedule_type,schedule_time" + }, + { + "(google.longrunning.operation_info)": { + "response_type": "Cluster", + "metadata_type": "google.protobuf.Any" + } + } + ] + }, + "ListBackupCollections": { + "requestType": "ListBackupCollectionsRequest", + "responseType": "ListBackupCollectionsResponse", + "options": { + "(google.api.http).get": "/v1/{parent=projects/*/locations/*}/backupCollections", + "(google.api.method_signature)": "parent" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1/{parent=projects/*/locations/*}/backupCollections" + } + }, + { + "(google.api.method_signature)": "parent" + } + ] + }, + "GetBackupCollection": { + "requestType": "GetBackupCollectionRequest", + "responseType": "BackupCollection", + "options": { + "(google.api.http).get": "/v1/{name=projects/*/locations/*/backupCollections/*}", + "(google.api.method_signature)": "name" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1/{name=projects/*/locations/*/backupCollections/*}" + } + }, + { + "(google.api.method_signature)": "name" + } + ] + }, + "ListBackups": { + "requestType": "ListBackupsRequest", + "responseType": "ListBackupsResponse", + "options": { + "(google.api.http).get": "/v1/{parent=projects/*/locations/*/backupCollections/*}/backups", + "(google.api.method_signature)": "parent" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1/{parent=projects/*/locations/*/backupCollections/*}/backups" + } + }, + { + "(google.api.method_signature)": "parent" + } + ] + }, + "GetBackup": { + "requestType": "GetBackupRequest", + "responseType": "Backup", + "options": { + "(google.api.http).get": "/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}", + "(google.api.method_signature)": "name" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}" + } + }, + { + "(google.api.method_signature)": "name" + } + ] + }, + "DeleteBackup": { + "requestType": "DeleteBackupRequest", + "responseType": "google.longrunning.Operation", + "options": { + "(google.api.http).delete": "/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}", + "(google.api.method_signature)": "name", + "(google.longrunning.operation_info).response_type": "google.protobuf.Empty", + "(google.longrunning.operation_info).metadata_type": "google.protobuf.Any" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "delete": "/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}" + } + }, + { + "(google.api.method_signature)": "name" + }, + { + "(google.longrunning.operation_info)": { + "response_type": "google.protobuf.Empty", + "metadata_type": "google.protobuf.Any" + } + } + ] + }, + "ExportBackup": { + "requestType": "ExportBackupRequest", + "responseType": "google.longrunning.Operation", + "options": { + "(google.api.http).post": "/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}:export", + "(google.api.http).body": "*", + "(google.longrunning.operation_info).response_type": "Backup", + "(google.longrunning.operation_info).metadata_type": "google.protobuf.Any" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}:export", + "body": "*" + } + }, + { + "(google.longrunning.operation_info)": { + "response_type": "Backup", + "metadata_type": "google.protobuf.Any" + } + } + ] + }, + "BackupCluster": { + "requestType": "BackupClusterRequest", + "responseType": "google.longrunning.Operation", + "options": { + "(google.api.http).post": "/v1/{name=projects/*/locations/*/clusters/*}:backup", + "(google.api.http).body": "*", + "(google.api.method_signature)": "name", + "(google.longrunning.operation_info).response_type": "Cluster", + "(google.longrunning.operation_info).metadata_type": "google.protobuf.Any" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1/{name=projects/*/locations/*/clusters/*}:backup", + "body": "*" + } + }, + { + "(google.api.method_signature)": "name" + }, + { + "(google.longrunning.operation_info)": { + "response_type": "Cluster", + "metadata_type": "google.protobuf.Any" + } + } + ] } } }, + "PscConnectionStatus": { + "values": { + "PSC_CONNECTION_STATUS_UNSPECIFIED": 0, + "PSC_CONNECTION_STATUS_ACTIVE": 1, + "PSC_CONNECTION_STATUS_NOT_FOUND": 2 + } + }, "AuthorizationMode": { "values": { "AUTH_MODE_UNSPECIFIED": 0, @@ -187,6 +374,14 @@ "TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION": 2 } }, + "ConnectionType": { + "values": { + "CONNECTION_TYPE_UNSPECIFIED": 0, + "CONNECTION_TYPE_DISCOVERY": 1, + "CONNECTION_TYPE_PRIMARY": 2, + "CONNECTION_TYPE_READER": 3 + } + }, "CreateClusterRequest": { "fields": { "parent": { @@ -317,102 +512,333 @@ } } }, - "Cluster": { - "options": { - "(google.api.resource).type": "redis.googleapis.com/Cluster", - "(google.api.resource).pattern": "projects/{project}/locations/{location}/clusters/{cluster}" - }, - "oneofs": { - "_replicaCount": { - "oneof": [ - "replicaCount" - ] - }, - "_sizeGb": { - "oneof": [ - "sizeGb" - ] - }, - "_shardCount": { - "oneof": [ - "shardCount" - ] - }, - "_preciseSizeGb": { - "oneof": [ - "preciseSizeGb" - ] - }, - "_deletionProtectionEnabled": { - "oneof": [ - "deletionProtectionEnabled" - ] - } - }, + "ListBackupCollectionsRequest": { "fields": { - "name": { + "parent": { "type": "string", "id": 1, "options": { - "(google.api.field_behavior)": "REQUIRED" + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).child_type": "redis.googleapis.com/BackupCollection" } }, - "createTime": { - "type": "google.protobuf.Timestamp", - "id": 3, + "pageSize": { + "type": "int32", + "id": 2, "options": { - "(google.api.field_behavior)": "OUTPUT_ONLY" + "(google.api.field_behavior)": "OPTIONAL" } }, - "state": { - "type": "State", - "id": 4, + "pageToken": { + "type": "string", + "id": 3, "options": { - "(google.api.field_behavior)": "OUTPUT_ONLY" + "(google.api.field_behavior)": "OPTIONAL" } + } + } + }, + "ListBackupCollectionsResponse": { + "fields": { + "backupCollections": { + "rule": "repeated", + "type": "BackupCollection", + "id": 1 }, - "uid": { + "nextPageToken": { "type": "string", - "id": 5, + "id": 2 + }, + "unreachable": { + "rule": "repeated", + "type": "string", + "id": 3 + } + } + }, + "GetBackupCollectionRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, "options": { - "(google.api.field_behavior)": "OUTPUT_ONLY" + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "redis.googleapis.com/BackupCollection" } - }, - "replicaCount": { - "type": "int32", - "id": 8, + } + } + }, + "ListBackupsRequest": { + "fields": { + "parent": { + "type": "string", + "id": 1, "options": { - "(google.api.field_behavior)": "OPTIONAL", - "proto3_optional": true + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).child_type": "redis.googleapis.com/Backup" } }, - "authorizationMode": { - "type": "AuthorizationMode", - "id": 11, + "pageSize": { + "type": "int32", + "id": 2, "options": { "(google.api.field_behavior)": "OPTIONAL" } }, - "transitEncryptionMode": { - "type": "TransitEncryptionMode", - "id": 12, + "pageToken": { + "type": "string", + "id": 3, "options": { "(google.api.field_behavior)": "OPTIONAL" } + } + } + }, + "ListBackupsResponse": { + "fields": { + "backups": { + "rule": "repeated", + "type": "Backup", + "id": 1 }, - "sizeGb": { - "type": "int32", - "id": 13, - "options": { - "(google.api.field_behavior)": "OUTPUT_ONLY", - "proto3_optional": true - } + "nextPageToken": { + "type": "string", + "id": 2 }, - "shardCount": { + "unreachable": { + "rule": "repeated", + "type": "string", + "id": 3 + } + } + }, + "GetBackupRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "redis.googleapis.com/Backup" + } + } + } + }, + "DeleteBackupRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "redis.googleapis.com/Backup" + } + }, + "requestId": { + "type": "string", + "id": 2, + "options": { + "(google.api.field_info).format": "UUID4", + "(google.api.field_behavior)": "OPTIONAL" + } + } + } + }, + "ExportBackupRequest": { + "oneofs": { + "destination": { + "oneof": [ + "gcsBucket" + ] + } + }, + "fields": { + "gcsBucket": { + "type": "string", + "id": 3 + }, + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "redis.googleapis.com/Backup" + } + } + } + }, + "BackupClusterRequest": { + "oneofs": { + "_backupId": { + "oneof": [ + "backupId" + ] + } + }, + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "redis.googleapis.com/Cluster" + } + }, + "ttl": { + "type": "google.protobuf.Duration", + "id": 2, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "backupId": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + } + } + }, + "Cluster": { + "options": { + "(google.api.resource).type": "redis.googleapis.com/Cluster", + "(google.api.resource).pattern": "projects/{project}/locations/{location}/clusters/{cluster}", + "(google.api.resource).plural": "clusters", + "(google.api.resource).singular": "cluster" + }, + "oneofs": { + "importSources": { + "oneof": [ + "gcsSource", + "managedBackupSource" + ] + }, + "_replicaCount": { + "oneof": [ + "replicaCount" + ] + }, + "_sizeGb": { + "oneof": [ + "sizeGb" + ] + }, + "_shardCount": { + "oneof": [ + "shardCount" + ] + }, + "_preciseSizeGb": { + "oneof": [ + "preciseSizeGb" + ] + }, + "_deletionProtectionEnabled": { + "oneof": [ + "deletionProtectionEnabled" + ] + }, + "_maintenancePolicy": { + "oneof": [ + "maintenancePolicy" + ] + }, + "_maintenanceSchedule": { + "oneof": [ + "maintenanceSchedule" + ] + }, + "_backupCollection": { + "oneof": [ + "backupCollection" + ] + }, + "_kmsKey": { + "oneof": [ + "kmsKey" + ] + } + }, + "fields": { + "gcsSource": { + "type": "GcsBackupSource", + "id": 34, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "managedBackupSource": { + "type": "ManagedBackupSource", + "id": 35, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "IDENTIFIER" + } + }, + "createTime": { + "type": "google.protobuf.Timestamp", + "id": 3, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "state": { + "type": "State", + "id": 4, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "uid": { + "type": "string", + "id": 5, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "replicaCount": { + "type": "int32", + "id": 8, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "authorizationMode": { + "type": "AuthorizationMode", + "id": 11, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "transitEncryptionMode": { + "type": "TransitEncryptionMode", + "id": 12, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "sizeGb": { + "type": "int32", + "id": 13, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY", + "proto3_optional": true + } + }, + "shardCount": { "type": "int32", "id": 14, "options": { - "(google.api.field_behavior)": "REQUIRED", + "(google.api.field_behavior)": "OPTIONAL", "proto3_optional": true } }, @@ -421,7 +847,7 @@ "type": "PscConfig", "id": 15, "options": { - "(google.api.field_behavior)": "REQUIRED" + "(google.api.field_behavior)": "OPTIONAL" } }, "discoveryEndpoints": { @@ -484,6 +910,13 @@ "(google.api.field_behavior)": "OPTIONAL" } }, + "crossClusterReplicationConfig": { + "type": "CrossClusterReplicationConfig", + "id": 24, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, "deletionProtectionEnabled": { "type": "bool", "id": 25, @@ -491,6 +924,70 @@ "(google.api.field_behavior)": "OPTIONAL", "proto3_optional": true } + }, + "maintenancePolicy": { + "type": "ClusterMaintenancePolicy", + "id": 26, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "maintenanceSchedule": { + "type": "ClusterMaintenanceSchedule", + "id": 27, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY", + "proto3_optional": true + } + }, + "pscServiceAttachments": { + "rule": "repeated", + "type": "PscServiceAttachment", + "id": 30, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "clusterEndpoints": { + "rule": "repeated", + "type": "ClusterEndpoint", + "id": 36, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "backupCollection": { + "type": "string", + "id": 39, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY", + "(google.api.resource_reference).type": "redis.googleapis.com/BackupCollection", + "proto3_optional": true + } + }, + "kmsKey": { + "type": "string", + "id": 40, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "(google.api.resource_reference).type": "cloudkms.googleapis.com/CryptoKey", + "proto3_optional": true + } + }, + "automatedBackupConfig": { + "type": "AutomatedBackupConfig", + "id": 42, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "encryptionInfo": { + "type": "EncryptionInfo", + "id": 43, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } } }, "nested": { @@ -541,841 +1038,2450 @@ } } }, - "State": { - "values": { - "STATE_UNSPECIFIED": 0, - "CREATING": 1, - "ACTIVE": 2, - "UPDATING": 3, - "DELETING": 4 + "GcsBackupSource": { + "fields": { + "uris": { + "rule": "repeated", + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + } + }, + "ManagedBackupSource": { + "fields": { + "backup": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + } + }, + "State": { + "values": { + "STATE_UNSPECIFIED": 0, + "CREATING": 1, + "ACTIVE": 2, + "UPDATING": 3, + "DELETING": 4 } } } }, - "PscConfig": { + "AutomatedBackupConfig": { + "oneofs": { + "schedule": { + "oneof": [ + "fixedFrequencySchedule" + ] + }, + "_retention": { + "oneof": [ + "retention" + ] + } + }, "fields": { - "network": { - "type": "string", + "fixedFrequencySchedule": { + "type": "FixedFrequencySchedule", "id": 2, "options": { - "(google.api.field_behavior)": "REQUIRED" + "(google.api.field_behavior)": "OPTIONAL" } - } - } - }, - "DiscoveryEndpoint": { - "fields": { - "address": { - "type": "string", + }, + "automatedBackupMode": { + "type": "AutomatedBackupMode", "id": 1, "options": { - "(google.api.field_behavior)": "OUTPUT_ONLY" + "(google.api.field_behavior)": "OPTIONAL" } }, - "port": { - "type": "int32", - "id": 2, + "retention": { + "type": "google.protobuf.Duration", + "id": 3, "options": { - "(google.api.field_behavior)": "OUTPUT_ONLY" + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + } + }, + "nested": { + "FixedFrequencySchedule": { + "oneofs": { + "_startTime": { + "oneof": [ + "startTime" + ] + } + }, + "fields": { + "startTime": { + "type": "google.type.TimeOfDay", + "id": 2, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "proto3_optional": true + } + } } }, - "pscConfig": { - "type": "PscConfig", - "id": 3, - "options": { - "(google.api.field_behavior)": "OUTPUT_ONLY" + "AutomatedBackupMode": { + "values": { + "AUTOMATED_BACKUP_MODE_UNSPECIFIED": 0, + "DISABLED": 1, + "ENABLED": 2 } } } }, - "PscConnection": { + "BackupCollection": { + "options": { + "(google.api.resource).type": "redis.googleapis.com/BackupCollection", + "(google.api.resource).pattern": "projects/{project}/locations/{location}/backupCollections/{backup_collection}", + "(google.api.resource).plural": "backupCollections", + "(google.api.resource).singular": "backupCollection" + }, "fields": { - "pscConnectionId": { + "name": { "type": "string", "id": 1, "options": { - "(google.api.field_behavior)": "OUTPUT_ONLY" + "(google.api.field_behavior)": "IDENTIFIER" } }, - "address": { + "clusterUid": { "type": "string", - "id": 2, + "id": 3, "options": { + "(google.api.field_info).format": "UUID4", "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "forwardingRule": { + "cluster": { "type": "string", - "id": 3, + "id": 4, "options": { - "(google.api.field_behavior)": "OUTPUT_ONLY" + "(google.api.field_behavior)": "OUTPUT_ONLY", + "(google.api.resource_reference).type": "redis.googleapis.com/Cluster" } }, - "projectId": { + "kmsKey": { "type": "string", - "id": 4, + "id": 5, "options": { - "(google.api.field_behavior)": "OUTPUT_ONLY" + "(google.api.field_behavior)": "OUTPUT_ONLY", + "(google.api.resource_reference).type": "cloudkms.googleapis.com/CryptoKey" } }, - "network": { + "uid": { "type": "string", - "id": 5 + "id": 6, + "options": { + "(google.api.field_info).format": "UUID4", + "(google.api.field_behavior)": "OUTPUT_ONLY" + } } } }, - "OperationMetadata": { + "Backup": { + "options": { + "(google.api.resource).type": "redis.googleapis.com/Backup", + "(google.api.resource).pattern": "projects/{project}/locations/{location}/backupCollections/{backup_collection}/backups/{backup}", + "(google.api.resource).plural": "backups", + "(google.api.resource).singular": "backup" + }, "fields": { - "createTime": { - "type": "google.protobuf.Timestamp", + "name": { + "type": "string", "id": 1, "options": { - "(google.api.field_behavior)": "OUTPUT_ONLY" + "(google.api.field_behavior)": "IDENTIFIER" } }, - "endTime": { + "createTime": { "type": "google.protobuf.Timestamp", "id": 2, "options": { "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "target": { + "cluster": { "type": "string", "id": 3, "options": { - "(google.api.field_behavior)": "OUTPUT_ONLY" + "(google.api.field_behavior)": "OUTPUT_ONLY", + "(google.api.resource_reference).type": "redis.googleapis.com/Cluster" } }, - "verb": { + "clusterUid": { "type": "string", "id": 4, "options": { + "(google.api.field_info).format": "UUID4", "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "statusMessage": { - "type": "string", + "totalSizeBytes": { + "type": "int64", "id": 5, "options": { "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "requestedCancellation": { - "type": "bool", + "expireTime": { + "type": "google.protobuf.Timestamp", "id": 6, "options": { "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "apiVersion": { + "engineVersion": { "type": "string", "id": 7, "options": { "(google.api.field_behavior)": "OUTPUT_ONLY" } - } - } - }, - "CertificateAuthority": { - "options": { - "(google.api.resource).type": "redis.googleapis.com/CertificateAuthority", - "(google.api.resource).pattern": "projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority" - }, - "oneofs": { - "serverCa": { - "oneof": [ - "managedServerCa" - ] - } - }, - "fields": { - "managedServerCa": { - "type": "ManagedCertificateAuthority", - "id": 1 }, - "name": { + "backupFiles": { + "rule": "repeated", + "type": "BackupFile", + "id": 8, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "nodeType": { + "type": "NodeType", + "id": 9, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "replicaCount": { + "type": "int32", + "id": 10, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "shardCount": { + "type": "int32", + "id": 11, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "backupType": { + "type": "BackupType", + "id": 12, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "state": { + "type": "State", + "id": 13, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "encryptionInfo": { + "type": "EncryptionInfo", + "id": 14, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "uid": { "type": "string", - "id": 2, + "id": 15, "options": { - "(google.api.field_behavior)": "IDENTIFIER" + "(google.api.field_info).format": "UUID4", + "(google.api.field_behavior)": "OUTPUT_ONLY" } } }, "nested": { - "ManagedCertificateAuthority": { - "fields": { - "caCerts": { - "rule": "repeated", - "type": "CertChain", - "id": 1 - } - }, - "nested": { - "CertChain": { - "fields": { - "certificates": { - "rule": "repeated", - "type": "string", - "id": 1 - } - } - } + "BackupType": { + "values": { + "BACKUP_TYPE_UNSPECIFIED": 0, + "ON_DEMAND": 1, + "AUTOMATED": 2 + } + }, + "State": { + "values": { + "STATE_UNSPECIFIED": 0, + "CREATING": 1, + "ACTIVE": 2, + "DELETING": 3, + "SUSPENDED": 4 } } } }, - "ClusterPersistenceConfig": { + "BackupFile": { "fields": { - "mode": { - "type": "PersistenceMode", + "fileName": { + "type": "string", "id": 1, "options": { - "(google.api.field_behavior)": "OPTIONAL" + "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "rdbConfig": { - "type": "RDBConfig", + "sizeBytes": { + "type": "int64", "id": 2, "options": { - "(google.api.field_behavior)": "OPTIONAL" + "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "aofConfig": { - "type": "AOFConfig", + "createTime": { + "type": "google.protobuf.Timestamp", "id": 3, "options": { - "(google.api.field_behavior)": "OPTIONAL" + "(google.api.field_behavior)": "OUTPUT_ONLY" } } - }, - "nested": { - "RDBConfig": { - "fields": { - "rdbSnapshotPeriod": { - "type": "SnapshotPeriod", - "id": 1, - "options": { - "(google.api.field_behavior)": "OPTIONAL" - } - }, - "rdbSnapshotStartTime": { - "type": "google.protobuf.Timestamp", - "id": 2, - "options": { - "(google.api.field_behavior)": "OPTIONAL" - } - } - }, - "nested": { - "SnapshotPeriod": { - "values": { - "SNAPSHOT_PERIOD_UNSPECIFIED": 0, - "ONE_HOUR": 1, - "SIX_HOURS": 2, - "TWELVE_HOURS": 3, - "TWENTY_FOUR_HOURS": 4 - } - } + } + }, + "PscServiceAttachment": { + "fields": { + "serviceAttachment": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "AOFConfig": { + "connectionType": { + "type": "ConnectionType", + "id": 3, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + } + } + }, + "CrossClusterReplicationConfig": { + "fields": { + "clusterRole": { + "type": "ClusterRole", + "id": 1 + }, + "primaryCluster": { + "type": "RemoteCluster", + "id": 2 + }, + "secondaryClusters": { + "rule": "repeated", + "type": "RemoteCluster", + "id": 3 + }, + "updateTime": { + "type": "google.protobuf.Timestamp", + "id": 4, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "membership": { + "type": "Membership", + "id": 5, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + } + }, + "nested": { + "RemoteCluster": { "fields": { - "appendFsync": { - "type": "AppendFsync", + "cluster": { + "type": "string", "id": 1, "options": { - "(google.api.field_behavior)": "OPTIONAL" + "(google.api.resource_reference).type": "redis.googleapis.com/Cluster" + } + }, + "uid": { + "type": "string", + "id": 2, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" } } - }, - "nested": { - "AppendFsync": { - "values": { - "APPEND_FSYNC_UNSPECIFIED": 0, - "NO": 1, - "EVERYSEC": 2, - "ALWAYS": 3 + } + }, + "Membership": { + "fields": { + "primaryCluster": { + "type": "RemoteCluster", + "id": 1, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "secondaryClusters": { + "rule": "repeated", + "type": "RemoteCluster", + "id": 2, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" } } } }, - "PersistenceMode": { + "ClusterRole": { "values": { - "PERSISTENCE_MODE_UNSPECIFIED": 0, - "DISABLED": 1, - "RDB": 2, - "AOF": 3 + "CLUSTER_ROLE_UNSPECIFIED": 0, + "NONE": 1, + "PRIMARY": 2, + "SECONDARY": 3 } } } }, - "ZoneDistributionConfig": { + "ClusterMaintenancePolicy": { "fields": { - "mode": { - "type": "ZoneDistributionMode", + "createTime": { + "type": "google.protobuf.Timestamp", "id": 1, "options": { - "(google.api.field_behavior)": "OPTIONAL" + "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "zone": { - "type": "string", + "updateTime": { + "type": "google.protobuf.Timestamp", "id": 2, "options": { - "(google.api.field_behavior)": "OPTIONAL" + "(google.api.field_behavior)": "OUTPUT_ONLY" } + }, + "weeklyMaintenanceWindow": { + "rule": "repeated", + "type": "ClusterWeeklyMaintenanceWindow", + "id": 3 } - }, - "nested": { - "ZoneDistributionMode": { - "values": { - "ZONE_DISTRIBUTION_MODE_UNSPECIFIED": 0, - "MULTI_ZONE": 1, - "SINGLE_ZONE": 2 - } + } + }, + "ClusterWeeklyMaintenanceWindow": { + "fields": { + "day": { + "type": "google.type.DayOfWeek", + "id": 1 + }, + "startTime": { + "type": "google.type.TimeOfDay", + "id": 2 } } - } - } - }, - "v1beta1": { - "options": { - "go_package": "cloud.google.com/go/redis/cluster/apiv1beta1/clusterpb;clusterpb", - "java_multiple_files": true, - "java_outer_classname": "CloudRedisClusterProto", - "java_package": "com.google.cloud.redis.cluster.v1beta1", - "ruby_package": "Google::Cloud::Redis::Cluster::V1beta1" - }, - "nested": { - "CloudRedisCluster": { - "options": { - "(google.api.default_host)": "redis.googleapis.com", - "(google.api.oauth_scopes)": "https://www.googleapis.com/auth/cloud-platform" - }, - "methods": { - "ListClusters": { - "requestType": "ListClustersRequest", - "responseType": "ListClustersResponse", + }, + "ClusterMaintenanceSchedule": { + "fields": { + "startTime": { + "type": "google.protobuf.Timestamp", + "id": 1, "options": { - "(google.api.http).get": "/v1beta1/{parent=projects/*/locations/*}/clusters", - "(google.api.method_signature)": "parent" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "get": "/v1beta1/{parent=projects/*/locations/*}/clusters" - } - }, - { - "(google.api.method_signature)": "parent" - } - ] + "(google.api.field_behavior)": "OUTPUT_ONLY" + } }, - "GetCluster": { - "requestType": "GetClusterRequest", - "responseType": "Cluster", + "endTime": { + "type": "google.protobuf.Timestamp", + "id": 2, "options": { - "(google.api.http).get": "/v1beta1/{name=projects/*/locations/*/clusters/*}", - "(google.api.method_signature)": "name" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "get": "/v1beta1/{name=projects/*/locations/*/clusters/*}" - } - }, - { - "(google.api.method_signature)": "name" - } - ] + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + } + } + }, + "PscConfig": { + "fields": { + "network": { + "type": "string", + "id": 2, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + } + } + }, + "DiscoveryEndpoint": { + "fields": { + "address": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } }, - "UpdateCluster": { - "requestType": "UpdateClusterRequest", - "responseType": "google.longrunning.Operation", + "port": { + "type": "int32", + "id": 2, "options": { - "(google.api.http).patch": "/v1beta1/{cluster.name=projects/*/locations/*/clusters/*}", - "(google.api.http).body": "cluster", - "(google.api.method_signature)": "cluster,update_mask", - "(google.longrunning.operation_info).response_type": "Cluster", - "(google.longrunning.operation_info).metadata_type": "google.protobuf.Any" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "patch": "/v1beta1/{cluster.name=projects/*/locations/*/clusters/*}", - "body": "cluster" - } - }, - { - "(google.api.method_signature)": "cluster,update_mask" - }, - { - "(google.longrunning.operation_info)": { - "response_type": "Cluster", - "metadata_type": "google.protobuf.Any" - } - } - ] + "(google.api.field_behavior)": "OUTPUT_ONLY" + } }, - "DeleteCluster": { - "requestType": "DeleteClusterRequest", - "responseType": "google.longrunning.Operation", + "pscConfig": { + "type": "PscConfig", + "id": 3, "options": { - "(google.api.http).delete": "/v1beta1/{name=projects/*/locations/*/clusters/*}", - "(google.api.method_signature)": "name", - "(google.longrunning.operation_info).response_type": "google.protobuf.Empty", - "(google.longrunning.operation_info).metadata_type": "google.protobuf.Any" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "delete": "/v1beta1/{name=projects/*/locations/*/clusters/*}" - } - }, - { - "(google.api.method_signature)": "name" - }, - { - "(google.longrunning.operation_info)": { - "response_type": "google.protobuf.Empty", - "metadata_type": "google.protobuf.Any" - } - } - ] + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + } + } + }, + "PscConnection": { + "fields": { + "pscConnectionId": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } }, - "CreateCluster": { - "requestType": "CreateClusterRequest", - "responseType": "google.longrunning.Operation", + "address": { + "type": "string", + "id": 2, "options": { - "(google.api.http).post": "/v1beta1/{parent=projects/*/locations/*}/clusters", - "(google.api.http).body": "cluster", - "(google.api.method_signature)": "parent,cluster,cluster_id", - "(google.longrunning.operation_info).response_type": "Cluster", - "(google.longrunning.operation_info).metadata_type": "google.protobuf.Any" + "(google.api.field_info).format": "IPV4", + "(google.api.field_behavior)": "REQUIRED" + } + }, + "forwardingRule": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "compute.googleapis.com/ForwardingRule" + } + }, + "projectId": { + "type": "string", + "id": 4, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "network": { + "type": "string", + "id": 5, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "compute.googleapis.com/Network" + } + }, + "serviceAttachment": { + "type": "string", + "id": 6, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "compute.googleapis.com/ServiceAttachment" + } + }, + "pscConnectionStatus": { + "type": "PscConnectionStatus", + "id": 8, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "connectionType": { + "type": "ConnectionType", + "id": 10, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + } + } + }, + "ClusterEndpoint": { + "fields": { + "connections": { + "rule": "repeated", + "type": "ConnectionDetail", + "id": 1 + } + } + }, + "ConnectionDetail": { + "oneofs": { + "connection": { + "oneof": [ + "pscAutoConnection", + "pscConnection" + ] + } + }, + "fields": { + "pscAutoConnection": { + "type": "PscAutoConnection", + "id": 1 + }, + "pscConnection": { + "type": "PscConnection", + "id": 2 + } + } + }, + "PscAutoConnection": { + "fields": { + "pscConnectionId": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "address": { + "type": "string", + "id": 2, + "options": { + "(google.api.field_info).format": "IPV4", + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "forwardingRule": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY", + "(google.api.resource_reference).type": "compute.googleapis.com/ForwardingRule" + } + }, + "projectId": { + "type": "string", + "id": 4, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + }, + "network": { + "type": "string", + "id": 5, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "compute.googleapis.com/Network" + } + }, + "serviceAttachment": { + "type": "string", + "id": 6, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY", + "(google.api.resource_reference).type": "compute.googleapis.com/ServiceAttachment" + } + }, + "pscConnectionStatus": { + "type": "PscConnectionStatus", + "id": 8, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "connectionType": { + "type": "ConnectionType", + "id": 9, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + } + } + }, + "OperationMetadata": { + "fields": { + "createTime": { + "type": "google.protobuf.Timestamp", + "id": 1, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "endTime": { + "type": "google.protobuf.Timestamp", + "id": 2, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "target": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "verb": { + "type": "string", + "id": 4, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "statusMessage": { + "type": "string", + "id": 5, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "requestedCancellation": { + "type": "bool", + "id": 6, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "apiVersion": { + "type": "string", + "id": 7, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + } + } + }, + "CertificateAuthority": { + "options": { + "(google.api.resource).type": "redis.googleapis.com/CertificateAuthority", + "(google.api.resource).pattern": "projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority", + "(google.api.resource).plural": "certificateAuthorities", + "(google.api.resource).singular": "certificateAuthority" + }, + "oneofs": { + "serverCa": { + "oneof": [ + "managedServerCa" + ] + } + }, + "fields": { + "managedServerCa": { + "type": "ManagedCertificateAuthority", + "id": 1 + }, + "name": { + "type": "string", + "id": 2, + "options": { + "(google.api.field_behavior)": "IDENTIFIER" + } + } + }, + "nested": { + "ManagedCertificateAuthority": { + "fields": { + "caCerts": { + "rule": "repeated", + "type": "CertChain", + "id": 1 + } }, - "parsedOptions": [ - { - "(google.api.http)": { - "post": "/v1beta1/{parent=projects/*/locations/*}/clusters", - "body": "cluster" - } - }, - { - "(google.api.method_signature)": "parent,cluster,cluster_id" - }, - { - "(google.longrunning.operation_info)": { - "response_type": "Cluster", - "metadata_type": "google.protobuf.Any" + "nested": { + "CertChain": { + "fields": { + "certificates": { + "rule": "repeated", + "type": "string", + "id": 1 + } } } - ] + } + } + } + }, + "ClusterPersistenceConfig": { + "fields": { + "mode": { + "type": "PersistenceMode", + "id": 1, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "rdbConfig": { + "type": "RDBConfig", + "id": 2, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "aofConfig": { + "type": "AOFConfig", + "id": 3, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + }, + "nested": { + "RDBConfig": { + "fields": { + "rdbSnapshotPeriod": { + "type": "SnapshotPeriod", + "id": 1, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "rdbSnapshotStartTime": { + "type": "google.protobuf.Timestamp", + "id": 2, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + }, + "nested": { + "SnapshotPeriod": { + "values": { + "SNAPSHOT_PERIOD_UNSPECIFIED": 0, + "ONE_HOUR": 1, + "SIX_HOURS": 2, + "TWELVE_HOURS": 3, + "TWENTY_FOUR_HOURS": 4 + } + } + } + }, + "AOFConfig": { + "fields": { + "appendFsync": { + "type": "AppendFsync", + "id": 1, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + }, + "nested": { + "AppendFsync": { + "values": { + "APPEND_FSYNC_UNSPECIFIED": 0, + "NO": 1, + "EVERYSEC": 2, + "ALWAYS": 3 + } + } + } + }, + "PersistenceMode": { + "values": { + "PERSISTENCE_MODE_UNSPECIFIED": 0, + "DISABLED": 1, + "RDB": 2, + "AOF": 3 + } + } + } + }, + "ZoneDistributionConfig": { + "fields": { + "mode": { + "type": "ZoneDistributionMode", + "id": 1, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "zone": { + "type": "string", + "id": 2, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + }, + "nested": { + "ZoneDistributionMode": { + "values": { + "ZONE_DISTRIBUTION_MODE_UNSPECIFIED": 0, + "MULTI_ZONE": 1, + "SINGLE_ZONE": 2 + } + } + } + }, + "RescheduleClusterMaintenanceRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "redis.googleapis.com/Cluster" + } + }, + "rescheduleType": { + "type": "RescheduleType", + "id": 2, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + }, + "scheduleTime": { + "type": "google.protobuf.Timestamp", + "id": 3, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + }, + "nested": { + "RescheduleType": { + "values": { + "RESCHEDULE_TYPE_UNSPECIFIED": 0, + "IMMEDIATE": 1, + "SPECIFIC_TIME": 3 + } + } + } + }, + "EncryptionInfo": { + "fields": { + "encryptionType": { + "type": "Type", + "id": 1, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "kmsKeyVersions": { + "rule": "repeated", + "type": "string", + "id": 2, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY", + "(google.api.resource_reference).type": "cloudkms.googleapis.com/CryptoKeyVersion" + } + }, + "kmsKeyPrimaryState": { + "type": "KmsKeyState", + "id": 3, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "lastUpdateTime": { + "type": "google.protobuf.Timestamp", + "id": 4, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + } + }, + "nested": { + "Type": { + "values": { + "TYPE_UNSPECIFIED": 0, + "GOOGLE_DEFAULT_ENCRYPTION": 1, + "CUSTOMER_MANAGED_ENCRYPTION": 2 + } + }, + "KmsKeyState": { + "values": { + "KMS_KEY_STATE_UNSPECIFIED": 0, + "ENABLED": 1, + "PERMISSION_DENIED": 2, + "DISABLED": 3, + "DESTROYED": 4, + "DESTROY_SCHEDULED": 5, + "EKM_KEY_UNREACHABLE_DETECTED": 6, + "BILLING_DISABLED": 7, + "UNKNOWN_FAILURE": 8 + } + } + } + } + } + }, + "v1beta1": { + "options": { + "go_package": "cloud.google.com/go/redis/cluster/apiv1beta1/clusterpb;clusterpb", + "java_multiple_files": true, + "java_outer_classname": "CloudRedisClusterProto", + "java_package": "com.google.cloud.redis.cluster.v1beta1", + "ruby_package": "Google::Cloud::Redis::Cluster::V1beta1", + "(google.api.resource_definition).type": "cloudkms.googleapis.com/CryptoKeyVersion", + "(google.api.resource_definition).pattern": "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}" + }, + "nested": { + "CloudRedisCluster": { + "options": { + "(google.api.default_host)": "redis.googleapis.com", + "(google.api.oauth_scopes)": "https://www.googleapis.com/auth/cloud-platform" + }, + "methods": { + "ListClusters": { + "requestType": "ListClustersRequest", + "responseType": "ListClustersResponse", + "options": { + "(google.api.http).get": "/v1beta1/{parent=projects/*/locations/*}/clusters", + "(google.api.method_signature)": "parent" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1beta1/{parent=projects/*/locations/*}/clusters" + } + }, + { + "(google.api.method_signature)": "parent" + } + ] + }, + "GetCluster": { + "requestType": "GetClusterRequest", + "responseType": "Cluster", + "options": { + "(google.api.http).get": "/v1beta1/{name=projects/*/locations/*/clusters/*}", + "(google.api.method_signature)": "name" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1beta1/{name=projects/*/locations/*/clusters/*}" + } + }, + { + "(google.api.method_signature)": "name" + } + ] + }, + "UpdateCluster": { + "requestType": "UpdateClusterRequest", + "responseType": "google.longrunning.Operation", + "options": { + "(google.api.http).patch": "/v1beta1/{cluster.name=projects/*/locations/*/clusters/*}", + "(google.api.http).body": "cluster", + "(google.api.method_signature)": "cluster,update_mask", + "(google.longrunning.operation_info).response_type": "Cluster", + "(google.longrunning.operation_info).metadata_type": "google.protobuf.Any" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "patch": "/v1beta1/{cluster.name=projects/*/locations/*/clusters/*}", + "body": "cluster" + } + }, + { + "(google.api.method_signature)": "cluster,update_mask" + }, + { + "(google.longrunning.operation_info)": { + "response_type": "Cluster", + "metadata_type": "google.protobuf.Any" + } + } + ] + }, + "DeleteCluster": { + "requestType": "DeleteClusterRequest", + "responseType": "google.longrunning.Operation", + "options": { + "(google.api.http).delete": "/v1beta1/{name=projects/*/locations/*/clusters/*}", + "(google.api.method_signature)": "name", + "(google.longrunning.operation_info).response_type": "google.protobuf.Empty", + "(google.longrunning.operation_info).metadata_type": "google.protobuf.Any" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "delete": "/v1beta1/{name=projects/*/locations/*/clusters/*}" + } + }, + { + "(google.api.method_signature)": "name" + }, + { + "(google.longrunning.operation_info)": { + "response_type": "google.protobuf.Empty", + "metadata_type": "google.protobuf.Any" + } + } + ] + }, + "CreateCluster": { + "requestType": "CreateClusterRequest", + "responseType": "google.longrunning.Operation", + "options": { + "(google.api.http).post": "/v1beta1/{parent=projects/*/locations/*}/clusters", + "(google.api.http).body": "cluster", + "(google.api.method_signature)": "parent,cluster,cluster_id", + "(google.longrunning.operation_info).response_type": "Cluster", + "(google.longrunning.operation_info).metadata_type": "google.protobuf.Any" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1beta1/{parent=projects/*/locations/*}/clusters", + "body": "cluster" + } + }, + { + "(google.api.method_signature)": "parent,cluster,cluster_id" + }, + { + "(google.longrunning.operation_info)": { + "response_type": "Cluster", + "metadata_type": "google.protobuf.Any" + } + } + ] + }, + "GetClusterCertificateAuthority": { + "requestType": "GetClusterCertificateAuthorityRequest", + "responseType": "CertificateAuthority", + "options": { + "(google.api.http).get": "/v1beta1/{name=projects/*/locations/*/clusters/*/certificateAuthority}", + "(google.api.method_signature)": "name" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1beta1/{name=projects/*/locations/*/clusters/*/certificateAuthority}" + } + }, + { + "(google.api.method_signature)": "name" + } + ] + }, + "RescheduleClusterMaintenance": { + "requestType": "RescheduleClusterMaintenanceRequest", + "responseType": "google.longrunning.Operation", + "options": { + "(google.api.http).post": "/v1beta1/{name=projects/*/locations/*/clusters/*}:rescheduleClusterMaintenance", + "(google.api.http).body": "*", + "(google.api.method_signature)": "name,reschedule_type,schedule_time", + "(google.longrunning.operation_info).response_type": "Cluster", + "(google.longrunning.operation_info).metadata_type": "google.protobuf.Any" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1beta1/{name=projects/*/locations/*/clusters/*}:rescheduleClusterMaintenance", + "body": "*" + } + }, + { + "(google.api.method_signature)": "name,reschedule_type,schedule_time" + }, + { + "(google.longrunning.operation_info)": { + "response_type": "Cluster", + "metadata_type": "google.protobuf.Any" + } + } + ] + }, + "ListBackupCollections": { + "requestType": "ListBackupCollectionsRequest", + "responseType": "ListBackupCollectionsResponse", + "options": { + "(google.api.http).get": "/v1beta1/{parent=projects/*/locations/*}/backupCollections", + "(google.api.method_signature)": "parent" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1beta1/{parent=projects/*/locations/*}/backupCollections" + } + }, + { + "(google.api.method_signature)": "parent" + } + ] + }, + "GetBackupCollection": { + "requestType": "GetBackupCollectionRequest", + "responseType": "BackupCollection", + "options": { + "(google.api.http).get": "/v1beta1/{name=projects/*/locations/*/backupCollections/*}", + "(google.api.method_signature)": "name" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1beta1/{name=projects/*/locations/*/backupCollections/*}" + } + }, + { + "(google.api.method_signature)": "name" + } + ] + }, + "ListBackups": { + "requestType": "ListBackupsRequest", + "responseType": "ListBackupsResponse", + "options": { + "(google.api.http).get": "/v1beta1/{parent=projects/*/locations/*/backupCollections/*}/backups", + "(google.api.method_signature)": "parent" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1beta1/{parent=projects/*/locations/*/backupCollections/*}/backups" + } + }, + { + "(google.api.method_signature)": "parent" + } + ] + }, + "GetBackup": { + "requestType": "GetBackupRequest", + "responseType": "Backup", + "options": { + "(google.api.http).get": "/v1beta1/{name=projects/*/locations/*/backupCollections/*/backups/*}", + "(google.api.method_signature)": "name" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1beta1/{name=projects/*/locations/*/backupCollections/*/backups/*}" + } + }, + { + "(google.api.method_signature)": "name" + } + ] + }, + "DeleteBackup": { + "requestType": "DeleteBackupRequest", + "responseType": "google.longrunning.Operation", + "options": { + "(google.api.http).delete": "/v1beta1/{name=projects/*/locations/*/backupCollections/*/backups/*}", + "(google.api.method_signature)": "name", + "(google.longrunning.operation_info).response_type": "google.protobuf.Empty", + "(google.longrunning.operation_info).metadata_type": "google.protobuf.Any" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "delete": "/v1beta1/{name=projects/*/locations/*/backupCollections/*/backups/*}" + } + }, + { + "(google.api.method_signature)": "name" + }, + { + "(google.longrunning.operation_info)": { + "response_type": "google.protobuf.Empty", + "metadata_type": "google.protobuf.Any" + } + } + ] + }, + "ExportBackup": { + "requestType": "ExportBackupRequest", + "responseType": "google.longrunning.Operation", + "options": { + "(google.api.http).post": "/v1beta1/{name=projects/*/locations/*/backupCollections/*/backups/*}:export", + "(google.api.http).body": "*", + "(google.longrunning.operation_info).response_type": "Backup", + "(google.longrunning.operation_info).metadata_type": "google.protobuf.Any" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1beta1/{name=projects/*/locations/*/backupCollections/*/backups/*}:export", + "body": "*" + } + }, + { + "(google.longrunning.operation_info)": { + "response_type": "Backup", + "metadata_type": "google.protobuf.Any" + } + } + ] + }, + "BackupCluster": { + "requestType": "BackupClusterRequest", + "responseType": "google.longrunning.Operation", + "options": { + "(google.api.http).post": "/v1beta1/{name=projects/*/locations/*/clusters/*}:backup", + "(google.api.http).body": "*", + "(google.api.method_signature)": "name", + "(google.longrunning.operation_info).response_type": "Cluster", + "(google.longrunning.operation_info).metadata_type": "google.protobuf.Any" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1beta1/{name=projects/*/locations/*/clusters/*}:backup", + "body": "*" + } + }, + { + "(google.api.method_signature)": "name" + }, + { + "(google.longrunning.operation_info)": { + "response_type": "Cluster", + "metadata_type": "google.protobuf.Any" + } + } + ] + } + } + }, + "PscConnectionStatus": { + "values": { + "PSC_CONNECTION_STATUS_UNSPECIFIED": 0, + "PSC_CONNECTION_STATUS_ACTIVE": 1, + "PSC_CONNECTION_STATUS_NOT_FOUND": 2 + } + }, + "AuthorizationMode": { + "values": { + "AUTH_MODE_UNSPECIFIED": 0, + "AUTH_MODE_IAM_AUTH": 1, + "AUTH_MODE_DISABLED": 2 + } + }, + "NodeType": { + "values": { + "NODE_TYPE_UNSPECIFIED": 0, + "REDIS_SHARED_CORE_NANO": 1, + "REDIS_HIGHMEM_MEDIUM": 2, + "REDIS_HIGHMEM_XLARGE": 3, + "REDIS_STANDARD_SMALL": 4 + } + }, + "TransitEncryptionMode": { + "values": { + "TRANSIT_ENCRYPTION_MODE_UNSPECIFIED": 0, + "TRANSIT_ENCRYPTION_MODE_DISABLED": 1, + "TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION": 2 + } + }, + "ConnectionType": { + "values": { + "CONNECTION_TYPE_UNSPECIFIED": 0, + "CONNECTION_TYPE_DISCOVERY": 1, + "CONNECTION_TYPE_PRIMARY": 2, + "CONNECTION_TYPE_READER": 3 + } + }, + "CreateClusterRequest": { + "fields": { + "parent": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "locations.googleapis.com/Location" + } + }, + "clusterId": { + "type": "string", + "id": 2, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + }, + "cluster": { + "type": "Cluster", + "id": 3, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + }, + "requestId": { + "type": "string", + "id": 4 + } + } + }, + "ListClustersRequest": { + "fields": { + "parent": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "locations.googleapis.com/Location" + } + }, + "pageSize": { + "type": "int32", + "id": 2 + }, + "pageToken": { + "type": "string", + "id": 3 + } + } + }, + "ListClustersResponse": { + "fields": { + "clusters": { + "rule": "repeated", + "type": "Cluster", + "id": 1 + }, + "nextPageToken": { + "type": "string", + "id": 2 + }, + "unreachable": { + "rule": "repeated", + "type": "string", + "id": 3 + } + } + }, + "UpdateClusterRequest": { + "fields": { + "updateMask": { + "type": "google.protobuf.FieldMask", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + }, + "cluster": { + "type": "Cluster", + "id": 2, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + }, + "requestId": { + "type": "string", + "id": 3 + } + } + }, + "GetClusterRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "redis.googleapis.com/Cluster" + } + } + } + }, + "DeleteClusterRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "redis.googleapis.com/Cluster" + } + }, + "requestId": { + "type": "string", + "id": 2 + } + } + }, + "GetClusterCertificateAuthorityRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "redis.googleapis.com/CertificateAuthority" + } + } + } + }, + "ListBackupCollectionsRequest": { + "fields": { + "parent": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).child_type": "redis.googleapis.com/BackupCollection" + } + }, + "pageSize": { + "type": "int32", + "id": 2, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "pageToken": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + } + }, + "ListBackupCollectionsResponse": { + "fields": { + "backupCollections": { + "rule": "repeated", + "type": "BackupCollection", + "id": 1 + }, + "nextPageToken": { + "type": "string", + "id": 2 + }, + "unreachable": { + "rule": "repeated", + "type": "string", + "id": 3 + } + } + }, + "GetBackupCollectionRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "redis.googleapis.com/BackupCollection" + } + } + } + }, + "ListBackupsRequest": { + "fields": { + "parent": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).child_type": "redis.googleapis.com/Backup" + } + }, + "pageSize": { + "type": "int32", + "id": 2, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "pageToken": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + } + }, + "ListBackupsResponse": { + "fields": { + "backups": { + "rule": "repeated", + "type": "Backup", + "id": 1 + }, + "nextPageToken": { + "type": "string", + "id": 2 + }, + "unreachable": { + "rule": "repeated", + "type": "string", + "id": 3 + } + } + }, + "GetBackupRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "redis.googleapis.com/Backup" + } + } + } + }, + "DeleteBackupRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "redis.googleapis.com/Backup" + } + }, + "requestId": { + "type": "string", + "id": 2, + "options": { + "(google.api.field_info).format": "UUID4", + "(google.api.field_behavior)": "OPTIONAL" + } + } + } + }, + "ExportBackupRequest": { + "oneofs": { + "destination": { + "oneof": [ + "gcsBucket" + ] + } + }, + "fields": { + "gcsBucket": { + "type": "string", + "id": 3 + }, + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "redis.googleapis.com/Backup" + } + } + } + }, + "BackupClusterRequest": { + "oneofs": { + "_backupId": { + "oneof": [ + "backupId" + ] + } + }, + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "redis.googleapis.com/Cluster" + } + }, + "ttl": { + "type": "google.protobuf.Duration", + "id": 2, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "backupId": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + } + } + }, + "Cluster": { + "options": { + "(google.api.resource).type": "redis.googleapis.com/Cluster", + "(google.api.resource).pattern": "projects/{project}/locations/{location}/clusters/{cluster}", + "(google.api.resource).plural": "clusters", + "(google.api.resource).singular": "cluster" + }, + "oneofs": { + "importSources": { + "oneof": [ + "gcsSource", + "managedBackupSource" + ] + }, + "_replicaCount": { + "oneof": [ + "replicaCount" + ] + }, + "_sizeGb": { + "oneof": [ + "sizeGb" + ] + }, + "_shardCount": { + "oneof": [ + "shardCount" + ] + }, + "_preciseSizeGb": { + "oneof": [ + "preciseSizeGb" + ] + }, + "_deletionProtectionEnabled": { + "oneof": [ + "deletionProtectionEnabled" + ] + }, + "_maintenancePolicy": { + "oneof": [ + "maintenancePolicy" + ] + }, + "_maintenanceSchedule": { + "oneof": [ + "maintenanceSchedule" + ] + }, + "_backupCollection": { + "oneof": [ + "backupCollection" + ] + }, + "_kmsKey": { + "oneof": [ + "kmsKey" + ] + } + }, + "fields": { + "gcsSource": { + "type": "GcsBackupSource", + "id": 34, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "managedBackupSource": { + "type": "ManagedBackupSource", + "id": 35, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "IDENTIFIER" + } + }, + "createTime": { + "type": "google.protobuf.Timestamp", + "id": 3, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "state": { + "type": "State", + "id": 4, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "uid": { + "type": "string", + "id": 5, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "replicaCount": { + "type": "int32", + "id": 8, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "authorizationMode": { + "type": "AuthorizationMode", + "id": 11, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "transitEncryptionMode": { + "type": "TransitEncryptionMode", + "id": 12, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "sizeGb": { + "type": "int32", + "id": 13, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY", + "proto3_optional": true + } + }, + "shardCount": { + "type": "int32", + "id": 14, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "pscConfigs": { + "rule": "repeated", + "type": "PscConfig", + "id": 15, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "discoveryEndpoints": { + "rule": "repeated", + "type": "DiscoveryEndpoint", + "id": 16, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "pscConnections": { + "rule": "repeated", + "type": "PscConnection", + "id": 17, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "stateInfo": { + "type": "StateInfo", + "id": 18, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "nodeType": { + "type": "NodeType", + "id": 19, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "persistenceConfig": { + "type": "ClusterPersistenceConfig", + "id": 20, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "redisConfigs": { + "keyType": "string", + "type": "string", + "id": 21, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "preciseSizeGb": { + "type": "double", + "id": 22, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY", + "proto3_optional": true + } + }, + "zoneDistributionConfig": { + "type": "ZoneDistributionConfig", + "id": 23, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "crossClusterReplicationConfig": { + "type": "CrossClusterReplicationConfig", + "id": 24, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } }, - "GetClusterCertificateAuthority": { - "requestType": "GetClusterCertificateAuthorityRequest", - "responseType": "CertificateAuthority", + "deletionProtectionEnabled": { + "type": "bool", + "id": 25, "options": { - "(google.api.http).get": "/v1beta1/{name=projects/*/locations/*/clusters/*/certificateAuthority}", - "(google.api.method_signature)": "name" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "get": "/v1beta1/{name=projects/*/locations/*/clusters/*/certificateAuthority}" - } - }, - { - "(google.api.method_signature)": "name" - } - ] - } - } - }, - "AuthorizationMode": { - "values": { - "AUTH_MODE_UNSPECIFIED": 0, - "AUTH_MODE_IAM_AUTH": 1, - "AUTH_MODE_DISABLED": 2 - } - }, - "NodeType": { - "values": { - "NODE_TYPE_UNSPECIFIED": 0, - "REDIS_SHARED_CORE_NANO": 1, - "REDIS_HIGHMEM_MEDIUM": 2, - "REDIS_HIGHMEM_XLARGE": 3, - "REDIS_STANDARD_SMALL": 4 - } - }, - "TransitEncryptionMode": { - "values": { - "TRANSIT_ENCRYPTION_MODE_UNSPECIFIED": 0, - "TRANSIT_ENCRYPTION_MODE_DISABLED": 1, - "TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION": 2 - } - }, - "CreateClusterRequest": { - "fields": { - "parent": { - "type": "string", - "id": 1, + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "maintenancePolicy": { + "type": "ClusterMaintenancePolicy", + "id": 26, "options": { - "(google.api.field_behavior)": "REQUIRED", - "(google.api.resource_reference).type": "locations.googleapis.com/Location" + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true } }, - "clusterId": { - "type": "string", - "id": 2, + "maintenanceSchedule": { + "type": "ClusterMaintenanceSchedule", + "id": 27, "options": { - "(google.api.field_behavior)": "REQUIRED" + "(google.api.field_behavior)": "OUTPUT_ONLY", + "proto3_optional": true } }, - "cluster": { - "type": "Cluster", - "id": 3, + "pscServiceAttachments": { + "rule": "repeated", + "type": "PscServiceAttachment", + "id": 30, "options": { - "(google.api.field_behavior)": "REQUIRED" + "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "requestId": { + "clusterEndpoints": { + "rule": "repeated", + "type": "ClusterEndpoint", + "id": 36, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "backupCollection": { "type": "string", - "id": 4 - } - } - }, - "ListClustersRequest": { - "fields": { - "parent": { + "id": 39, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY", + "(google.api.resource_reference).type": "redis.googleapis.com/BackupCollection", + "proto3_optional": true + } + }, + "kmsKey": { "type": "string", - "id": 1, + "id": 40, "options": { - "(google.api.field_behavior)": "REQUIRED", - "(google.api.resource_reference).type": "locations.googleapis.com/Location" + "(google.api.field_behavior)": "OPTIONAL", + "(google.api.resource_reference).type": "cloudkms.googleapis.com/CryptoKey", + "proto3_optional": true } }, - "pageSize": { - "type": "int32", - "id": 2 + "automatedBackupConfig": { + "type": "AutomatedBackupConfig", + "id": 42, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } }, - "pageToken": { - "type": "string", - "id": 3 + "encryptionInfo": { + "type": "EncryptionInfo", + "id": 43, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } } - } - }, - "ListClustersResponse": { - "fields": { - "clusters": { - "rule": "repeated", - "type": "Cluster", - "id": 1 + }, + "nested": { + "StateInfo": { + "oneofs": { + "info": { + "oneof": [ + "updateInfo" + ] + } + }, + "fields": { + "updateInfo": { + "type": "UpdateInfo", + "id": 1 + } + }, + "nested": { + "UpdateInfo": { + "oneofs": { + "_targetShardCount": { + "oneof": [ + "targetShardCount" + ] + }, + "_targetReplicaCount": { + "oneof": [ + "targetReplicaCount" + ] + } + }, + "fields": { + "targetShardCount": { + "type": "int32", + "id": 1, + "options": { + "proto3_optional": true + } + }, + "targetReplicaCount": { + "type": "int32", + "id": 2, + "options": { + "proto3_optional": true + } + } + } + } + } }, - "nextPageToken": { - "type": "string", - "id": 2 + "GcsBackupSource": { + "fields": { + "uris": { + "rule": "repeated", + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + } }, - "unreachable": { - "rule": "repeated", - "type": "string", - "id": 3 + "ManagedBackupSource": { + "fields": { + "backup": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + } + }, + "State": { + "values": { + "STATE_UNSPECIFIED": 0, + "CREATING": 1, + "ACTIVE": 2, + "UPDATING": 3, + "DELETING": 4 + } } } }, - "UpdateClusterRequest": { + "AutomatedBackupConfig": { + "oneofs": { + "schedule": { + "oneof": [ + "fixedFrequencySchedule" + ] + }, + "_retention": { + "oneof": [ + "retention" + ] + } + }, "fields": { - "updateMask": { - "type": "google.protobuf.FieldMask", + "fixedFrequencySchedule": { + "type": "FixedFrequencySchedule", + "id": 2, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "automatedBackupMode": { + "type": "AutomatedBackupMode", "id": 1, "options": { - "(google.api.field_behavior)": "REQUIRED" + "(google.api.field_behavior)": "OPTIONAL" } }, - "cluster": { - "type": "Cluster", - "id": 2, + "retention": { + "type": "google.protobuf.Duration", + "id": 3, "options": { - "(google.api.field_behavior)": "REQUIRED" + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + } + }, + "nested": { + "FixedFrequencySchedule": { + "oneofs": { + "_startTime": { + "oneof": [ + "startTime" + ] + } + }, + "fields": { + "startTime": { + "type": "google.type.TimeOfDay", + "id": 2, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "proto3_optional": true + } + } } }, - "requestId": { - "type": "string", - "id": 3 + "AutomatedBackupMode": { + "values": { + "AUTOMATED_BACKUP_MODE_UNSPECIFIED": 0, + "DISABLED": 1, + "ENABLED": 2 + } } } }, - "GetClusterRequest": { + "BackupCollection": { + "options": { + "(google.api.resource).type": "redis.googleapis.com/BackupCollection", + "(google.api.resource).pattern": "projects/{project}/locations/{location}/backupCollections/{backup_collection}", + "(google.api.resource).plural": "backupCollections", + "(google.api.resource).singular": "backupCollection" + }, "fields": { "name": { "type": "string", "id": 1, "options": { - "(google.api.field_behavior)": "REQUIRED", - "(google.api.resource_reference).type": "redis.googleapis.com/Cluster" + "(google.api.field_behavior)": "IDENTIFIER" } - } - } - }, - "DeleteClusterRequest": { - "fields": { - "name": { + }, + "clusterUid": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_info).format": "UUID4", + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "cluster": { "type": "string", - "id": 1, + "id": 4, "options": { - "(google.api.field_behavior)": "REQUIRED", + "(google.api.field_behavior)": "OUTPUT_ONLY", "(google.api.resource_reference).type": "redis.googleapis.com/Cluster" } }, - "requestId": { + "kmsKey": { "type": "string", - "id": 2 - } - } - }, - "GetClusterCertificateAuthorityRequest": { - "fields": { - "name": { + "id": 5, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY", + "(google.api.resource_reference).type": "cloudkms.googleapis.com/CryptoKey" + } + }, + "uid": { "type": "string", - "id": 1, + "id": 6, "options": { - "(google.api.field_behavior)": "REQUIRED", - "(google.api.resource_reference).type": "redis.googleapis.com/CertificateAuthority" + "(google.api.field_info).format": "UUID4", + "(google.api.field_behavior)": "OUTPUT_ONLY" } } } }, - "Cluster": { + "Backup": { "options": { - "(google.api.resource).type": "redis.googleapis.com/Cluster", - "(google.api.resource).pattern": "projects/{project}/locations/{location}/clusters/{cluster}" - }, - "oneofs": { - "_replicaCount": { - "oneof": [ - "replicaCount" - ] - }, - "_sizeGb": { - "oneof": [ - "sizeGb" - ] - }, - "_shardCount": { - "oneof": [ - "shardCount" - ] - }, - "_preciseSizeGb": { - "oneof": [ - "preciseSizeGb" - ] - }, - "_deletionProtectionEnabled": { - "oneof": [ - "deletionProtectionEnabled" - ] - } + "(google.api.resource).type": "redis.googleapis.com/Backup", + "(google.api.resource).pattern": "projects/{project}/locations/{location}/backupCollections/{backup_collection}/backups/{backup}", + "(google.api.resource).plural": "backups", + "(google.api.resource).singular": "backup" }, "fields": { "name": { "type": "string", "id": 1, "options": { - "(google.api.field_behavior)": "REQUIRED" + "(google.api.field_behavior)": "IDENTIFIER" } }, "createTime": { "type": "google.protobuf.Timestamp", - "id": 3, + "id": 2, "options": { "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "state": { - "type": "State", + "cluster": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY", + "(google.api.resource_reference).type": "redis.googleapis.com/Cluster" + } + }, + "clusterUid": { + "type": "string", "id": 4, "options": { + "(google.api.field_info).format": "UUID4", "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "uid": { - "type": "string", + "totalSizeBytes": { + "type": "int64", "id": 5, "options": { "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "replicaCount": { - "type": "int32", - "id": 8, + "expireTime": { + "type": "google.protobuf.Timestamp", + "id": 6, "options": { - "(google.api.field_behavior)": "OPTIONAL", - "proto3_optional": true + "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "authorizationMode": { - "type": "AuthorizationMode", - "id": 11, + "engineVersion": { + "type": "string", + "id": 7, "options": { - "(google.api.field_behavior)": "OPTIONAL" + "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "transitEncryptionMode": { - "type": "TransitEncryptionMode", - "id": 12, + "backupFiles": { + "rule": "repeated", + "type": "BackupFile", + "id": 8, "options": { - "(google.api.field_behavior)": "OPTIONAL" + "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "sizeGb": { + "nodeType": { + "type": "NodeType", + "id": 9, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "replicaCount": { "type": "int32", - "id": 13, + "id": 10, "options": { - "(google.api.field_behavior)": "OUTPUT_ONLY", - "proto3_optional": true + "(google.api.field_behavior)": "OUTPUT_ONLY" } }, "shardCount": { "type": "int32", - "id": 14, + "id": 11, "options": { - "(google.api.field_behavior)": "REQUIRED", - "proto3_optional": true + "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "pscConfigs": { - "rule": "repeated", - "type": "PscConfig", - "id": 15, + "backupType": { + "type": "BackupType", + "id": 12, "options": { - "(google.api.field_behavior)": "REQUIRED" + "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "discoveryEndpoints": { - "rule": "repeated", - "type": "DiscoveryEndpoint", - "id": 16, + "state": { + "type": "State", + "id": 13, "options": { "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "pscConnections": { - "rule": "repeated", - "type": "PscConnection", - "id": 17, + "encryptionInfo": { + "type": "EncryptionInfo", + "id": 14, "options": { "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "stateInfo": { - "type": "StateInfo", - "id": 18, + "uid": { + "type": "string", + "id": 15, "options": { + "(google.api.field_info).format": "UUID4", "(google.api.field_behavior)": "OUTPUT_ONLY" } + } + }, + "nested": { + "BackupType": { + "values": { + "BACKUP_TYPE_UNSPECIFIED": 0, + "ON_DEMAND": 1, + "AUTOMATED": 2 + } }, - "nodeType": { - "type": "NodeType", - "id": 19, + "State": { + "values": { + "STATE_UNSPECIFIED": 0, + "CREATING": 1, + "ACTIVE": 2, + "DELETING": 3, + "SUSPENDED": 4 + } + } + } + }, + "BackupFile": { + "fields": { + "fileName": { + "type": "string", + "id": 1, "options": { - "(google.api.field_behavior)": "OPTIONAL" + "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "persistenceConfig": { - "type": "ClusterPersistenceConfig", - "id": 20, + "sizeBytes": { + "type": "int64", + "id": 2, "options": { - "(google.api.field_behavior)": "OPTIONAL" + "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "redisConfigs": { - "keyType": "string", + "createTime": { + "type": "google.protobuf.Timestamp", + "id": 3, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + } + } + }, + "PscServiceAttachment": { + "fields": { + "serviceAttachment": { "type": "string", - "id": 21, + "id": 1, "options": { - "(google.api.field_behavior)": "OPTIONAL" + "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "preciseSizeGb": { - "type": "double", - "id": 22, + "connectionType": { + "type": "ConnectionType", + "id": 3, "options": { - "(google.api.field_behavior)": "OUTPUT_ONLY", - "proto3_optional": true + "(google.api.field_behavior)": "OUTPUT_ONLY" } + } + } + }, + "CrossClusterReplicationConfig": { + "fields": { + "clusterRole": { + "type": "ClusterRole", + "id": 1 }, - "zoneDistributionConfig": { - "type": "ZoneDistributionConfig", - "id": 23, + "primaryCluster": { + "type": "RemoteCluster", + "id": 2 + }, + "secondaryClusters": { + "rule": "repeated", + "type": "RemoteCluster", + "id": 3 + }, + "updateTime": { + "type": "google.protobuf.Timestamp", + "id": 4, "options": { - "(google.api.field_behavior)": "OPTIONAL" + "(google.api.field_behavior)": "OUTPUT_ONLY" } }, - "deletionProtectionEnabled": { - "type": "bool", - "id": 25, + "membership": { + "type": "Membership", + "id": 5, "options": { - "(google.api.field_behavior)": "OPTIONAL", - "proto3_optional": true + "(google.api.field_behavior)": "OUTPUT_ONLY" } } }, "nested": { - "StateInfo": { - "oneofs": { - "info": { - "oneof": [ - "updateInfo" - ] - } - }, + "RemoteCluster": { "fields": { - "updateInfo": { - "type": "UpdateInfo", - "id": 1 - } - }, - "nested": { - "UpdateInfo": { - "oneofs": { - "_targetShardCount": { - "oneof": [ - "targetShardCount" - ] - }, - "_targetReplicaCount": { - "oneof": [ - "targetReplicaCount" - ] - } - }, - "fields": { - "targetShardCount": { - "type": "int32", - "id": 1, - "options": { - "proto3_optional": true - } - }, - "targetReplicaCount": { - "type": "int32", - "id": 2, - "options": { - "proto3_optional": true - } - } + "cluster": { + "type": "string", + "id": 1, + "options": { + "(google.api.resource_reference).type": "redis.googleapis.com/Cluster" + } + }, + "uid": { + "type": "string", + "id": 2, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" } } } }, - "State": { + "Membership": { + "fields": { + "primaryCluster": { + "type": "RemoteCluster", + "id": 1, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "secondaryClusters": { + "rule": "repeated", + "type": "RemoteCluster", + "id": 2, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + } + } + }, + "ClusterRole": { "values": { - "STATE_UNSPECIFIED": 0, - "CREATING": 1, - "ACTIVE": 2, - "UPDATING": 3, - "DELETING": 4 + "CLUSTER_ROLE_UNSPECIFIED": 0, + "NONE": 1, + "PRIMARY": 2, + "SECONDARY": 3 + } + } + } + }, + "ClusterMaintenancePolicy": { + "fields": { + "createTime": { + "type": "google.protobuf.Timestamp", + "id": 1, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "updateTime": { + "type": "google.protobuf.Timestamp", + "id": 2, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "weeklyMaintenanceWindow": { + "rule": "repeated", + "type": "ClusterWeeklyMaintenanceWindow", + "id": 3 + } + } + }, + "ClusterWeeklyMaintenanceWindow": { + "fields": { + "day": { + "type": "google.type.DayOfWeek", + "id": 1 + }, + "startTime": { + "type": "google.type.TimeOfDay", + "id": 2 + } + } + }, + "ClusterMaintenanceSchedule": { + "fields": { + "startTime": { + "type": "google.protobuf.Timestamp", + "id": 1, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "endTime": { + "type": "google.protobuf.Timestamp", + "id": 2, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" } } } @@ -1417,6 +3523,99 @@ } }, "PscConnection": { + "fields": { + "pscConnectionId": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + }, + "address": { + "type": "string", + "id": 2, + "options": { + "(google.api.field_info).format": "IPV4", + "(google.api.field_behavior)": "REQUIRED" + } + }, + "forwardingRule": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "compute.googleapis.com/ForwardingRule" + } + }, + "projectId": { + "type": "string", + "id": 4, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "network": { + "type": "string", + "id": 5, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "compute.googleapis.com/Network" + } + }, + "serviceAttachment": { + "type": "string", + "id": 6, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "compute.googleapis.com/ServiceAttachment" + } + }, + "pscConnectionStatus": { + "type": "PscConnectionStatus", + "id": 8, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "connectionType": { + "type": "ConnectionType", + "id": 10, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + } + } + }, + "ClusterEndpoint": { + "fields": { + "connections": { + "rule": "repeated", + "type": "ConnectionDetail", + "id": 1 + } + } + }, + "ConnectionDetail": { + "oneofs": { + "connection": { + "oneof": [ + "pscAutoConnection", + "pscConnection" + ] + } + }, + "fields": { + "pscAutoConnection": { + "type": "PscAutoConnection", + "id": 1 + }, + "pscConnection": { + "type": "PscConnection", + "id": 2 + } + } + }, + "PscAutoConnection": { "fields": { "pscConnectionId": { "type": "string", @@ -1429,6 +3628,7 @@ "type": "string", "id": 2, "options": { + "(google.api.field_info).format": "IPV4", "(google.api.field_behavior)": "OUTPUT_ONLY" } }, @@ -1436,19 +3636,46 @@ "type": "string", "id": 3, "options": { - "(google.api.field_behavior)": "OUTPUT_ONLY" + "(google.api.field_behavior)": "OUTPUT_ONLY", + "(google.api.resource_reference).type": "compute.googleapis.com/ForwardingRule" } }, "projectId": { "type": "string", "id": 4, "options": { - "(google.api.field_behavior)": "OUTPUT_ONLY" + "(google.api.field_behavior)": "REQUIRED" } }, "network": { "type": "string", - "id": 5 + "id": 5, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "compute.googleapis.com/Network" + } + }, + "serviceAttachment": { + "type": "string", + "id": 6, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY", + "(google.api.resource_reference).type": "compute.googleapis.com/ServiceAttachment" + } + }, + "pscConnectionStatus": { + "type": "PscConnectionStatus", + "id": 8, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "connectionType": { + "type": "ConnectionType", + "id": 9, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } } } }, @@ -1508,7 +3735,9 @@ "CertificateAuthority": { "options": { "(google.api.resource).type": "redis.googleapis.com/CertificateAuthority", - "(google.api.resource).pattern": "projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority" + "(google.api.resource).pattern": "projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority", + "(google.api.resource).plural": "certificateAuthorities", + "(google.api.resource).singular": "certificateAuthority" }, "oneofs": { "serverCa": { @@ -1664,6 +3893,97 @@ } } } + }, + "RescheduleClusterMaintenanceRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "redis.googleapis.com/Cluster" + } + }, + "rescheduleType": { + "type": "RescheduleType", + "id": 2, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + }, + "scheduleTime": { + "type": "google.protobuf.Timestamp", + "id": 3, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + }, + "nested": { + "RescheduleType": { + "values": { + "RESCHEDULE_TYPE_UNSPECIFIED": 0, + "IMMEDIATE": 1, + "SPECIFIC_TIME": 3 + } + } + } + }, + "EncryptionInfo": { + "fields": { + "encryptionType": { + "type": "Type", + "id": 1, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "kmsKeyVersions": { + "rule": "repeated", + "type": "string", + "id": 2, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY", + "(google.api.resource_reference).type": "cloudkms.googleapis.com/CryptoKeyVersion" + } + }, + "kmsKeyPrimaryState": { + "type": "KmsKeyState", + "id": 3, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "lastUpdateTime": { + "type": "google.protobuf.Timestamp", + "id": 4, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + } + }, + "nested": { + "Type": { + "values": { + "TYPE_UNSPECIFIED": 0, + "GOOGLE_DEFAULT_ENCRYPTION": 1, + "CUSTOMER_MANAGED_ENCRYPTION": 2 + } + }, + "KmsKeyState": { + "values": { + "KMS_KEY_STATE_UNSPECIFIED": 0, + "ENABLED": 1, + "PERMISSION_DENIED": 2, + "DISABLED": 3, + "DESTROYED": 4, + "DESTROY_SCHEDULED": 5, + "EKM_KEY_UNREACHABLE_DETECTED": 6, + "BILLING_DISABLED": 7, + "UNKNOWN_FAILURE": 8 + } + } + } } } } @@ -2084,6 +4404,30 @@ "IDENTIFIER": 8 } }, + "fieldInfo": { + "type": "google.api.FieldInfo", + "id": 291403980, + "extend": "google.protobuf.FieldOptions" + }, + "FieldInfo": { + "fields": { + "format": { + "type": "Format", + "id": 1 + } + }, + "nested": { + "Format": { + "values": { + "FORMAT_UNSPECIFIED": 0, + "UUID4": 1, + "IPV4": 2, + "IPV6": 3, + "IPV4_OR_IPV6": 4 + } + } + } + }, "resourceReference": { "type": "google.api.ResourceReference", "id": 1055, @@ -3732,6 +6076,50 @@ } } } + }, + "type": { + "options": { + "go_package": "google.golang.org/genproto/googleapis/type/timeofday;timeofday", + "java_multiple_files": true, + "java_outer_classname": "TimeOfDayProto", + "java_package": "com.google.type", + "objc_class_prefix": "GTP", + "cc_enable_arenas": true + }, + "nested": { + "DayOfWeek": { + "values": { + "DAY_OF_WEEK_UNSPECIFIED": 0, + "MONDAY": 1, + "TUESDAY": 2, + "WEDNESDAY": 3, + "THURSDAY": 4, + "FRIDAY": 5, + "SATURDAY": 6, + "SUNDAY": 7 + } + }, + "TimeOfDay": { + "fields": { + "hours": { + "type": "int32", + "id": 1 + }, + "minutes": { + "type": "int32", + "id": 2 + }, + "seconds": { + "type": "int32", + "id": 3 + }, + "nanos": { + "type": "int32", + "id": 4 + } + } + } + } } } } diff --git a/packages/google-cloud-redis-cluster/samples/README.md b/packages/google-cloud-redis-cluster/samples/README.md index 1c94208f7aa..1bee84630ab 100644 --- a/packages/google-cloud-redis-cluster/samples/README.md +++ b/packages/google-cloud-redis-cluster/samples/README.md @@ -12,17 +12,33 @@ * [Before you begin](#before-you-begin) * [Samples](#samples) + * [Cloud_redis_cluster.backup_cluster](#cloud_redis_cluster.backup_cluster) * [Cloud_redis_cluster.create_cluster](#cloud_redis_cluster.create_cluster) + * [Cloud_redis_cluster.delete_backup](#cloud_redis_cluster.delete_backup) * [Cloud_redis_cluster.delete_cluster](#cloud_redis_cluster.delete_cluster) + * [Cloud_redis_cluster.export_backup](#cloud_redis_cluster.export_backup) + * [Cloud_redis_cluster.get_backup](#cloud_redis_cluster.get_backup) + * [Cloud_redis_cluster.get_backup_collection](#cloud_redis_cluster.get_backup_collection) * [Cloud_redis_cluster.get_cluster](#cloud_redis_cluster.get_cluster) * [Cloud_redis_cluster.get_cluster_certificate_authority](#cloud_redis_cluster.get_cluster_certificate_authority) + * [Cloud_redis_cluster.list_backup_collections](#cloud_redis_cluster.list_backup_collections) + * [Cloud_redis_cluster.list_backups](#cloud_redis_cluster.list_backups) * [Cloud_redis_cluster.list_clusters](#cloud_redis_cluster.list_clusters) + * [Cloud_redis_cluster.reschedule_cluster_maintenance](#cloud_redis_cluster.reschedule_cluster_maintenance) * [Cloud_redis_cluster.update_cluster](#cloud_redis_cluster.update_cluster) + * [Cloud_redis_cluster.backup_cluster](#cloud_redis_cluster.backup_cluster) * [Cloud_redis_cluster.create_cluster](#cloud_redis_cluster.create_cluster) + * [Cloud_redis_cluster.delete_backup](#cloud_redis_cluster.delete_backup) * [Cloud_redis_cluster.delete_cluster](#cloud_redis_cluster.delete_cluster) + * [Cloud_redis_cluster.export_backup](#cloud_redis_cluster.export_backup) + * [Cloud_redis_cluster.get_backup](#cloud_redis_cluster.get_backup) + * [Cloud_redis_cluster.get_backup_collection](#cloud_redis_cluster.get_backup_collection) * [Cloud_redis_cluster.get_cluster](#cloud_redis_cluster.get_cluster) * [Cloud_redis_cluster.get_cluster_certificate_authority](#cloud_redis_cluster.get_cluster_certificate_authority) + * [Cloud_redis_cluster.list_backup_collections](#cloud_redis_cluster.list_backup_collections) + * [Cloud_redis_cluster.list_backups](#cloud_redis_cluster.list_backups) * [Cloud_redis_cluster.list_clusters](#cloud_redis_cluster.list_clusters) + * [Cloud_redis_cluster.reschedule_cluster_maintenance](#cloud_redis_cluster.reschedule_cluster_maintenance) * [Cloud_redis_cluster.update_cluster](#cloud_redis_cluster.update_cluster) * [Quickstart](#quickstart) @@ -41,6 +57,23 @@ Before running the samples, make sure you've followed the steps outlined in +### Cloud_redis_cluster.backup_cluster + +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.backup_cluster.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.backup_cluster.js,samples/README.md) + +__Usage:__ + + +`node packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.backup_cluster.js` + + +----- + + + + ### Cloud_redis_cluster.create_cluster View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.create_cluster.js). @@ -58,6 +91,23 @@ __Usage:__ +### Cloud_redis_cluster.delete_backup + +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.delete_backup.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.delete_backup.js,samples/README.md) + +__Usage:__ + + +`node packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.delete_backup.js` + + +----- + + + + ### Cloud_redis_cluster.delete_cluster View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.delete_cluster.js). @@ -75,6 +125,57 @@ __Usage:__ +### Cloud_redis_cluster.export_backup + +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.export_backup.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.export_backup.js,samples/README.md) + +__Usage:__ + + +`node packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.export_backup.js` + + +----- + + + + +### Cloud_redis_cluster.get_backup + +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_backup.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_backup.js,samples/README.md) + +__Usage:__ + + +`node packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_backup.js` + + +----- + + + + +### Cloud_redis_cluster.get_backup_collection + +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_backup_collection.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_backup_collection.js,samples/README.md) + +__Usage:__ + + +`node packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_backup_collection.js` + + +----- + + + + ### Cloud_redis_cluster.get_cluster View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_cluster.js). @@ -109,6 +210,40 @@ __Usage:__ +### Cloud_redis_cluster.list_backup_collections + +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_backup_collections.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_backup_collections.js,samples/README.md) + +__Usage:__ + + +`node packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_backup_collections.js` + + +----- + + + + +### Cloud_redis_cluster.list_backups + +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_backups.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_backups.js,samples/README.md) + +__Usage:__ + + +`node packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_backups.js` + + +----- + + + + ### Cloud_redis_cluster.list_clusters View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_clusters.js). @@ -126,6 +261,23 @@ __Usage:__ +### Cloud_redis_cluster.reschedule_cluster_maintenance + +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.reschedule_cluster_maintenance.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.reschedule_cluster_maintenance.js,samples/README.md) + +__Usage:__ + + +`node packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.reschedule_cluster_maintenance.js` + + +----- + + + + ### Cloud_redis_cluster.update_cluster View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.update_cluster.js). @@ -143,6 +295,23 @@ __Usage:__ +### Cloud_redis_cluster.backup_cluster + +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.backup_cluster.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.backup_cluster.js,samples/README.md) + +__Usage:__ + + +`node packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.backup_cluster.js` + + +----- + + + + ### Cloud_redis_cluster.create_cluster View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.create_cluster.js). @@ -160,6 +329,23 @@ __Usage:__ +### Cloud_redis_cluster.delete_backup + +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.delete_backup.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.delete_backup.js,samples/README.md) + +__Usage:__ + + +`node packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.delete_backup.js` + + +----- + + + + ### Cloud_redis_cluster.delete_cluster View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.delete_cluster.js). @@ -177,6 +363,57 @@ __Usage:__ +### Cloud_redis_cluster.export_backup + +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.export_backup.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.export_backup.js,samples/README.md) + +__Usage:__ + + +`node packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.export_backup.js` + + +----- + + + + +### Cloud_redis_cluster.get_backup + +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_backup.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_backup.js,samples/README.md) + +__Usage:__ + + +`node packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_backup.js` + + +----- + + + + +### Cloud_redis_cluster.get_backup_collection + +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_backup_collection.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_backup_collection.js,samples/README.md) + +__Usage:__ + + +`node packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_backup_collection.js` + + +----- + + + + ### Cloud_redis_cluster.get_cluster View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_cluster.js). @@ -211,6 +448,40 @@ __Usage:__ +### Cloud_redis_cluster.list_backup_collections + +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_backup_collections.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_backup_collections.js,samples/README.md) + +__Usage:__ + + +`node packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_backup_collections.js` + + +----- + + + + +### Cloud_redis_cluster.list_backups + +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_backups.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_backups.js,samples/README.md) + +__Usage:__ + + +`node packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_backups.js` + + +----- + + + + ### Cloud_redis_cluster.list_clusters View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_clusters.js). @@ -228,6 +499,23 @@ __Usage:__ +### Cloud_redis_cluster.reschedule_cluster_maintenance + +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.reschedule_cluster_maintenance.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.reschedule_cluster_maintenance.js,samples/README.md) + +__Usage:__ + + +`node packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.reschedule_cluster_maintenance.js` + + +----- + + + + ### Cloud_redis_cluster.update_cluster View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.update_cluster.js). diff --git a/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.backup_cluster.js b/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.backup_cluster.js new file mode 100644 index 00000000000..15165fcd514 --- /dev/null +++ b/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.backup_cluster.js @@ -0,0 +1,74 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(name) { + // [START redis_v1_generated_CloudRedisCluster_BackupCluster_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Redis cluster resource name using the form: + * `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` + * where `location_id` refers to a GCP region. + */ + // const name = 'abc123' + /** + * Optional. TTL for the backup to expire. Value range is 1 day to 100 years. + * If not specified, the default value is 100 years. + */ + // const ttl = {} + /** + * Optional. The id of the backup to be created. If not specified, the + * default value (YYYYMMDDHHMMSS _Shortened Cluster UID is used. + */ + // const backupId = 'abc123' + + // Imports the Cluster library + const {CloudRedisClusterClient} = require('@google-cloud/redis-cluster').v1; + + // Instantiates a client + const clusterClient = new CloudRedisClusterClient(); + + async function callBackupCluster() { + // Construct request + const request = { + name, + }; + + // Run request + const [operation] = await clusterClient.backupCluster(request); + const [response] = await operation.promise(); + console.log(response); + } + + callBackupCluster(); + // [END redis_v1_generated_CloudRedisCluster_BackupCluster_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.delete_backup.js b/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.delete_backup.js new file mode 100644 index 00000000000..ae172ab380c --- /dev/null +++ b/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.delete_backup.js @@ -0,0 +1,67 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(name) { + // [START redis_v1_generated_CloudRedisCluster_DeleteBackup_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Redis backup resource name using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}` + */ + // const name = 'abc123' + /** + * Optional. Idempotent request UUID. + */ + // const requestId = 'abc123' + + // Imports the Cluster library + const {CloudRedisClusterClient} = require('@google-cloud/redis-cluster').v1; + + // Instantiates a client + const clusterClient = new CloudRedisClusterClient(); + + async function callDeleteBackup() { + // Construct request + const request = { + name, + }; + + // Run request + const [operation] = await clusterClient.deleteBackup(request); + const [response] = await operation.promise(); + console.log(response); + } + + callDeleteBackup(); + // [END redis_v1_generated_CloudRedisCluster_DeleteBackup_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.export_backup.js b/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.export_backup.js new file mode 100644 index 00000000000..2dfdb6ee7f6 --- /dev/null +++ b/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.export_backup.js @@ -0,0 +1,67 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(name) { + // [START redis_v1_generated_CloudRedisCluster_ExportBackup_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Google Cloud Storage bucket, like "my-bucket". + */ + // const gcsBucket = 'abc123' + /** + * Required. Redis backup resource name using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}` + */ + // const name = 'abc123' + + // Imports the Cluster library + const {CloudRedisClusterClient} = require('@google-cloud/redis-cluster').v1; + + // Instantiates a client + const clusterClient = new CloudRedisClusterClient(); + + async function callExportBackup() { + // Construct request + const request = { + name, + }; + + // Run request + const [operation] = await clusterClient.exportBackup(request); + const [response] = await operation.promise(); + console.log(response); + } + + callExportBackup(); + // [END redis_v1_generated_CloudRedisCluster_ExportBackup_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_backup.js b/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_backup.js new file mode 100644 index 00000000000..11d8e3e61c2 --- /dev/null +++ b/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_backup.js @@ -0,0 +1,62 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(name) { + // [START redis_v1_generated_CloudRedisCluster_GetBackup_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Redis backup resource name using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}` + */ + // const name = 'abc123' + + // Imports the Cluster library + const {CloudRedisClusterClient} = require('@google-cloud/redis-cluster').v1; + + // Instantiates a client + const clusterClient = new CloudRedisClusterClient(); + + async function callGetBackup() { + // Construct request + const request = { + name, + }; + + // Run request + const response = await clusterClient.getBackup(request); + console.log(response); + } + + callGetBackup(); + // [END redis_v1_generated_CloudRedisCluster_GetBackup_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_backup_collection.js b/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_backup_collection.js new file mode 100644 index 00000000000..99c4f8d2789 --- /dev/null +++ b/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.get_backup_collection.js @@ -0,0 +1,63 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(name) { + // [START redis_v1_generated_CloudRedisCluster_GetBackupCollection_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Redis backupCollection resource name using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}` + * where `location_id` refers to a GCP region. + */ + // const name = 'abc123' + + // Imports the Cluster library + const {CloudRedisClusterClient} = require('@google-cloud/redis-cluster').v1; + + // Instantiates a client + const clusterClient = new CloudRedisClusterClient(); + + async function callGetBackupCollection() { + // Construct request + const request = { + name, + }; + + // Run request + const response = await clusterClient.getBackupCollection(request); + console.log(response); + } + + callGetBackupCollection(); + // [END redis_v1_generated_CloudRedisCluster_GetBackupCollection_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_backup_collections.js b/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_backup_collections.js new file mode 100644 index 00000000000..a2a1e45e1cf --- /dev/null +++ b/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_backup_collections.js @@ -0,0 +1,80 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(parent) { + // [START redis_v1_generated_CloudRedisCluster_ListBackupCollections_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The resource name of the backupCollection location using the + * form: + * `projects/{project_id}/locations/{location_id}` + * where `location_id` refers to a GCP region. + */ + // const parent = 'abc123' + /** + * Optional. The maximum number of items to return. + * If not specified, a default value of 1000 will be used by the service. + * Regardless of the page_size value, the response may include a partial list + * and a caller should only rely on response's + * `next_page_token` google.cloud.redis.cluster.v1.ListBackupCollectionsResponse.next_page_token + * to determine if there are more clusters left to be queried. + */ + // const pageSize = 1234 + /** + * Optional. The `next_page_token` value returned from a previous + * ListBackupCollections request, if any. + */ + // const pageToken = 'abc123' + + // Imports the Cluster library + const {CloudRedisClusterClient} = require('@google-cloud/redis-cluster').v1; + + // Instantiates a client + const clusterClient = new CloudRedisClusterClient(); + + async function callListBackupCollections() { + // Construct request + const request = { + parent, + }; + + // Run request + const iterable = clusterClient.listBackupCollectionsAsync(request); + for await (const response of iterable) { + console.log(response); + } + } + + callListBackupCollections(); + // [END redis_v1_generated_CloudRedisCluster_ListBackupCollections_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_backups.js b/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_backups.js new file mode 100644 index 00000000000..2b97070f1c4 --- /dev/null +++ b/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.list_backups.js @@ -0,0 +1,78 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(parent) { + // [START redis_v1_generated_CloudRedisCluster_ListBackups_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The resource name of the backupCollection using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}` + */ + // const parent = 'abc123' + /** + * Optional. The maximum number of items to return. + * If not specified, a default value of 1000 will be used by the service. + * Regardless of the page_size value, the response may include a partial list + * and a caller should only rely on response's + * `next_page_token` google.cloud.redis.cluster.v1.ListBackupsResponse.next_page_token + * to determine if there are more clusters left to be queried. + */ + // const pageSize = 1234 + /** + * Optional. The `next_page_token` value returned from a previous + * ListBackupCollections request, if any. + */ + // const pageToken = 'abc123' + + // Imports the Cluster library + const {CloudRedisClusterClient} = require('@google-cloud/redis-cluster').v1; + + // Instantiates a client + const clusterClient = new CloudRedisClusterClient(); + + async function callListBackups() { + // Construct request + const request = { + parent, + }; + + // Run request + const iterable = clusterClient.listBackupsAsync(request); + for await (const response of iterable) { + console.log(response); + } + } + + callListBackups(); + // [END redis_v1_generated_CloudRedisCluster_ListBackups_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.reschedule_cluster_maintenance.js b/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.reschedule_cluster_maintenance.js new file mode 100644 index 00000000000..fb26d572dd8 --- /dev/null +++ b/packages/google-cloud-redis-cluster/samples/generated/v1/cloud_redis_cluster.reschedule_cluster_maintenance.js @@ -0,0 +1,76 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(name, rescheduleType) { + // [START redis_v1_generated_CloudRedisCluster_RescheduleClusterMaintenance_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Redis Cluster instance resource name using the form: + * `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` + * where `location_id` refers to a GCP region. + */ + // const name = 'abc123' + /** + * Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as + * well. + */ + // const rescheduleType = {} + /** + * Optional. Timestamp when the maintenance shall be rescheduled to if + * reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for + * example `2012-11-15T16:19:00.094Z`. + */ + // const scheduleTime = {} + + // Imports the Cluster library + const {CloudRedisClusterClient} = require('@google-cloud/redis-cluster').v1; + + // Instantiates a client + const clusterClient = new CloudRedisClusterClient(); + + async function callRescheduleClusterMaintenance() { + // Construct request + const request = { + name, + rescheduleType, + }; + + // Run request + const [operation] = await clusterClient.rescheduleClusterMaintenance(request); + const [response] = await operation.promise(); + console.log(response); + } + + callRescheduleClusterMaintenance(); + // [END redis_v1_generated_CloudRedisCluster_RescheduleClusterMaintenance_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-redis-cluster/samples/generated/v1/snippet_metadata_google.cloud.redis.cluster.v1.json b/packages/google-cloud-redis-cluster/samples/generated/v1/snippet_metadata_google.cloud.redis.cluster.v1.json index 7c3305f6ced..43051b8d48f 100644 --- a/packages/google-cloud-redis-cluster/samples/generated/v1/snippet_metadata_google.cloud.redis.cluster.v1.json +++ b/packages/google-cloud-redis-cluster/samples/generated/v1/snippet_metadata_google.cloud.redis.cluster.v1.json @@ -282,6 +282,366 @@ } } } + }, + { + "regionTag": "redis_v1_generated_CloudRedisCluster_RescheduleClusterMaintenance_async", + "title": "CloudRedisCluster rescheduleClusterMaintenance Sample", + "origin": "API_DEFINITION", + "description": " Reschedules upcoming maintenance event.", + "canonical": true, + "file": "cloud_redis_cluster.reschedule_cluster_maintenance.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 68, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "RescheduleClusterMaintenance", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster.RescheduleClusterMaintenance", + "async": true, + "parameters": [ + { + "name": "name", + "type": "TYPE_STRING" + }, + { + "name": "reschedule_type", + "type": ".google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.RescheduleType" + }, + { + "name": "schedule_time", + "type": ".google.protobuf.Timestamp" + } + ], + "resultType": ".google.longrunning.Operation", + "client": { + "shortName": "CloudRedisClusterClient", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisClusterClient" + }, + "method": { + "shortName": "RescheduleClusterMaintenance", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster.RescheduleClusterMaintenance", + "service": { + "shortName": "CloudRedisCluster", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster" + } + } + } + }, + { + "regionTag": "redis_v1_generated_CloudRedisCluster_ListBackupCollections_async", + "title": "CloudRedisCluster listBackupCollections Sample", + "origin": "API_DEFINITION", + "description": " Lists all backup collections owned by a consumer project in either the specified location (region) or all locations. If `location_id` is specified as `-` (wildcard), then all regions available to the project are queried, and the results are aggregated.", + "canonical": true, + "file": "cloud_redis_cluster.list_backup_collections.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 72, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "ListBackupCollections", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster.ListBackupCollections", + "async": true, + "parameters": [ + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "page_size", + "type": "TYPE_INT32" + }, + { + "name": "page_token", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.cloud.redis.cluster.v1.ListBackupCollectionsResponse", + "client": { + "shortName": "CloudRedisClusterClient", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisClusterClient" + }, + "method": { + "shortName": "ListBackupCollections", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster.ListBackupCollections", + "service": { + "shortName": "CloudRedisCluster", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster" + } + } + } + }, + { + "regionTag": "redis_v1_generated_CloudRedisCluster_GetBackupCollection_async", + "title": "CloudRedisCluster getBackupCollection Sample", + "origin": "API_DEFINITION", + "description": " Get a backup collection.", + "canonical": true, + "file": "cloud_redis_cluster.get_backup_collection.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 55, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "GetBackupCollection", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster.GetBackupCollection", + "async": true, + "parameters": [ + { + "name": "name", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.cloud.redis.cluster.v1.BackupCollection", + "client": { + "shortName": "CloudRedisClusterClient", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisClusterClient" + }, + "method": { + "shortName": "GetBackupCollection", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster.GetBackupCollection", + "service": { + "shortName": "CloudRedisCluster", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster" + } + } + } + }, + { + "regionTag": "redis_v1_generated_CloudRedisCluster_ListBackups_async", + "title": "CloudRedisCluster listBackups Sample", + "origin": "API_DEFINITION", + "description": " Lists all backups owned by a backup collection.", + "canonical": true, + "file": "cloud_redis_cluster.list_backups.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 70, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "ListBackups", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster.ListBackups", + "async": true, + "parameters": [ + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "page_size", + "type": "TYPE_INT32" + }, + { + "name": "page_token", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.cloud.redis.cluster.v1.ListBackupsResponse", + "client": { + "shortName": "CloudRedisClusterClient", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisClusterClient" + }, + "method": { + "shortName": "ListBackups", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster.ListBackups", + "service": { + "shortName": "CloudRedisCluster", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster" + } + } + } + }, + { + "regionTag": "redis_v1_generated_CloudRedisCluster_GetBackup_async", + "title": "CloudRedisCluster getBackup Sample", + "origin": "API_DEFINITION", + "description": " Gets the details of a specific backup.", + "canonical": true, + "file": "cloud_redis_cluster.get_backup.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 54, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "GetBackup", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster.GetBackup", + "async": true, + "parameters": [ + { + "name": "name", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.cloud.redis.cluster.v1.Backup", + "client": { + "shortName": "CloudRedisClusterClient", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisClusterClient" + }, + "method": { + "shortName": "GetBackup", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster.GetBackup", + "service": { + "shortName": "CloudRedisCluster", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster" + } + } + } + }, + { + "regionTag": "redis_v1_generated_CloudRedisCluster_DeleteBackup_async", + "title": "CloudRedisCluster deleteBackup Sample", + "origin": "API_DEFINITION", + "description": " Deletes a specific backup.", + "canonical": true, + "file": "cloud_redis_cluster.delete_backup.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 59, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "DeleteBackup", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster.DeleteBackup", + "async": true, + "parameters": [ + { + "name": "name", + "type": "TYPE_STRING" + }, + { + "name": "request_id", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.longrunning.Operation", + "client": { + "shortName": "CloudRedisClusterClient", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisClusterClient" + }, + "method": { + "shortName": "DeleteBackup", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster.DeleteBackup", + "service": { + "shortName": "CloudRedisCluster", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster" + } + } + } + }, + { + "regionTag": "redis_v1_generated_CloudRedisCluster_ExportBackup_async", + "title": "CloudRedisCluster exportBackup Sample", + "origin": "API_DEFINITION", + "description": " Exports a specific backup to a customer target Cloud Storage URI.", + "canonical": true, + "file": "cloud_redis_cluster.export_backup.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 59, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "ExportBackup", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster.ExportBackup", + "async": true, + "parameters": [ + { + "name": "gcs_bucket", + "type": "TYPE_STRING" + }, + { + "name": "name", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.longrunning.Operation", + "client": { + "shortName": "CloudRedisClusterClient", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisClusterClient" + }, + "method": { + "shortName": "ExportBackup", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster.ExportBackup", + "service": { + "shortName": "CloudRedisCluster", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster" + } + } + } + }, + { + "regionTag": "redis_v1_generated_CloudRedisCluster_BackupCluster_async", + "title": "CloudRedisCluster backupCluster Sample", + "origin": "API_DEFINITION", + "description": " Backup Redis Cluster. If this is the first time a backup is being created, a backup collection will be created at the backend, and this backup belongs to this collection. Both collection and backup will have a resource name. Backup will be executed for each shard. A replica (primary if nonHA) will be selected to perform the execution. Backup call will be rejected if there is an ongoing backup or update operation. Be aware that during preview, if the cluster's internal software version is too old, critical update will be performed before actual backup. Once the internal software version is updated to the minimum version required by the backup feature, subsequent backups will not require critical update. After preview, there will be no critical update needed for backup.", + "canonical": true, + "file": "cloud_redis_cluster.backup_cluster.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 66, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "BackupCluster", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster.BackupCluster", + "async": true, + "parameters": [ + { + "name": "name", + "type": "TYPE_STRING" + }, + { + "name": "ttl", + "type": ".google.protobuf.Duration" + }, + { + "name": "backup_id", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.longrunning.Operation", + "client": { + "shortName": "CloudRedisClusterClient", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisClusterClient" + }, + "method": { + "shortName": "BackupCluster", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster.BackupCluster", + "service": { + "shortName": "CloudRedisCluster", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster" + } + } + } } ] } \ No newline at end of file diff --git a/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.backup_cluster.js b/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.backup_cluster.js new file mode 100644 index 00000000000..1a2ef30c5ab --- /dev/null +++ b/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.backup_cluster.js @@ -0,0 +1,74 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(name) { + // [START redis_v1beta1_generated_CloudRedisCluster_BackupCluster_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Redis cluster resource name using the form: + * `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` + * where `location_id` refers to a GCP region. + */ + // const name = 'abc123' + /** + * Optional. TTL for the backup to expire. Value range is 1 day to 100 years. + * If not specified, the default value is 100 years. + */ + // const ttl = {} + /** + * Optional. The id of the backup to be created. If not specified, the + * default value (YYYYMMDDHHMMSS _Shortened Cluster UID is used. + */ + // const backupId = 'abc123' + + // Imports the Cluster library + const {CloudRedisClusterClient} = require('@google-cloud/redis-cluster').v1beta1; + + // Instantiates a client + const clusterClient = new CloudRedisClusterClient(); + + async function callBackupCluster() { + // Construct request + const request = { + name, + }; + + // Run request + const [operation] = await clusterClient.backupCluster(request); + const [response] = await operation.promise(); + console.log(response); + } + + callBackupCluster(); + // [END redis_v1beta1_generated_CloudRedisCluster_BackupCluster_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.delete_backup.js b/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.delete_backup.js new file mode 100644 index 00000000000..50b460c1f2f --- /dev/null +++ b/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.delete_backup.js @@ -0,0 +1,67 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(name) { + // [START redis_v1beta1_generated_CloudRedisCluster_DeleteBackup_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Redis backup resource name using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}` + */ + // const name = 'abc123' + /** + * Optional. Idempotent request UUID. + */ + // const requestId = 'abc123' + + // Imports the Cluster library + const {CloudRedisClusterClient} = require('@google-cloud/redis-cluster').v1beta1; + + // Instantiates a client + const clusterClient = new CloudRedisClusterClient(); + + async function callDeleteBackup() { + // Construct request + const request = { + name, + }; + + // Run request + const [operation] = await clusterClient.deleteBackup(request); + const [response] = await operation.promise(); + console.log(response); + } + + callDeleteBackup(); + // [END redis_v1beta1_generated_CloudRedisCluster_DeleteBackup_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.export_backup.js b/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.export_backup.js new file mode 100644 index 00000000000..bfe2b2fa8e6 --- /dev/null +++ b/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.export_backup.js @@ -0,0 +1,67 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(name) { + // [START redis_v1beta1_generated_CloudRedisCluster_ExportBackup_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Google Cloud Storage bucket, like "my-bucket". + */ + // const gcsBucket = 'abc123' + /** + * Required. Redis backup resource name using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}` + */ + // const name = 'abc123' + + // Imports the Cluster library + const {CloudRedisClusterClient} = require('@google-cloud/redis-cluster').v1beta1; + + // Instantiates a client + const clusterClient = new CloudRedisClusterClient(); + + async function callExportBackup() { + // Construct request + const request = { + name, + }; + + // Run request + const [operation] = await clusterClient.exportBackup(request); + const [response] = await operation.promise(); + console.log(response); + } + + callExportBackup(); + // [END redis_v1beta1_generated_CloudRedisCluster_ExportBackup_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_backup.js b/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_backup.js new file mode 100644 index 00000000000..3d712a7a872 --- /dev/null +++ b/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_backup.js @@ -0,0 +1,62 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(name) { + // [START redis_v1beta1_generated_CloudRedisCluster_GetBackup_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Redis backup resource name using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}` + */ + // const name = 'abc123' + + // Imports the Cluster library + const {CloudRedisClusterClient} = require('@google-cloud/redis-cluster').v1beta1; + + // Instantiates a client + const clusterClient = new CloudRedisClusterClient(); + + async function callGetBackup() { + // Construct request + const request = { + name, + }; + + // Run request + const response = await clusterClient.getBackup(request); + console.log(response); + } + + callGetBackup(); + // [END redis_v1beta1_generated_CloudRedisCluster_GetBackup_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_backup_collection.js b/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_backup_collection.js new file mode 100644 index 00000000000..68d327dff4c --- /dev/null +++ b/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.get_backup_collection.js @@ -0,0 +1,63 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(name) { + // [START redis_v1beta1_generated_CloudRedisCluster_GetBackupCollection_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Redis backupCollection resource name using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}` + * where `location_id` refers to a GCP region. + */ + // const name = 'abc123' + + // Imports the Cluster library + const {CloudRedisClusterClient} = require('@google-cloud/redis-cluster').v1beta1; + + // Instantiates a client + const clusterClient = new CloudRedisClusterClient(); + + async function callGetBackupCollection() { + // Construct request + const request = { + name, + }; + + // Run request + const response = await clusterClient.getBackupCollection(request); + console.log(response); + } + + callGetBackupCollection(); + // [END redis_v1beta1_generated_CloudRedisCluster_GetBackupCollection_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_backup_collections.js b/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_backup_collections.js new file mode 100644 index 00000000000..d14377c2d13 --- /dev/null +++ b/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_backup_collections.js @@ -0,0 +1,80 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(parent) { + // [START redis_v1beta1_generated_CloudRedisCluster_ListBackupCollections_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The resource name of the backupCollection location using the + * form: + * `projects/{project_id}/locations/{location_id}` + * where `location_id` refers to a GCP region. + */ + // const parent = 'abc123' + /** + * Optional. The maximum number of items to return. + * If not specified, a default value of 1000 will be used by the service. + * Regardless of the page_size value, the response may include a partial list + * and a caller should only rely on response's + * `next_page_token` google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse.next_page_token + * to determine if there are more clusters left to be queried. + */ + // const pageSize = 1234 + /** + * Optional. The `next_page_token` value returned from a previous + * ListBackupCollections request, if any. + */ + // const pageToken = 'abc123' + + // Imports the Cluster library + const {CloudRedisClusterClient} = require('@google-cloud/redis-cluster').v1beta1; + + // Instantiates a client + const clusterClient = new CloudRedisClusterClient(); + + async function callListBackupCollections() { + // Construct request + const request = { + parent, + }; + + // Run request + const iterable = clusterClient.listBackupCollectionsAsync(request); + for await (const response of iterable) { + console.log(response); + } + } + + callListBackupCollections(); + // [END redis_v1beta1_generated_CloudRedisCluster_ListBackupCollections_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_backups.js b/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_backups.js new file mode 100644 index 00000000000..5bfb1bed752 --- /dev/null +++ b/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.list_backups.js @@ -0,0 +1,78 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(parent) { + // [START redis_v1beta1_generated_CloudRedisCluster_ListBackups_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The resource name of the backupCollection using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}` + */ + // const parent = 'abc123' + /** + * Optional. The maximum number of items to return. + * If not specified, a default value of 1000 will be used by the service. + * Regardless of the page_size value, the response may include a partial list + * and a caller should only rely on response's + * `next_page_token` google.cloud.redis.cluster.v1beta1.ListBackupsResponse.next_page_token + * to determine if there are more clusters left to be queried. + */ + // const pageSize = 1234 + /** + * Optional. The `next_page_token` value returned from a previous + * ListBackupCollections request, if any. + */ + // const pageToken = 'abc123' + + // Imports the Cluster library + const {CloudRedisClusterClient} = require('@google-cloud/redis-cluster').v1beta1; + + // Instantiates a client + const clusterClient = new CloudRedisClusterClient(); + + async function callListBackups() { + // Construct request + const request = { + parent, + }; + + // Run request + const iterable = clusterClient.listBackupsAsync(request); + for await (const response of iterable) { + console.log(response); + } + } + + callListBackups(); + // [END redis_v1beta1_generated_CloudRedisCluster_ListBackups_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.reschedule_cluster_maintenance.js b/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.reschedule_cluster_maintenance.js new file mode 100644 index 00000000000..9c641ec5a93 --- /dev/null +++ b/packages/google-cloud-redis-cluster/samples/generated/v1beta1/cloud_redis_cluster.reschedule_cluster_maintenance.js @@ -0,0 +1,76 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(name, rescheduleType) { + // [START redis_v1beta1_generated_CloudRedisCluster_RescheduleClusterMaintenance_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Redis Cluster instance resource name using the form: + * `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` + * where `location_id` refers to a GCP region. + */ + // const name = 'abc123' + /** + * Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as + * well. + */ + // const rescheduleType = {} + /** + * Optional. Timestamp when the maintenance shall be rescheduled to if + * reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for + * example `2012-11-15T16:19:00.094Z`. + */ + // const scheduleTime = {} + + // Imports the Cluster library + const {CloudRedisClusterClient} = require('@google-cloud/redis-cluster').v1beta1; + + // Instantiates a client + const clusterClient = new CloudRedisClusterClient(); + + async function callRescheduleClusterMaintenance() { + // Construct request + const request = { + name, + rescheduleType, + }; + + // Run request + const [operation] = await clusterClient.rescheduleClusterMaintenance(request); + const [response] = await operation.promise(); + console.log(response); + } + + callRescheduleClusterMaintenance(); + // [END redis_v1beta1_generated_CloudRedisCluster_RescheduleClusterMaintenance_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-redis-cluster/samples/generated/v1beta1/snippet_metadata_google.cloud.redis.cluster.v1beta1.json b/packages/google-cloud-redis-cluster/samples/generated/v1beta1/snippet_metadata_google.cloud.redis.cluster.v1beta1.json index ddec3f8c2d3..8d0e2b94f54 100644 --- a/packages/google-cloud-redis-cluster/samples/generated/v1beta1/snippet_metadata_google.cloud.redis.cluster.v1beta1.json +++ b/packages/google-cloud-redis-cluster/samples/generated/v1beta1/snippet_metadata_google.cloud.redis.cluster.v1beta1.json @@ -282,6 +282,366 @@ } } } + }, + { + "regionTag": "redis_v1beta1_generated_CloudRedisCluster_RescheduleClusterMaintenance_async", + "title": "CloudRedisCluster rescheduleClusterMaintenance Sample", + "origin": "API_DEFINITION", + "description": " Reschedules upcoming maintenance event.", + "canonical": true, + "file": "cloud_redis_cluster.reschedule_cluster_maintenance.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 68, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "RescheduleClusterMaintenance", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster.RescheduleClusterMaintenance", + "async": true, + "parameters": [ + { + "name": "name", + "type": "TYPE_STRING" + }, + { + "name": "reschedule_type", + "type": ".google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest.RescheduleType" + }, + { + "name": "schedule_time", + "type": ".google.protobuf.Timestamp" + } + ], + "resultType": ".google.longrunning.Operation", + "client": { + "shortName": "CloudRedisClusterClient", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisClusterClient" + }, + "method": { + "shortName": "RescheduleClusterMaintenance", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster.RescheduleClusterMaintenance", + "service": { + "shortName": "CloudRedisCluster", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster" + } + } + } + }, + { + "regionTag": "redis_v1beta1_generated_CloudRedisCluster_ListBackupCollections_async", + "title": "CloudRedisCluster listBackupCollections Sample", + "origin": "API_DEFINITION", + "description": " Lists all backup collections owned by a consumer project in either the specified location (region) or all locations. If `location_id` is specified as `-` (wildcard), then all regions available to the project are queried, and the results are aggregated.", + "canonical": true, + "file": "cloud_redis_cluster.list_backup_collections.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 72, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "ListBackupCollections", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster.ListBackupCollections", + "async": true, + "parameters": [ + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "page_size", + "type": "TYPE_INT32" + }, + { + "name": "page_token", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse", + "client": { + "shortName": "CloudRedisClusterClient", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisClusterClient" + }, + "method": { + "shortName": "ListBackupCollections", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster.ListBackupCollections", + "service": { + "shortName": "CloudRedisCluster", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster" + } + } + } + }, + { + "regionTag": "redis_v1beta1_generated_CloudRedisCluster_GetBackupCollection_async", + "title": "CloudRedisCluster getBackupCollection Sample", + "origin": "API_DEFINITION", + "description": " Get a backup collection.", + "canonical": true, + "file": "cloud_redis_cluster.get_backup_collection.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 55, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "GetBackupCollection", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster.GetBackupCollection", + "async": true, + "parameters": [ + { + "name": "name", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.cloud.redis.cluster.v1beta1.BackupCollection", + "client": { + "shortName": "CloudRedisClusterClient", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisClusterClient" + }, + "method": { + "shortName": "GetBackupCollection", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster.GetBackupCollection", + "service": { + "shortName": "CloudRedisCluster", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster" + } + } + } + }, + { + "regionTag": "redis_v1beta1_generated_CloudRedisCluster_ListBackups_async", + "title": "CloudRedisCluster listBackups Sample", + "origin": "API_DEFINITION", + "description": " Lists all backups owned by a backup collection.", + "canonical": true, + "file": "cloud_redis_cluster.list_backups.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 70, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "ListBackups", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster.ListBackups", + "async": true, + "parameters": [ + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "page_size", + "type": "TYPE_INT32" + }, + { + "name": "page_token", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.cloud.redis.cluster.v1beta1.ListBackupsResponse", + "client": { + "shortName": "CloudRedisClusterClient", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisClusterClient" + }, + "method": { + "shortName": "ListBackups", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster.ListBackups", + "service": { + "shortName": "CloudRedisCluster", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster" + } + } + } + }, + { + "regionTag": "redis_v1beta1_generated_CloudRedisCluster_GetBackup_async", + "title": "CloudRedisCluster getBackup Sample", + "origin": "API_DEFINITION", + "description": " Gets the details of a specific backup.", + "canonical": true, + "file": "cloud_redis_cluster.get_backup.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 54, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "GetBackup", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster.GetBackup", + "async": true, + "parameters": [ + { + "name": "name", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.cloud.redis.cluster.v1beta1.Backup", + "client": { + "shortName": "CloudRedisClusterClient", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisClusterClient" + }, + "method": { + "shortName": "GetBackup", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster.GetBackup", + "service": { + "shortName": "CloudRedisCluster", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster" + } + } + } + }, + { + "regionTag": "redis_v1beta1_generated_CloudRedisCluster_DeleteBackup_async", + "title": "CloudRedisCluster deleteBackup Sample", + "origin": "API_DEFINITION", + "description": " Deletes a specific backup.", + "canonical": true, + "file": "cloud_redis_cluster.delete_backup.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 59, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "DeleteBackup", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster.DeleteBackup", + "async": true, + "parameters": [ + { + "name": "name", + "type": "TYPE_STRING" + }, + { + "name": "request_id", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.longrunning.Operation", + "client": { + "shortName": "CloudRedisClusterClient", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisClusterClient" + }, + "method": { + "shortName": "DeleteBackup", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster.DeleteBackup", + "service": { + "shortName": "CloudRedisCluster", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster" + } + } + } + }, + { + "regionTag": "redis_v1beta1_generated_CloudRedisCluster_ExportBackup_async", + "title": "CloudRedisCluster exportBackup Sample", + "origin": "API_DEFINITION", + "description": " Exports a specific backup to a customer target Cloud Storage URI.", + "canonical": true, + "file": "cloud_redis_cluster.export_backup.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 59, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "ExportBackup", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster.ExportBackup", + "async": true, + "parameters": [ + { + "name": "gcs_bucket", + "type": "TYPE_STRING" + }, + { + "name": "name", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.longrunning.Operation", + "client": { + "shortName": "CloudRedisClusterClient", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisClusterClient" + }, + "method": { + "shortName": "ExportBackup", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster.ExportBackup", + "service": { + "shortName": "CloudRedisCluster", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster" + } + } + } + }, + { + "regionTag": "redis_v1beta1_generated_CloudRedisCluster_BackupCluster_async", + "title": "CloudRedisCluster backupCluster Sample", + "origin": "API_DEFINITION", + "description": " Backup Redis Cluster. If this is the first time a backup is being created, a backup collection will be created at the backend, and this backup belongs to this collection. Both collection and backup will have a resource name. Backup will be executed for each shard. A replica (primary if nonHA) will be selected to perform the execution. Backup call will be rejected if there is an ongoing backup or update operation. Be aware that during preview, if the cluster's internal software version is too old, critical update will be performed before actual backup. Once the internal software version is updated to the minimum version required by the backup feature, subsequent backups will not require critical update. After preview, there will be no critical update needed for backup.", + "canonical": true, + "file": "cloud_redis_cluster.backup_cluster.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 66, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "BackupCluster", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster.BackupCluster", + "async": true, + "parameters": [ + { + "name": "name", + "type": "TYPE_STRING" + }, + { + "name": "ttl", + "type": ".google.protobuf.Duration" + }, + { + "name": "backup_id", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.longrunning.Operation", + "client": { + "shortName": "CloudRedisClusterClient", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisClusterClient" + }, + "method": { + "shortName": "BackupCluster", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster.BackupCluster", + "service": { + "shortName": "CloudRedisCluster", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster" + } + } + } } ] } \ No newline at end of file diff --git a/packages/google-cloud-redis-cluster/src/v1/cloud_redis_cluster_client.ts b/packages/google-cloud-redis-cluster/src/v1/cloud_redis_cluster_client.ts index 22eea5f4cb1..b5394d90a7e 100644 --- a/packages/google-cloud-redis-cluster/src/v1/cloud_redis_cluster_client.ts +++ b/packages/google-cloud-redis-cluster/src/v1/cloud_redis_cluster_client.ts @@ -58,12 +58,6 @@ const version = require('../../../package.json').version; * * Note that location_id must be a GCP `region`; for example: * * `projects/redpepper-1290/locations/us-central1/clusters/my-redis` - * - * We use API version selector for Flex APIs - * * The versioning strategy is release-based versioning - * * Our backend CLH only deals with the superset version (called v1main) - * * Existing backend for Redis Gen1 and MRR is not touched. - * * More details in go/redis-flex-api-versioning * @class * @memberof v1 */ @@ -229,15 +223,39 @@ export class CloudRedisClusterClient { // identifiers to uniquely identify resources within the API. // Create useful helper objects for these. this.pathTemplates = { + backupPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/backupCollections/{backup_collection}/backups/{backup}' + ), + backupCollectionPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/backupCollections/{backup_collection}' + ), certificateAuthorityPathTemplate: new this._gaxModule.PathTemplate( 'projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority' ), clusterPathTemplate: new this._gaxModule.PathTemplate( 'projects/{project}/locations/{location}/clusters/{cluster}' ), + cryptoKeyPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}' + ), + cryptoKeyVersionPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}' + ), + forwardingRulePathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}' + ), locationPathTemplate: new this._gaxModule.PathTemplate( 'projects/{project}/locations/{location}' ), + networkPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/global/networks/{network}' + ), + projectPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}' + ), + serviceAttachmentPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/regions/{region}/serviceAttachments/{service_attachment}' + ), }; // Some of the methods on this service return "paged" results, @@ -249,6 +267,16 @@ export class CloudRedisClusterClient { 'nextPageToken', 'clusters' ), + listBackupCollections: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'backupCollections' + ), + listBackups: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'backups' + ), }; const protoFilesRoot = this._gaxModule.protobuf.Root.fromJSON(jsonProtos); @@ -309,6 +337,30 @@ export class CloudRedisClusterClient { const createClusterMetadata = protoFilesRoot.lookup( '.google.protobuf.Any' ) as gax.protobuf.Type; + const rescheduleClusterMaintenanceResponse = protoFilesRoot.lookup( + '.google.cloud.redis.cluster.v1.Cluster' + ) as gax.protobuf.Type; + const rescheduleClusterMaintenanceMetadata = protoFilesRoot.lookup( + '.google.protobuf.Any' + ) as gax.protobuf.Type; + const deleteBackupResponse = protoFilesRoot.lookup( + '.google.protobuf.Empty' + ) as gax.protobuf.Type; + const deleteBackupMetadata = protoFilesRoot.lookup( + '.google.protobuf.Any' + ) as gax.protobuf.Type; + const exportBackupResponse = protoFilesRoot.lookup( + '.google.cloud.redis.cluster.v1.Backup' + ) as gax.protobuf.Type; + const exportBackupMetadata = protoFilesRoot.lookup( + '.google.protobuf.Any' + ) as gax.protobuf.Type; + const backupClusterResponse = protoFilesRoot.lookup( + '.google.cloud.redis.cluster.v1.Cluster' + ) as gax.protobuf.Type; + const backupClusterMetadata = protoFilesRoot.lookup( + '.google.protobuf.Any' + ) as gax.protobuf.Type; this.descriptors.longrunning = { updateCluster: new this._gaxModule.LongrunningDescriptor( @@ -326,6 +378,30 @@ export class CloudRedisClusterClient { createClusterResponse.decode.bind(createClusterResponse), createClusterMetadata.decode.bind(createClusterMetadata) ), + rescheduleClusterMaintenance: new this._gaxModule.LongrunningDescriptor( + this.operationsClient, + rescheduleClusterMaintenanceResponse.decode.bind( + rescheduleClusterMaintenanceResponse + ), + rescheduleClusterMaintenanceMetadata.decode.bind( + rescheduleClusterMaintenanceMetadata + ) + ), + deleteBackup: new this._gaxModule.LongrunningDescriptor( + this.operationsClient, + deleteBackupResponse.decode.bind(deleteBackupResponse), + deleteBackupMetadata.decode.bind(deleteBackupMetadata) + ), + exportBackup: new this._gaxModule.LongrunningDescriptor( + this.operationsClient, + exportBackupResponse.decode.bind(exportBackupResponse), + exportBackupMetadata.decode.bind(exportBackupMetadata) + ), + backupCluster: new this._gaxModule.LongrunningDescriptor( + this.operationsClient, + backupClusterResponse.decode.bind(backupClusterResponse), + backupClusterMetadata.decode.bind(backupClusterMetadata) + ), }; // Put together the default options sent with requests. @@ -384,6 +460,14 @@ export class CloudRedisClusterClient { 'deleteCluster', 'createCluster', 'getClusterCertificateAuthority', + 'rescheduleClusterMaintenance', + 'listBackupCollections', + 'getBackupCollection', + 'listBackups', + 'getBackup', + 'deleteBackup', + 'exportBackup', + 'backupCluster', ]; for (const methodName of cloudRedisClusterStubMethods) { const callPromise = this.cloudRedisClusterStub.then( @@ -695,6 +779,189 @@ export class CloudRedisClusterClient { callback ); } + /** + * Get a backup collection. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Redis backupCollection resource name using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}` + * where `location_id` refers to a GCP region. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.redis.cluster.v1.BackupCollection|BackupCollection}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/cloud_redis_cluster.get_backup_collection.js + * region_tag:redis_v1_generated_CloudRedisCluster_GetBackupCollection_async + */ + getBackupCollection( + request?: protos.google.cloud.redis.cluster.v1.IGetBackupCollectionRequest, + options?: CallOptions + ): Promise< + [ + protos.google.cloud.redis.cluster.v1.IBackupCollection, + ( + | protos.google.cloud.redis.cluster.v1.IGetBackupCollectionRequest + | undefined + ), + {} | undefined, + ] + >; + getBackupCollection( + request: protos.google.cloud.redis.cluster.v1.IGetBackupCollectionRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.redis.cluster.v1.IBackupCollection, + | protos.google.cloud.redis.cluster.v1.IGetBackupCollectionRequest + | null + | undefined, + {} | null | undefined + > + ): void; + getBackupCollection( + request: protos.google.cloud.redis.cluster.v1.IGetBackupCollectionRequest, + callback: Callback< + protos.google.cloud.redis.cluster.v1.IBackupCollection, + | protos.google.cloud.redis.cluster.v1.IGetBackupCollectionRequest + | null + | undefined, + {} | null | undefined + > + ): void; + getBackupCollection( + request?: protos.google.cloud.redis.cluster.v1.IGetBackupCollectionRequest, + optionsOrCallback?: + | CallOptions + | Callback< + protos.google.cloud.redis.cluster.v1.IBackupCollection, + | protos.google.cloud.redis.cluster.v1.IGetBackupCollectionRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.redis.cluster.v1.IBackupCollection, + | protos.google.cloud.redis.cluster.v1.IGetBackupCollectionRequest + | null + | undefined, + {} | null | undefined + > + ): Promise< + [ + protos.google.cloud.redis.cluster.v1.IBackupCollection, + ( + | protos.google.cloud.redis.cluster.v1.IGetBackupCollectionRequest + | undefined + ), + {} | undefined, + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); + this.initialize(); + return this.innerApiCalls.getBackupCollection(request, options, callback); + } + /** + * Gets the details of a specific backup. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Redis backup resource name using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}` + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.redis.cluster.v1.Backup|Backup}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/cloud_redis_cluster.get_backup.js + * region_tag:redis_v1_generated_CloudRedisCluster_GetBackup_async + */ + getBackup( + request?: protos.google.cloud.redis.cluster.v1.IGetBackupRequest, + options?: CallOptions + ): Promise< + [ + protos.google.cloud.redis.cluster.v1.IBackup, + protos.google.cloud.redis.cluster.v1.IGetBackupRequest | undefined, + {} | undefined, + ] + >; + getBackup( + request: protos.google.cloud.redis.cluster.v1.IGetBackupRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.redis.cluster.v1.IBackup, + protos.google.cloud.redis.cluster.v1.IGetBackupRequest | null | undefined, + {} | null | undefined + > + ): void; + getBackup( + request: protos.google.cloud.redis.cluster.v1.IGetBackupRequest, + callback: Callback< + protos.google.cloud.redis.cluster.v1.IBackup, + protos.google.cloud.redis.cluster.v1.IGetBackupRequest | null | undefined, + {} | null | undefined + > + ): void; + getBackup( + request?: protos.google.cloud.redis.cluster.v1.IGetBackupRequest, + optionsOrCallback?: + | CallOptions + | Callback< + protos.google.cloud.redis.cluster.v1.IBackup, + | protos.google.cloud.redis.cluster.v1.IGetBackupRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.redis.cluster.v1.IBackup, + protos.google.cloud.redis.cluster.v1.IGetBackupRequest | null | undefined, + {} | null | undefined + > + ): Promise< + [ + protos.google.cloud.redis.cluster.v1.IBackup, + protos.google.cloud.redis.cluster.v1.IGetBackupRequest | undefined, + {} | undefined, + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); + this.initialize(); + return this.innerApiCalls.getBackup(request, options, callback); + } /** * Updates the metadata and configuration of a specific Redis cluster. @@ -1128,99 +1395,881 @@ export class CloudRedisClusterClient { >; } /** - * Lists all Redis clusters owned by a project in either the specified - * location (region) or all locations. - * - * The location should have the following format: - * - * * `projects/{project_id}/locations/{location_id}` - * - * If `location_id` is specified as `-` (wildcard), then all regions - * available to the project are queried, and the results are aggregated. + * Reschedules upcoming maintenance event. * * @param {Object} request * The request object that will be sent. - * @param {string} request.parent - * Required. The resource name of the cluster location using the form: - * `projects/{project_id}/locations/{location_id}` + * @param {string} request.name + * Required. Redis Cluster instance resource name using the form: + * `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` * where `location_id` refers to a GCP region. - * @param {number} request.pageSize - * The maximum number of items to return. - * - * If not specified, a default value of 1000 will be used by the service. - * Regardless of the page_size value, the response may include a partial list - * and a caller should only rely on response's - * {@link protos.google.cloud.redis.cluster.v1.ListClustersResponse.next_page_token|`next_page_token`} - * to determine if there are more clusters left to be queried. - * @param {string} request.pageToken - * The `next_page_token` value returned from a previous - * {@link protos.CloudRedis.ListClusters|ListClusters} request, if any. + * @param {google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.RescheduleType} request.rescheduleType + * Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as + * well. + * @param {google.protobuf.Timestamp} [request.scheduleTime] + * Optional. Timestamp when the maintenance shall be rescheduled to if + * reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for + * example `2012-11-15T16:19:00.094Z`. * @param {object} [options] * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is Array of {@link protos.google.cloud.redis.cluster.v1.Cluster|Cluster}. - * The client library will perform auto-pagination by default: it will call the API as many - * times as needed and will merge results from all the pages into this array. - * Note that it can affect your quota. - * We recommend using `listClustersAsync()` - * method described below for async iteration which you can stop as needed. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } * for more details and examples. + * @example include:samples/generated/v1/cloud_redis_cluster.reschedule_cluster_maintenance.js + * region_tag:redis_v1_generated_CloudRedisCluster_RescheduleClusterMaintenance_async */ - listClusters( - request?: protos.google.cloud.redis.cluster.v1.IListClustersRequest, + rescheduleClusterMaintenance( + request?: protos.google.cloud.redis.cluster.v1.IRescheduleClusterMaintenanceRequest, options?: CallOptions ): Promise< [ - protos.google.cloud.redis.cluster.v1.ICluster[], - protos.google.cloud.redis.cluster.v1.IListClustersRequest | null, - protos.google.cloud.redis.cluster.v1.IListClustersResponse, + LROperation< + protos.google.cloud.redis.cluster.v1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, ] >; - listClusters( - request: protos.google.cloud.redis.cluster.v1.IListClustersRequest, + rescheduleClusterMaintenance( + request: protos.google.cloud.redis.cluster.v1.IRescheduleClusterMaintenanceRequest, options: CallOptions, - callback: PaginationCallback< - protos.google.cloud.redis.cluster.v1.IListClustersRequest, - | protos.google.cloud.redis.cluster.v1.IListClustersResponse - | null - | undefined, - protos.google.cloud.redis.cluster.v1.ICluster + callback: Callback< + LROperation< + protos.google.cloud.redis.cluster.v1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined > ): void; - listClusters( - request: protos.google.cloud.redis.cluster.v1.IListClustersRequest, - callback: PaginationCallback< - protos.google.cloud.redis.cluster.v1.IListClustersRequest, - | protos.google.cloud.redis.cluster.v1.IListClustersResponse - | null - | undefined, - protos.google.cloud.redis.cluster.v1.ICluster + rescheduleClusterMaintenance( + request: protos.google.cloud.redis.cluster.v1.IRescheduleClusterMaintenanceRequest, + callback: Callback< + LROperation< + protos.google.cloud.redis.cluster.v1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined > ): void; - listClusters( - request?: protos.google.cloud.redis.cluster.v1.IListClustersRequest, + rescheduleClusterMaintenance( + request?: protos.google.cloud.redis.cluster.v1.IRescheduleClusterMaintenanceRequest, optionsOrCallback?: | CallOptions - | PaginationCallback< - protos.google.cloud.redis.cluster.v1.IListClustersRequest, - | protos.google.cloud.redis.cluster.v1.IListClustersResponse - | null - | undefined, - protos.google.cloud.redis.cluster.v1.ICluster - >, - callback?: PaginationCallback< - protos.google.cloud.redis.cluster.v1.IListClustersRequest, - | protos.google.cloud.redis.cluster.v1.IListClustersResponse + | Callback< + LROperation< + protos.google.cloud.redis.cluster.v1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.redis.cluster.v1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): Promise< + [ + LROperation< + protos.google.cloud.redis.cluster.v1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); + this.initialize(); + return this.innerApiCalls.rescheduleClusterMaintenance( + request, + options, + callback + ); + } + /** + * Check the status of the long running operation returned by `rescheduleClusterMaintenance()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/cloud_redis_cluster.reschedule_cluster_maintenance.js + * region_tag:redis_v1_generated_CloudRedisCluster_RescheduleClusterMaintenance_async + */ + async checkRescheduleClusterMaintenanceProgress( + name: string + ): Promise< + LROperation< + protos.google.cloud.redis.cluster.v1.Cluster, + protos.google.protobuf.Any + > + > { + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + {name} + ); + const [operation] = await this.operationsClient.getOperation(request); + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.rescheduleClusterMaintenance, + this._gaxModule.createDefaultBackoffSettings() + ); + return decodeOperation as LROperation< + protos.google.cloud.redis.cluster.v1.Cluster, + protos.google.protobuf.Any + >; + } + /** + * Deletes a specific backup. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Redis backup resource name using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}` + * @param {string} [request.requestId] + * Optional. Idempotent request UUID. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/cloud_redis_cluster.delete_backup.js + * region_tag:redis_v1_generated_CloudRedisCluster_DeleteBackup_async + */ + deleteBackup( + request?: protos.google.cloud.redis.cluster.v1.IDeleteBackupRequest, + options?: CallOptions + ): Promise< + [ + LROperation, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; + deleteBackup( + request: protos.google.cloud.redis.cluster.v1.IDeleteBackupRequest, + options: CallOptions, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): void; + deleteBackup( + request: protos.google.cloud.redis.cluster.v1.IDeleteBackupRequest, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): void; + deleteBackup( + request?: protos.google.cloud.redis.cluster.v1.IDeleteBackupRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.protobuf.IEmpty, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): Promise< + [ + LROperation, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); + this.initialize(); + return this.innerApiCalls.deleteBackup(request, options, callback); + } + /** + * Check the status of the long running operation returned by `deleteBackup()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/cloud_redis_cluster.delete_backup.js + * region_tag:redis_v1_generated_CloudRedisCluster_DeleteBackup_async + */ + async checkDeleteBackupProgress( + name: string + ): Promise< + LROperation + > { + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + {name} + ); + const [operation] = await this.operationsClient.getOperation(request); + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.deleteBackup, + this._gaxModule.createDefaultBackoffSettings() + ); + return decodeOperation as LROperation< + protos.google.protobuf.Empty, + protos.google.protobuf.Any + >; + } + /** + * Exports a specific backup to a customer target Cloud Storage URI. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.gcsBucket + * Google Cloud Storage bucket, like "my-bucket". + * @param {string} request.name + * Required. Redis backup resource name using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}` + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/cloud_redis_cluster.export_backup.js + * region_tag:redis_v1_generated_CloudRedisCluster_ExportBackup_async + */ + exportBackup( + request?: protos.google.cloud.redis.cluster.v1.IExportBackupRequest, + options?: CallOptions + ): Promise< + [ + LROperation< + protos.google.cloud.redis.cluster.v1.IBackup, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; + exportBackup( + request: protos.google.cloud.redis.cluster.v1.IExportBackupRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.redis.cluster.v1.IBackup, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): void; + exportBackup( + request: protos.google.cloud.redis.cluster.v1.IExportBackupRequest, + callback: Callback< + LROperation< + protos.google.cloud.redis.cluster.v1.IBackup, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): void; + exportBackup( + request?: protos.google.cloud.redis.cluster.v1.IExportBackupRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.redis.cluster.v1.IBackup, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.redis.cluster.v1.IBackup, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): Promise< + [ + LROperation< + protos.google.cloud.redis.cluster.v1.IBackup, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); + this.initialize(); + return this.innerApiCalls.exportBackup(request, options, callback); + } + /** + * Check the status of the long running operation returned by `exportBackup()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/cloud_redis_cluster.export_backup.js + * region_tag:redis_v1_generated_CloudRedisCluster_ExportBackup_async + */ + async checkExportBackupProgress( + name: string + ): Promise< + LROperation< + protos.google.cloud.redis.cluster.v1.Backup, + protos.google.protobuf.Any + > + > { + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + {name} + ); + const [operation] = await this.operationsClient.getOperation(request); + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.exportBackup, + this._gaxModule.createDefaultBackoffSettings() + ); + return decodeOperation as LROperation< + protos.google.cloud.redis.cluster.v1.Backup, + protos.google.protobuf.Any + >; + } + /** + * Backup Redis Cluster. + * If this is the first time a backup is being created, a backup collection + * will be created at the backend, and this backup belongs to this collection. + * Both collection and backup will have a resource name. Backup will be + * executed for each shard. A replica (primary if nonHA) will be selected to + * perform the execution. Backup call will be rejected if there is an ongoing + * backup or update operation. Be aware that during preview, if the cluster's + * internal software version is too old, critical update will be performed + * before actual backup. Once the internal software version is updated to the + * minimum version required by the backup feature, subsequent backups will not + * require critical update. After preview, there will be no critical update + * needed for backup. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Redis cluster resource name using the form: + * `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` + * where `location_id` refers to a GCP region. + * @param {google.protobuf.Duration} [request.ttl] + * Optional. TTL for the backup to expire. Value range is 1 day to 100 years. + * If not specified, the default value is 100 years. + * @param {string} [request.backupId] + * Optional. The id of the backup to be created. If not specified, the + * default value ([YYYYMMDDHHMMSS]_[Shortened Cluster UID] is used. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/cloud_redis_cluster.backup_cluster.js + * region_tag:redis_v1_generated_CloudRedisCluster_BackupCluster_async + */ + backupCluster( + request?: protos.google.cloud.redis.cluster.v1.IBackupClusterRequest, + options?: CallOptions + ): Promise< + [ + LROperation< + protos.google.cloud.redis.cluster.v1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; + backupCluster( + request: protos.google.cloud.redis.cluster.v1.IBackupClusterRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.redis.cluster.v1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): void; + backupCluster( + request: protos.google.cloud.redis.cluster.v1.IBackupClusterRequest, + callback: Callback< + LROperation< + protos.google.cloud.redis.cluster.v1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): void; + backupCluster( + request?: protos.google.cloud.redis.cluster.v1.IBackupClusterRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.redis.cluster.v1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.redis.cluster.v1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): Promise< + [ + LROperation< + protos.google.cloud.redis.cluster.v1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); + this.initialize(); + return this.innerApiCalls.backupCluster(request, options, callback); + } + /** + * Check the status of the long running operation returned by `backupCluster()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/cloud_redis_cluster.backup_cluster.js + * region_tag:redis_v1_generated_CloudRedisCluster_BackupCluster_async + */ + async checkBackupClusterProgress( + name: string + ): Promise< + LROperation< + protos.google.cloud.redis.cluster.v1.Cluster, + protos.google.protobuf.Any + > + > { + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + {name} + ); + const [operation] = await this.operationsClient.getOperation(request); + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.backupCluster, + this._gaxModule.createDefaultBackoffSettings() + ); + return decodeOperation as LROperation< + protos.google.cloud.redis.cluster.v1.Cluster, + protos.google.protobuf.Any + >; + } + /** + * Lists all Redis clusters owned by a project in either the specified + * location (region) or all locations. + * + * The location should have the following format: + * + * * `projects/{project_id}/locations/{location_id}` + * + * If `location_id` is specified as `-` (wildcard), then all regions + * available to the project are queried, and the results are aggregated. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The resource name of the cluster location using the form: + * `projects/{project_id}/locations/{location_id}` + * where `location_id` refers to a GCP region. + * @param {number} request.pageSize + * The maximum number of items to return. + * + * If not specified, a default value of 1000 will be used by the service. + * Regardless of the page_size value, the response may include a partial list + * and a caller should only rely on response's + * {@link protos.google.cloud.redis.cluster.v1.ListClustersResponse.next_page_token|`next_page_token`} + * to determine if there are more clusters left to be queried. + * @param {string} request.pageToken + * The `next_page_token` value returned from a previous + * {@link protos.CloudRedis.ListClusters|ListClusters} request, if any. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is Array of {@link protos.google.cloud.redis.cluster.v1.Cluster|Cluster}. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed and will merge results from all the pages into this array. + * Note that it can affect your quota. + * We recommend using `listClustersAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + */ + listClusters( + request?: protos.google.cloud.redis.cluster.v1.IListClustersRequest, + options?: CallOptions + ): Promise< + [ + protos.google.cloud.redis.cluster.v1.ICluster[], + protos.google.cloud.redis.cluster.v1.IListClustersRequest | null, + protos.google.cloud.redis.cluster.v1.IListClustersResponse, + ] + >; + listClusters( + request: protos.google.cloud.redis.cluster.v1.IListClustersRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.redis.cluster.v1.IListClustersRequest, + | protos.google.cloud.redis.cluster.v1.IListClustersResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1.ICluster + > + ): void; + listClusters( + request: protos.google.cloud.redis.cluster.v1.IListClustersRequest, + callback: PaginationCallback< + protos.google.cloud.redis.cluster.v1.IListClustersRequest, + | protos.google.cloud.redis.cluster.v1.IListClustersResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1.ICluster + > + ): void; + listClusters( + request?: protos.google.cloud.redis.cluster.v1.IListClustersRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< + protos.google.cloud.redis.cluster.v1.IListClustersRequest, + | protos.google.cloud.redis.cluster.v1.IListClustersResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1.ICluster + >, + callback?: PaginationCallback< + protos.google.cloud.redis.cluster.v1.IListClustersRequest, + | protos.google.cloud.redis.cluster.v1.IListClustersResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1.ICluster + > + ): Promise< + [ + protos.google.cloud.redis.cluster.v1.ICluster[], + protos.google.cloud.redis.cluster.v1.IListClustersRequest | null, + protos.google.cloud.redis.cluster.v1.IListClustersResponse, + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); + this.initialize(); + return this.innerApiCalls.listClusters(request, options, callback); + } + + /** + * Equivalent to `method.name.toCamelCase()`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The resource name of the cluster location using the form: + * `projects/{project_id}/locations/{location_id}` + * where `location_id` refers to a GCP region. + * @param {number} request.pageSize + * The maximum number of items to return. + * + * If not specified, a default value of 1000 will be used by the service. + * Regardless of the page_size value, the response may include a partial list + * and a caller should only rely on response's + * {@link protos.google.cloud.redis.cluster.v1.ListClustersResponse.next_page_token|`next_page_token`} + * to determine if there are more clusters left to be queried. + * @param {string} request.pageToken + * The `next_page_token` value returned from a previous + * {@link protos.CloudRedis.ListClusters|ListClusters} request, if any. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Stream} + * An object stream which emits an object representing {@link protos.google.cloud.redis.cluster.v1.Cluster|Cluster} on 'data' event. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed. Note that it can affect your quota. + * We recommend using `listClustersAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + */ + listClustersStream( + request?: protos.google.cloud.redis.cluster.v1.IListClustersRequest, + options?: CallOptions + ): Transform { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); + const defaultCallSettings = this._defaults['listClusters']; + const callSettings = defaultCallSettings.merge(options); + this.initialize(); + return this.descriptors.page.listClusters.createStream( + this.innerApiCalls.listClusters as GaxCall, + request, + callSettings + ); + } + + /** + * Equivalent to `listClusters`, but returns an iterable object. + * + * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The resource name of the cluster location using the form: + * `projects/{project_id}/locations/{location_id}` + * where `location_id` refers to a GCP region. + * @param {number} request.pageSize + * The maximum number of items to return. + * + * If not specified, a default value of 1000 will be used by the service. + * Regardless of the page_size value, the response may include a partial list + * and a caller should only rely on response's + * {@link protos.google.cloud.redis.cluster.v1.ListClustersResponse.next_page_token|`next_page_token`} + * to determine if there are more clusters left to be queried. + * @param {string} request.pageToken + * The `next_page_token` value returned from a previous + * {@link protos.CloudRedis.ListClusters|ListClusters} request, if any. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Object} + * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. + * When you iterate the returned iterable, each element will be an object representing + * {@link protos.google.cloud.redis.cluster.v1.Cluster|Cluster}. The API will be called under the hood as needed, once per the page, + * so you can stop the iteration when you don't need more results. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + * @example include:samples/generated/v1/cloud_redis_cluster.list_clusters.js + * region_tag:redis_v1_generated_CloudRedisCluster_ListClusters_async + */ + listClustersAsync( + request?: protos.google.cloud.redis.cluster.v1.IListClustersRequest, + options?: CallOptions + ): AsyncIterable { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); + const defaultCallSettings = this._defaults['listClusters']; + const callSettings = defaultCallSettings.merge(options); + this.initialize(); + return this.descriptors.page.listClusters.asyncIterate( + this.innerApiCalls['listClusters'] as GaxCall, + request as {}, + callSettings + ) as AsyncIterable; + } + /** + * Lists all backup collections owned by a consumer project in either the + * specified location (region) or all locations. + * + * If `location_id` is specified as `-` (wildcard), then all regions + * available to the project are queried, and the results are aggregated. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The resource name of the backupCollection location using the + * form: + * `projects/{project_id}/locations/{location_id}` + * where `location_id` refers to a GCP region. + * @param {number} [request.pageSize] + * Optional. The maximum number of items to return. + * + * If not specified, a default value of 1000 will be used by the service. + * Regardless of the page_size value, the response may include a partial list + * and a caller should only rely on response's + * {@link protos.google.cloud.redis.cluster.v1.ListBackupCollectionsResponse.next_page_token|`next_page_token`} + * to determine if there are more clusters left to be queried. + * @param {string} [request.pageToken] + * Optional. The `next_page_token` value returned from a previous + * [ListBackupCollections] request, if any. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is Array of {@link protos.google.cloud.redis.cluster.v1.BackupCollection|BackupCollection}. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed and will merge results from all the pages into this array. + * Note that it can affect your quota. + * We recommend using `listBackupCollectionsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + */ + listBackupCollections( + request?: protos.google.cloud.redis.cluster.v1.IListBackupCollectionsRequest, + options?: CallOptions + ): Promise< + [ + protos.google.cloud.redis.cluster.v1.IBackupCollection[], + protos.google.cloud.redis.cluster.v1.IListBackupCollectionsRequest | null, + protos.google.cloud.redis.cluster.v1.IListBackupCollectionsResponse, + ] + >; + listBackupCollections( + request: protos.google.cloud.redis.cluster.v1.IListBackupCollectionsRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.redis.cluster.v1.IListBackupCollectionsRequest, + | protos.google.cloud.redis.cluster.v1.IListBackupCollectionsResponse | null | undefined, - protos.google.cloud.redis.cluster.v1.ICluster + protos.google.cloud.redis.cluster.v1.IBackupCollection + > + ): void; + listBackupCollections( + request: protos.google.cloud.redis.cluster.v1.IListBackupCollectionsRequest, + callback: PaginationCallback< + protos.google.cloud.redis.cluster.v1.IListBackupCollectionsRequest, + | protos.google.cloud.redis.cluster.v1.IListBackupCollectionsResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1.IBackupCollection + > + ): void; + listBackupCollections( + request?: protos.google.cloud.redis.cluster.v1.IListBackupCollectionsRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< + protos.google.cloud.redis.cluster.v1.IListBackupCollectionsRequest, + | protos.google.cloud.redis.cluster.v1.IListBackupCollectionsResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1.IBackupCollection + >, + callback?: PaginationCallback< + protos.google.cloud.redis.cluster.v1.IListBackupCollectionsRequest, + | protos.google.cloud.redis.cluster.v1.IListBackupCollectionsResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1.IBackupCollection > ): Promise< [ - protos.google.cloud.redis.cluster.v1.ICluster[], - protos.google.cloud.redis.cluster.v1.IListClustersRequest | null, - protos.google.cloud.redis.cluster.v1.IListClustersResponse, + protos.google.cloud.redis.cluster.v1.IBackupCollection[], + protos.google.cloud.redis.cluster.v1.IListBackupCollectionsRequest | null, + protos.google.cloud.redis.cluster.v1.IListBackupCollectionsResponse, ] > | void { request = request || {}; @@ -1239,7 +2288,7 @@ export class CloudRedisClusterClient { parent: request.parent ?? '', }); this.initialize(); - return this.innerApiCalls.listClusters(request, options, callback); + return this.innerApiCalls.listBackupCollections(request, options, callback); } /** @@ -1247,33 +2296,246 @@ export class CloudRedisClusterClient { * @param {Object} request * The request object that will be sent. * @param {string} request.parent - * Required. The resource name of the cluster location using the form: + * Required. The resource name of the backupCollection location using the + * form: * `projects/{project_id}/locations/{location_id}` * where `location_id` refers to a GCP region. - * @param {number} request.pageSize - * The maximum number of items to return. + * @param {number} [request.pageSize] + * Optional. The maximum number of items to return. * * If not specified, a default value of 1000 will be used by the service. * Regardless of the page_size value, the response may include a partial list * and a caller should only rely on response's - * {@link protos.google.cloud.redis.cluster.v1.ListClustersResponse.next_page_token|`next_page_token`} + * {@link protos.google.cloud.redis.cluster.v1.ListBackupCollectionsResponse.next_page_token|`next_page_token`} * to determine if there are more clusters left to be queried. - * @param {string} request.pageToken - * The `next_page_token` value returned from a previous - * {@link protos.CloudRedis.ListClusters|ListClusters} request, if any. + * @param {string} [request.pageToken] + * Optional. The `next_page_token` value returned from a previous + * [ListBackupCollections] request, if any. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Stream} + * An object stream which emits an object representing {@link protos.google.cloud.redis.cluster.v1.BackupCollection|BackupCollection} on 'data' event. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed. Note that it can affect your quota. + * We recommend using `listBackupCollectionsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + */ + listBackupCollectionsStream( + request?: protos.google.cloud.redis.cluster.v1.IListBackupCollectionsRequest, + options?: CallOptions + ): Transform { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); + const defaultCallSettings = this._defaults['listBackupCollections']; + const callSettings = defaultCallSettings.merge(options); + this.initialize(); + return this.descriptors.page.listBackupCollections.createStream( + this.innerApiCalls.listBackupCollections as GaxCall, + request, + callSettings + ); + } + + /** + * Equivalent to `listBackupCollections`, but returns an iterable object. + * + * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The resource name of the backupCollection location using the + * form: + * `projects/{project_id}/locations/{location_id}` + * where `location_id` refers to a GCP region. + * @param {number} [request.pageSize] + * Optional. The maximum number of items to return. + * + * If not specified, a default value of 1000 will be used by the service. + * Regardless of the page_size value, the response may include a partial list + * and a caller should only rely on response's + * {@link protos.google.cloud.redis.cluster.v1.ListBackupCollectionsResponse.next_page_token|`next_page_token`} + * to determine if there are more clusters left to be queried. + * @param {string} [request.pageToken] + * Optional. The `next_page_token` value returned from a previous + * [ListBackupCollections] request, if any. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Object} + * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. + * When you iterate the returned iterable, each element will be an object representing + * {@link protos.google.cloud.redis.cluster.v1.BackupCollection|BackupCollection}. The API will be called under the hood as needed, once per the page, + * so you can stop the iteration when you don't need more results. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + * @example include:samples/generated/v1/cloud_redis_cluster.list_backup_collections.js + * region_tag:redis_v1_generated_CloudRedisCluster_ListBackupCollections_async + */ + listBackupCollectionsAsync( + request?: protos.google.cloud.redis.cluster.v1.IListBackupCollectionsRequest, + options?: CallOptions + ): AsyncIterable { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); + const defaultCallSettings = this._defaults['listBackupCollections']; + const callSettings = defaultCallSettings.merge(options); + this.initialize(); + return this.descriptors.page.listBackupCollections.asyncIterate( + this.innerApiCalls['listBackupCollections'] as GaxCall, + request as {}, + callSettings + ) as AsyncIterable; + } + /** + * Lists all backups owned by a backup collection. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The resource name of the backupCollection using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}` + * @param {number} [request.pageSize] + * Optional. The maximum number of items to return. + * + * If not specified, a default value of 1000 will be used by the service. + * Regardless of the page_size value, the response may include a partial list + * and a caller should only rely on response's + * {@link protos.google.cloud.redis.cluster.v1.ListBackupsResponse.next_page_token|`next_page_token`} + * to determine if there are more clusters left to be queried. + * @param {string} [request.pageToken] + * Optional. The `next_page_token` value returned from a previous + * [ListBackupCollections] request, if any. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is Array of {@link protos.google.cloud.redis.cluster.v1.Backup|Backup}. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed and will merge results from all the pages into this array. + * Note that it can affect your quota. + * We recommend using `listBackupsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + */ + listBackups( + request?: protos.google.cloud.redis.cluster.v1.IListBackupsRequest, + options?: CallOptions + ): Promise< + [ + protos.google.cloud.redis.cluster.v1.IBackup[], + protos.google.cloud.redis.cluster.v1.IListBackupsRequest | null, + protos.google.cloud.redis.cluster.v1.IListBackupsResponse, + ] + >; + listBackups( + request: protos.google.cloud.redis.cluster.v1.IListBackupsRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.redis.cluster.v1.IListBackupsRequest, + | protos.google.cloud.redis.cluster.v1.IListBackupsResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1.IBackup + > + ): void; + listBackups( + request: protos.google.cloud.redis.cluster.v1.IListBackupsRequest, + callback: PaginationCallback< + protos.google.cloud.redis.cluster.v1.IListBackupsRequest, + | protos.google.cloud.redis.cluster.v1.IListBackupsResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1.IBackup + > + ): void; + listBackups( + request?: protos.google.cloud.redis.cluster.v1.IListBackupsRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< + protos.google.cloud.redis.cluster.v1.IListBackupsRequest, + | protos.google.cloud.redis.cluster.v1.IListBackupsResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1.IBackup + >, + callback?: PaginationCallback< + protos.google.cloud.redis.cluster.v1.IListBackupsRequest, + | protos.google.cloud.redis.cluster.v1.IListBackupsResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1.IBackup + > + ): Promise< + [ + protos.google.cloud.redis.cluster.v1.IBackup[], + protos.google.cloud.redis.cluster.v1.IListBackupsRequest | null, + protos.google.cloud.redis.cluster.v1.IListBackupsResponse, + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); + this.initialize(); + return this.innerApiCalls.listBackups(request, options, callback); + } + + /** + * Equivalent to `method.name.toCamelCase()`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The resource name of the backupCollection using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}` + * @param {number} [request.pageSize] + * Optional. The maximum number of items to return. + * + * If not specified, a default value of 1000 will be used by the service. + * Regardless of the page_size value, the response may include a partial list + * and a caller should only rely on response's + * {@link protos.google.cloud.redis.cluster.v1.ListBackupsResponse.next_page_token|`next_page_token`} + * to determine if there are more clusters left to be queried. + * @param {string} [request.pageToken] + * Optional. The `next_page_token` value returned from a previous + * [ListBackupCollections] request, if any. * @param {object} [options] * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. * @returns {Stream} - * An object stream which emits an object representing {@link protos.google.cloud.redis.cluster.v1.Cluster|Cluster} on 'data' event. + * An object stream which emits an object representing {@link protos.google.cloud.redis.cluster.v1.Backup|Backup} on 'data' event. * The client library will perform auto-pagination by default: it will call the API as many * times as needed. Note that it can affect your quota. - * We recommend using `listClustersAsync()` + * We recommend using `listBackupsAsync()` * method described below for async iteration which you can stop as needed. * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } * for more details and examples. */ - listClustersStream( - request?: protos.google.cloud.redis.cluster.v1.IListClustersRequest, + listBackupsStream( + request?: protos.google.cloud.redis.cluster.v1.IListBackupsRequest, options?: CallOptions ): Transform { request = request || {}; @@ -1284,53 +2546,52 @@ export class CloudRedisClusterClient { this._gaxModule.routingHeader.fromParams({ parent: request.parent ?? '', }); - const defaultCallSettings = this._defaults['listClusters']; + const defaultCallSettings = this._defaults['listBackups']; const callSettings = defaultCallSettings.merge(options); this.initialize(); - return this.descriptors.page.listClusters.createStream( - this.innerApiCalls.listClusters as GaxCall, + return this.descriptors.page.listBackups.createStream( + this.innerApiCalls.listBackups as GaxCall, request, callSettings ); } /** - * Equivalent to `listClusters`, but returns an iterable object. + * Equivalent to `listBackups`, but returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. * @param {Object} request * The request object that will be sent. * @param {string} request.parent - * Required. The resource name of the cluster location using the form: - * `projects/{project_id}/locations/{location_id}` - * where `location_id` refers to a GCP region. - * @param {number} request.pageSize - * The maximum number of items to return. + * Required. The resource name of the backupCollection using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}` + * @param {number} [request.pageSize] + * Optional. The maximum number of items to return. * * If not specified, a default value of 1000 will be used by the service. * Regardless of the page_size value, the response may include a partial list * and a caller should only rely on response's - * {@link protos.google.cloud.redis.cluster.v1.ListClustersResponse.next_page_token|`next_page_token`} + * {@link protos.google.cloud.redis.cluster.v1.ListBackupsResponse.next_page_token|`next_page_token`} * to determine if there are more clusters left to be queried. - * @param {string} request.pageToken - * The `next_page_token` value returned from a previous - * {@link protos.CloudRedis.ListClusters|ListClusters} request, if any. + * @param {string} [request.pageToken] + * Optional. The `next_page_token` value returned from a previous + * [ListBackupCollections] request, if any. * @param {object} [options] * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. * @returns {Object} * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. * When you iterate the returned iterable, each element will be an object representing - * {@link protos.google.cloud.redis.cluster.v1.Cluster|Cluster}. The API will be called under the hood as needed, once per the page, + * {@link protos.google.cloud.redis.cluster.v1.Backup|Backup}. The API will be called under the hood as needed, once per the page, * so you can stop the iteration when you don't need more results. * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } * for more details and examples. - * @example include:samples/generated/v1/cloud_redis_cluster.list_clusters.js - * region_tag:redis_v1_generated_CloudRedisCluster_ListClusters_async + * @example include:samples/generated/v1/cloud_redis_cluster.list_backups.js + * region_tag:redis_v1_generated_CloudRedisCluster_ListBackups_async */ - listClustersAsync( - request?: protos.google.cloud.redis.cluster.v1.IListClustersRequest, + listBackupsAsync( + request?: protos.google.cloud.redis.cluster.v1.IListBackupsRequest, options?: CallOptions - ): AsyncIterable { + ): AsyncIterable { request = request || {}; options = options || {}; options.otherArgs = options.otherArgs || {}; @@ -1339,14 +2600,14 @@ export class CloudRedisClusterClient { this._gaxModule.routingHeader.fromParams({ parent: request.parent ?? '', }); - const defaultCallSettings = this._defaults['listClusters']; + const defaultCallSettings = this._defaults['listBackups']; const callSettings = defaultCallSettings.merge(options); this.initialize(); - return this.descriptors.page.listClusters.asyncIterate( - this.innerApiCalls['listClusters'] as GaxCall, + return this.descriptors.page.listBackups.asyncIterate( + this.innerApiCalls['listBackups'] as GaxCall, request as {}, callSettings - ) as AsyncIterable; + ) as AsyncIterable; } /** * Gets information about a location. @@ -1605,6 +2866,133 @@ export class CloudRedisClusterClient { // -- Path templates -- // -------------------- + /** + * Return a fully-qualified backup resource name string. + * + * @param {string} project + * @param {string} location + * @param {string} backup_collection + * @param {string} backup + * @returns {string} Resource name string. + */ + backupPath( + project: string, + location: string, + backupCollection: string, + backup: string + ) { + return this.pathTemplates.backupPathTemplate.render({ + project: project, + location: location, + backup_collection: backupCollection, + backup: backup, + }); + } + + /** + * Parse the project from Backup resource. + * + * @param {string} backupName + * A fully-qualified path representing Backup resource. + * @returns {string} A string representing the project. + */ + matchProjectFromBackupName(backupName: string) { + return this.pathTemplates.backupPathTemplate.match(backupName).project; + } + + /** + * Parse the location from Backup resource. + * + * @param {string} backupName + * A fully-qualified path representing Backup resource. + * @returns {string} A string representing the location. + */ + matchLocationFromBackupName(backupName: string) { + return this.pathTemplates.backupPathTemplate.match(backupName).location; + } + + /** + * Parse the backup_collection from Backup resource. + * + * @param {string} backupName + * A fully-qualified path representing Backup resource. + * @returns {string} A string representing the backup_collection. + */ + matchBackupCollectionFromBackupName(backupName: string) { + return this.pathTemplates.backupPathTemplate.match(backupName) + .backup_collection; + } + + /** + * Parse the backup from Backup resource. + * + * @param {string} backupName + * A fully-qualified path representing Backup resource. + * @returns {string} A string representing the backup. + */ + matchBackupFromBackupName(backupName: string) { + return this.pathTemplates.backupPathTemplate.match(backupName).backup; + } + + /** + * Return a fully-qualified backupCollection resource name string. + * + * @param {string} project + * @param {string} location + * @param {string} backup_collection + * @returns {string} Resource name string. + */ + backupCollectionPath( + project: string, + location: string, + backupCollection: string + ) { + return this.pathTemplates.backupCollectionPathTemplate.render({ + project: project, + location: location, + backup_collection: backupCollection, + }); + } + + /** + * Parse the project from BackupCollection resource. + * + * @param {string} backupCollectionName + * A fully-qualified path representing BackupCollection resource. + * @returns {string} A string representing the project. + */ + matchProjectFromBackupCollectionName(backupCollectionName: string) { + return this.pathTemplates.backupCollectionPathTemplate.match( + backupCollectionName + ).project; + } + + /** + * Parse the location from BackupCollection resource. + * + * @param {string} backupCollectionName + * A fully-qualified path representing BackupCollection resource. + * @returns {string} A string representing the location. + */ + matchLocationFromBackupCollectionName(backupCollectionName: string) { + return this.pathTemplates.backupCollectionPathTemplate.match( + backupCollectionName + ).location; + } + + /** + * Parse the backup_collection from BackupCollection resource. + * + * @param {string} backupCollectionName + * A fully-qualified path representing BackupCollection resource. + * @returns {string} A string representing the backup_collection. + */ + matchBackupCollectionFromBackupCollectionName(backupCollectionName: string) { + return this.pathTemplates.backupCollectionPathTemplate.match( + backupCollectionName + ).backup_collection; + } + /** * Return a fully-qualified certificateAuthority resource name string. * @@ -1709,6 +3097,223 @@ export class CloudRedisClusterClient { return this.pathTemplates.clusterPathTemplate.match(clusterName).cluster; } + /** + * Return a fully-qualified cryptoKey resource name string. + * + * @param {string} project + * @param {string} location + * @param {string} key_ring + * @param {string} crypto_key + * @returns {string} Resource name string. + */ + cryptoKeyPath( + project: string, + location: string, + keyRing: string, + cryptoKey: string + ) { + return this.pathTemplates.cryptoKeyPathTemplate.render({ + project: project, + location: location, + key_ring: keyRing, + crypto_key: cryptoKey, + }); + } + + /** + * Parse the project from CryptoKey resource. + * + * @param {string} cryptoKeyName + * A fully-qualified path representing CryptoKey resource. + * @returns {string} A string representing the project. + */ + matchProjectFromCryptoKeyName(cryptoKeyName: string) { + return this.pathTemplates.cryptoKeyPathTemplate.match(cryptoKeyName) + .project; + } + + /** + * Parse the location from CryptoKey resource. + * + * @param {string} cryptoKeyName + * A fully-qualified path representing CryptoKey resource. + * @returns {string} A string representing the location. + */ + matchLocationFromCryptoKeyName(cryptoKeyName: string) { + return this.pathTemplates.cryptoKeyPathTemplate.match(cryptoKeyName) + .location; + } + + /** + * Parse the key_ring from CryptoKey resource. + * + * @param {string} cryptoKeyName + * A fully-qualified path representing CryptoKey resource. + * @returns {string} A string representing the key_ring. + */ + matchKeyRingFromCryptoKeyName(cryptoKeyName: string) { + return this.pathTemplates.cryptoKeyPathTemplate.match(cryptoKeyName) + .key_ring; + } + + /** + * Parse the crypto_key from CryptoKey resource. + * + * @param {string} cryptoKeyName + * A fully-qualified path representing CryptoKey resource. + * @returns {string} A string representing the crypto_key. + */ + matchCryptoKeyFromCryptoKeyName(cryptoKeyName: string) { + return this.pathTemplates.cryptoKeyPathTemplate.match(cryptoKeyName) + .crypto_key; + } + + /** + * Return a fully-qualified cryptoKeyVersion resource name string. + * + * @param {string} project + * @param {string} location + * @param {string} key_ring + * @param {string} crypto_key + * @param {string} crypto_key_version + * @returns {string} Resource name string. + */ + cryptoKeyVersionPath( + project: string, + location: string, + keyRing: string, + cryptoKey: string, + cryptoKeyVersion: string + ) { + return this.pathTemplates.cryptoKeyVersionPathTemplate.render({ + project: project, + location: location, + key_ring: keyRing, + crypto_key: cryptoKey, + crypto_key_version: cryptoKeyVersion, + }); + } + + /** + * Parse the project from CryptoKeyVersion resource. + * + * @param {string} cryptoKeyVersionName + * A fully-qualified path representing CryptoKeyVersion resource. + * @returns {string} A string representing the project. + */ + matchProjectFromCryptoKeyVersionName(cryptoKeyVersionName: string) { + return this.pathTemplates.cryptoKeyVersionPathTemplate.match( + cryptoKeyVersionName + ).project; + } + + /** + * Parse the location from CryptoKeyVersion resource. + * + * @param {string} cryptoKeyVersionName + * A fully-qualified path representing CryptoKeyVersion resource. + * @returns {string} A string representing the location. + */ + matchLocationFromCryptoKeyVersionName(cryptoKeyVersionName: string) { + return this.pathTemplates.cryptoKeyVersionPathTemplate.match( + cryptoKeyVersionName + ).location; + } + + /** + * Parse the key_ring from CryptoKeyVersion resource. + * + * @param {string} cryptoKeyVersionName + * A fully-qualified path representing CryptoKeyVersion resource. + * @returns {string} A string representing the key_ring. + */ + matchKeyRingFromCryptoKeyVersionName(cryptoKeyVersionName: string) { + return this.pathTemplates.cryptoKeyVersionPathTemplate.match( + cryptoKeyVersionName + ).key_ring; + } + + /** + * Parse the crypto_key from CryptoKeyVersion resource. + * + * @param {string} cryptoKeyVersionName + * A fully-qualified path representing CryptoKeyVersion resource. + * @returns {string} A string representing the crypto_key. + */ + matchCryptoKeyFromCryptoKeyVersionName(cryptoKeyVersionName: string) { + return this.pathTemplates.cryptoKeyVersionPathTemplate.match( + cryptoKeyVersionName + ).crypto_key; + } + + /** + * Parse the crypto_key_version from CryptoKeyVersion resource. + * + * @param {string} cryptoKeyVersionName + * A fully-qualified path representing CryptoKeyVersion resource. + * @returns {string} A string representing the crypto_key_version. + */ + matchCryptoKeyVersionFromCryptoKeyVersionName(cryptoKeyVersionName: string) { + return this.pathTemplates.cryptoKeyVersionPathTemplate.match( + cryptoKeyVersionName + ).crypto_key_version; + } + + /** + * Return a fully-qualified forwardingRule resource name string. + * + * @param {string} project + * @param {string} region + * @param {string} forwarding_rule + * @returns {string} Resource name string. + */ + forwardingRulePath(project: string, region: string, forwardingRule: string) { + return this.pathTemplates.forwardingRulePathTemplate.render({ + project: project, + region: region, + forwarding_rule: forwardingRule, + }); + } + + /** + * Parse the project from ForwardingRule resource. + * + * @param {string} forwardingRuleName + * A fully-qualified path representing ForwardingRule resource. + * @returns {string} A string representing the project. + */ + matchProjectFromForwardingRuleName(forwardingRuleName: string) { + return this.pathTemplates.forwardingRulePathTemplate.match( + forwardingRuleName + ).project; + } + + /** + * Parse the region from ForwardingRule resource. + * + * @param {string} forwardingRuleName + * A fully-qualified path representing ForwardingRule resource. + * @returns {string} A string representing the region. + */ + matchRegionFromForwardingRuleName(forwardingRuleName: string) { + return this.pathTemplates.forwardingRulePathTemplate.match( + forwardingRuleName + ).region; + } + + /** + * Parse the forwarding_rule from ForwardingRule resource. + * + * @param {string} forwardingRuleName + * A fully-qualified path representing ForwardingRule resource. + * @returns {string} A string representing the forwarding_rule. + */ + matchForwardingRuleFromForwardingRuleName(forwardingRuleName: string) { + return this.pathTemplates.forwardingRulePathTemplate.match( + forwardingRuleName + ).forwarding_rule; + } + /** * Return a fully-qualified location resource name string. * @@ -1745,6 +3350,126 @@ export class CloudRedisClusterClient { return this.pathTemplates.locationPathTemplate.match(locationName).location; } + /** + * Return a fully-qualified network resource name string. + * + * @param {string} project + * @param {string} network + * @returns {string} Resource name string. + */ + networkPath(project: string, network: string) { + return this.pathTemplates.networkPathTemplate.render({ + project: project, + network: network, + }); + } + + /** + * Parse the project from Network resource. + * + * @param {string} networkName + * A fully-qualified path representing Network resource. + * @returns {string} A string representing the project. + */ + matchProjectFromNetworkName(networkName: string) { + return this.pathTemplates.networkPathTemplate.match(networkName).project; + } + + /** + * Parse the network from Network resource. + * + * @param {string} networkName + * A fully-qualified path representing Network resource. + * @returns {string} A string representing the network. + */ + matchNetworkFromNetworkName(networkName: string) { + return this.pathTemplates.networkPathTemplate.match(networkName).network; + } + + /** + * Return a fully-qualified project resource name string. + * + * @param {string} project + * @returns {string} Resource name string. + */ + projectPath(project: string) { + return this.pathTemplates.projectPathTemplate.render({ + project: project, + }); + } + + /** + * Parse the project from Project resource. + * + * @param {string} projectName + * A fully-qualified path representing Project resource. + * @returns {string} A string representing the project. + */ + matchProjectFromProjectName(projectName: string) { + return this.pathTemplates.projectPathTemplate.match(projectName).project; + } + + /** + * Return a fully-qualified serviceAttachment resource name string. + * + * @param {string} project + * @param {string} region + * @param {string} service_attachment + * @returns {string} Resource name string. + */ + serviceAttachmentPath( + project: string, + region: string, + serviceAttachment: string + ) { + return this.pathTemplates.serviceAttachmentPathTemplate.render({ + project: project, + region: region, + service_attachment: serviceAttachment, + }); + } + + /** + * Parse the project from ServiceAttachment resource. + * + * @param {string} serviceAttachmentName + * A fully-qualified path representing ServiceAttachment resource. + * @returns {string} A string representing the project. + */ + matchProjectFromServiceAttachmentName(serviceAttachmentName: string) { + return this.pathTemplates.serviceAttachmentPathTemplate.match( + serviceAttachmentName + ).project; + } + + /** + * Parse the region from ServiceAttachment resource. + * + * @param {string} serviceAttachmentName + * A fully-qualified path representing ServiceAttachment resource. + * @returns {string} A string representing the region. + */ + matchRegionFromServiceAttachmentName(serviceAttachmentName: string) { + return this.pathTemplates.serviceAttachmentPathTemplate.match( + serviceAttachmentName + ).region; + } + + /** + * Parse the service_attachment from ServiceAttachment resource. + * + * @param {string} serviceAttachmentName + * A fully-qualified path representing ServiceAttachment resource. + * @returns {string} A string representing the service_attachment. + */ + matchServiceAttachmentFromServiceAttachmentName( + serviceAttachmentName: string + ) { + return this.pathTemplates.serviceAttachmentPathTemplate.match( + serviceAttachmentName + ).service_attachment; + } + /** * Terminate the gRPC channel and close the client. * diff --git a/packages/google-cloud-redis-cluster/src/v1/cloud_redis_cluster_client_config.json b/packages/google-cloud-redis-cluster/src/v1/cloud_redis_cluster_client_config.json index bd57f6940a0..c3f36827bd3 100644 --- a/packages/google-cloud-redis-cluster/src/v1/cloud_redis_cluster_client_config.json +++ b/packages/google-cloud-redis-cluster/src/v1/cloud_redis_cluster_client_config.json @@ -49,6 +49,46 @@ "timeout_millis": 600000, "retry_codes_name": "non_idempotent", "retry_params_name": "default" + }, + "RescheduleClusterMaintenance": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "ListBackupCollections": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "GetBackupCollection": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "ListBackups": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "GetBackup": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "DeleteBackup": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "ExportBackup": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "BackupCluster": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" } } } diff --git a/packages/google-cloud-redis-cluster/src/v1/gapic_metadata.json b/packages/google-cloud-redis-cluster/src/v1/gapic_metadata.json index 40bfd370c4c..f5e3747d6f1 100644 --- a/packages/google-cloud-redis-cluster/src/v1/gapic_metadata.json +++ b/packages/google-cloud-redis-cluster/src/v1/gapic_metadata.json @@ -20,6 +20,16 @@ "getClusterCertificateAuthority" ] }, + "GetBackupCollection": { + "methods": [ + "getBackupCollection" + ] + }, + "GetBackup": { + "methods": [ + "getBackup" + ] + }, "UpdateCluster": { "methods": [ "updateCluster" @@ -35,12 +45,46 @@ "createCluster" ] }, + "RescheduleClusterMaintenance": { + "methods": [ + "rescheduleClusterMaintenance" + ] + }, + "DeleteBackup": { + "methods": [ + "deleteBackup" + ] + }, + "ExportBackup": { + "methods": [ + "exportBackup" + ] + }, + "BackupCluster": { + "methods": [ + "backupCluster" + ] + }, "ListClusters": { "methods": [ "listClusters", "listClustersStream", "listClustersAsync" ] + }, + "ListBackupCollections": { + "methods": [ + "listBackupCollections", + "listBackupCollectionsStream", + "listBackupCollectionsAsync" + ] + }, + "ListBackups": { + "methods": [ + "listBackups", + "listBackupsStream", + "listBackupsAsync" + ] } } }, @@ -57,6 +101,16 @@ "getClusterCertificateAuthority" ] }, + "GetBackupCollection": { + "methods": [ + "getBackupCollection" + ] + }, + "GetBackup": { + "methods": [ + "getBackup" + ] + }, "UpdateCluster": { "methods": [ "updateCluster" @@ -72,12 +126,46 @@ "createCluster" ] }, + "RescheduleClusterMaintenance": { + "methods": [ + "rescheduleClusterMaintenance" + ] + }, + "DeleteBackup": { + "methods": [ + "deleteBackup" + ] + }, + "ExportBackup": { + "methods": [ + "exportBackup" + ] + }, + "BackupCluster": { + "methods": [ + "backupCluster" + ] + }, "ListClusters": { "methods": [ "listClusters", "listClustersStream", "listClustersAsync" ] + }, + "ListBackupCollections": { + "methods": [ + "listBackupCollections", + "listBackupCollectionsStream", + "listBackupCollectionsAsync" + ] + }, + "ListBackups": { + "methods": [ + "listBackups", + "listBackupsStream", + "listBackupsAsync" + ] } } } diff --git a/packages/google-cloud-redis-cluster/src/v1beta1/cloud_redis_cluster_client.ts b/packages/google-cloud-redis-cluster/src/v1beta1/cloud_redis_cluster_client.ts index 7f8f8da1ebb..285eb5de5a4 100644 --- a/packages/google-cloud-redis-cluster/src/v1beta1/cloud_redis_cluster_client.ts +++ b/packages/google-cloud-redis-cluster/src/v1beta1/cloud_redis_cluster_client.ts @@ -58,12 +58,6 @@ const version = require('../../../package.json').version; * * Note that location_id must be a GCP `region`; for example: * * `projects/redpepper-1290/locations/us-central1/clusters/my-redis` - * - * We use API version selector for Flex APIs - * * The versioning strategy is release-based versioning - * * Our backend CLH only deals with the superset version (called v1main) - * * Existing backend for Redis Gen1 and MRR is not touched. - * * More details in go/redis-flex-api-versioning * @class * @memberof v1beta1 */ @@ -229,15 +223,39 @@ export class CloudRedisClusterClient { // identifiers to uniquely identify resources within the API. // Create useful helper objects for these. this.pathTemplates = { + backupPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/backupCollections/{backup_collection}/backups/{backup}' + ), + backupCollectionPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/backupCollections/{backup_collection}' + ), certificateAuthorityPathTemplate: new this._gaxModule.PathTemplate( 'projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority' ), clusterPathTemplate: new this._gaxModule.PathTemplate( 'projects/{project}/locations/{location}/clusters/{cluster}' ), + cryptoKeyPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}' + ), + cryptoKeyVersionPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}' + ), + forwardingRulePathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}' + ), locationPathTemplate: new this._gaxModule.PathTemplate( 'projects/{project}/locations/{location}' ), + networkPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/global/networks/{network}' + ), + projectPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}' + ), + serviceAttachmentPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/regions/{region}/serviceAttachments/{service_attachment}' + ), }; // Some of the methods on this service return "paged" results, @@ -249,6 +267,16 @@ export class CloudRedisClusterClient { 'nextPageToken', 'clusters' ), + listBackupCollections: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'backupCollections' + ), + listBackups: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'backups' + ), }; const protoFilesRoot = this._gaxModule.protobuf.Root.fromJSON(jsonProtos); @@ -309,6 +337,30 @@ export class CloudRedisClusterClient { const createClusterMetadata = protoFilesRoot.lookup( '.google.protobuf.Any' ) as gax.protobuf.Type; + const rescheduleClusterMaintenanceResponse = protoFilesRoot.lookup( + '.google.cloud.redis.cluster.v1beta1.Cluster' + ) as gax.protobuf.Type; + const rescheduleClusterMaintenanceMetadata = protoFilesRoot.lookup( + '.google.protobuf.Any' + ) as gax.protobuf.Type; + const deleteBackupResponse = protoFilesRoot.lookup( + '.google.protobuf.Empty' + ) as gax.protobuf.Type; + const deleteBackupMetadata = protoFilesRoot.lookup( + '.google.protobuf.Any' + ) as gax.protobuf.Type; + const exportBackupResponse = protoFilesRoot.lookup( + '.google.cloud.redis.cluster.v1beta1.Backup' + ) as gax.protobuf.Type; + const exportBackupMetadata = protoFilesRoot.lookup( + '.google.protobuf.Any' + ) as gax.protobuf.Type; + const backupClusterResponse = protoFilesRoot.lookup( + '.google.cloud.redis.cluster.v1beta1.Cluster' + ) as gax.protobuf.Type; + const backupClusterMetadata = protoFilesRoot.lookup( + '.google.protobuf.Any' + ) as gax.protobuf.Type; this.descriptors.longrunning = { updateCluster: new this._gaxModule.LongrunningDescriptor( @@ -326,6 +378,30 @@ export class CloudRedisClusterClient { createClusterResponse.decode.bind(createClusterResponse), createClusterMetadata.decode.bind(createClusterMetadata) ), + rescheduleClusterMaintenance: new this._gaxModule.LongrunningDescriptor( + this.operationsClient, + rescheduleClusterMaintenanceResponse.decode.bind( + rescheduleClusterMaintenanceResponse + ), + rescheduleClusterMaintenanceMetadata.decode.bind( + rescheduleClusterMaintenanceMetadata + ) + ), + deleteBackup: new this._gaxModule.LongrunningDescriptor( + this.operationsClient, + deleteBackupResponse.decode.bind(deleteBackupResponse), + deleteBackupMetadata.decode.bind(deleteBackupMetadata) + ), + exportBackup: new this._gaxModule.LongrunningDescriptor( + this.operationsClient, + exportBackupResponse.decode.bind(exportBackupResponse), + exportBackupMetadata.decode.bind(exportBackupMetadata) + ), + backupCluster: new this._gaxModule.LongrunningDescriptor( + this.operationsClient, + backupClusterResponse.decode.bind(backupClusterResponse), + backupClusterMetadata.decode.bind(backupClusterMetadata) + ), }; // Put together the default options sent with requests. @@ -385,6 +461,14 @@ export class CloudRedisClusterClient { 'deleteCluster', 'createCluster', 'getClusterCertificateAuthority', + 'rescheduleClusterMaintenance', + 'listBackupCollections', + 'getBackupCollection', + 'listBackups', + 'getBackup', + 'deleteBackup', + 'exportBackup', + 'backupCluster', ]; for (const methodName of cloudRedisClusterStubMethods) { const callPromise = this.cloudRedisClusterStub.then( @@ -696,6 +780,195 @@ export class CloudRedisClusterClient { callback ); } + /** + * Get a backup collection. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Redis backupCollection resource name using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}` + * where `location_id` refers to a GCP region. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.redis.cluster.v1beta1.BackupCollection|BackupCollection}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta1/cloud_redis_cluster.get_backup_collection.js + * region_tag:redis_v1beta1_generated_CloudRedisCluster_GetBackupCollection_async + */ + getBackupCollection( + request?: protos.google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest, + options?: CallOptions + ): Promise< + [ + protos.google.cloud.redis.cluster.v1beta1.IBackupCollection, + ( + | protos.google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest + | undefined + ), + {} | undefined, + ] + >; + getBackupCollection( + request: protos.google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.redis.cluster.v1beta1.IBackupCollection, + | protos.google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest + | null + | undefined, + {} | null | undefined + > + ): void; + getBackupCollection( + request: protos.google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest, + callback: Callback< + protos.google.cloud.redis.cluster.v1beta1.IBackupCollection, + | protos.google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest + | null + | undefined, + {} | null | undefined + > + ): void; + getBackupCollection( + request?: protos.google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest, + optionsOrCallback?: + | CallOptions + | Callback< + protos.google.cloud.redis.cluster.v1beta1.IBackupCollection, + | protos.google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.redis.cluster.v1beta1.IBackupCollection, + | protos.google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest + | null + | undefined, + {} | null | undefined + > + ): Promise< + [ + protos.google.cloud.redis.cluster.v1beta1.IBackupCollection, + ( + | protos.google.cloud.redis.cluster.v1beta1.IGetBackupCollectionRequest + | undefined + ), + {} | undefined, + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); + this.initialize(); + return this.innerApiCalls.getBackupCollection(request, options, callback); + } + /** + * Gets the details of a specific backup. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Redis backup resource name using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}` + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.redis.cluster.v1beta1.Backup|Backup}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta1/cloud_redis_cluster.get_backup.js + * region_tag:redis_v1beta1_generated_CloudRedisCluster_GetBackup_async + */ + getBackup( + request?: protos.google.cloud.redis.cluster.v1beta1.IGetBackupRequest, + options?: CallOptions + ): Promise< + [ + protos.google.cloud.redis.cluster.v1beta1.IBackup, + protos.google.cloud.redis.cluster.v1beta1.IGetBackupRequest | undefined, + {} | undefined, + ] + >; + getBackup( + request: protos.google.cloud.redis.cluster.v1beta1.IGetBackupRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.redis.cluster.v1beta1.IBackup, + | protos.google.cloud.redis.cluster.v1beta1.IGetBackupRequest + | null + | undefined, + {} | null | undefined + > + ): void; + getBackup( + request: protos.google.cloud.redis.cluster.v1beta1.IGetBackupRequest, + callback: Callback< + protos.google.cloud.redis.cluster.v1beta1.IBackup, + | protos.google.cloud.redis.cluster.v1beta1.IGetBackupRequest + | null + | undefined, + {} | null | undefined + > + ): void; + getBackup( + request?: protos.google.cloud.redis.cluster.v1beta1.IGetBackupRequest, + optionsOrCallback?: + | CallOptions + | Callback< + protos.google.cloud.redis.cluster.v1beta1.IBackup, + | protos.google.cloud.redis.cluster.v1beta1.IGetBackupRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.redis.cluster.v1beta1.IBackup, + | protos.google.cloud.redis.cluster.v1beta1.IGetBackupRequest + | null + | undefined, + {} | null | undefined + > + ): Promise< + [ + protos.google.cloud.redis.cluster.v1beta1.IBackup, + protos.google.cloud.redis.cluster.v1beta1.IGetBackupRequest | undefined, + {} | undefined, + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); + this.initialize(); + return this.innerApiCalls.getBackup(request, options, callback); + } /** * Updates the metadata and configuration of a specific Redis cluster. @@ -1129,99 +1402,881 @@ export class CloudRedisClusterClient { >; } /** - * Lists all Redis clusters owned by a project in either the specified - * location (region) or all locations. - * - * The location should have the following format: - * - * * `projects/{project_id}/locations/{location_id}` - * - * If `location_id` is specified as `-` (wildcard), then all regions - * available to the project are queried, and the results are aggregated. + * Reschedules upcoming maintenance event. * * @param {Object} request * The request object that will be sent. - * @param {string} request.parent - * Required. The resource name of the cluster location using the form: - * `projects/{project_id}/locations/{location_id}` + * @param {string} request.name + * Required. Redis Cluster instance resource name using the form: + * `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` * where `location_id` refers to a GCP region. - * @param {number} request.pageSize - * The maximum number of items to return. - * - * If not specified, a default value of 1000 will be used by the service. - * Regardless of the page_size value, the response may include a partial list - * and a caller should only rely on response's - * {@link protos.google.cloud.redis.cluster.v1beta1.ListClustersResponse.next_page_token|`next_page_token`} - * to determine if there are more clusters left to be queried. - * @param {string} request.pageToken - * The `next_page_token` value returned from a previous - * {@link protos.CloudRedis.ListClusters|ListClusters} request, if any. + * @param {google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest.RescheduleType} request.rescheduleType + * Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as + * well. + * @param {google.protobuf.Timestamp} [request.scheduleTime] + * Optional. Timestamp when the maintenance shall be rescheduled to if + * reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for + * example `2012-11-15T16:19:00.094Z`. * @param {object} [options] * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is Array of {@link protos.google.cloud.redis.cluster.v1beta1.Cluster|Cluster}. - * The client library will perform auto-pagination by default: it will call the API as many - * times as needed and will merge results from all the pages into this array. - * Note that it can affect your quota. - * We recommend using `listClustersAsync()` - * method described below for async iteration which you can stop as needed. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } * for more details and examples. + * @example include:samples/generated/v1beta1/cloud_redis_cluster.reschedule_cluster_maintenance.js + * region_tag:redis_v1beta1_generated_CloudRedisCluster_RescheduleClusterMaintenance_async */ - listClusters( - request?: protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, + rescheduleClusterMaintenance( + request?: protos.google.cloud.redis.cluster.v1beta1.IRescheduleClusterMaintenanceRequest, options?: CallOptions ): Promise< [ - protos.google.cloud.redis.cluster.v1beta1.ICluster[], - protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest | null, - protos.google.cloud.redis.cluster.v1beta1.IListClustersResponse, + LROperation< + protos.google.cloud.redis.cluster.v1beta1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, ] >; - listClusters( - request: protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, + rescheduleClusterMaintenance( + request: protos.google.cloud.redis.cluster.v1beta1.IRescheduleClusterMaintenanceRequest, options: CallOptions, - callback: PaginationCallback< - protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, - | protos.google.cloud.redis.cluster.v1beta1.IListClustersResponse - | null - | undefined, - protos.google.cloud.redis.cluster.v1beta1.ICluster + callback: Callback< + LROperation< + protos.google.cloud.redis.cluster.v1beta1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined > ): void; - listClusters( - request: protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, - callback: PaginationCallback< - protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, - | protos.google.cloud.redis.cluster.v1beta1.IListClustersResponse - | null - | undefined, - protos.google.cloud.redis.cluster.v1beta1.ICluster + rescheduleClusterMaintenance( + request: protos.google.cloud.redis.cluster.v1beta1.IRescheduleClusterMaintenanceRequest, + callback: Callback< + LROperation< + protos.google.cloud.redis.cluster.v1beta1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined > ): void; - listClusters( - request?: protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, + rescheduleClusterMaintenance( + request?: protos.google.cloud.redis.cluster.v1beta1.IRescheduleClusterMaintenanceRequest, optionsOrCallback?: | CallOptions - | PaginationCallback< - protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, - | protos.google.cloud.redis.cluster.v1beta1.IListClustersResponse - | null + | Callback< + LROperation< + protos.google.cloud.redis.cluster.v1beta1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.redis.cluster.v1beta1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): Promise< + [ + LROperation< + protos.google.cloud.redis.cluster.v1beta1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); + this.initialize(); + return this.innerApiCalls.rescheduleClusterMaintenance( + request, + options, + callback + ); + } + /** + * Check the status of the long running operation returned by `rescheduleClusterMaintenance()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta1/cloud_redis_cluster.reschedule_cluster_maintenance.js + * region_tag:redis_v1beta1_generated_CloudRedisCluster_RescheduleClusterMaintenance_async + */ + async checkRescheduleClusterMaintenanceProgress( + name: string + ): Promise< + LROperation< + protos.google.cloud.redis.cluster.v1beta1.Cluster, + protos.google.protobuf.Any + > + > { + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + {name} + ); + const [operation] = await this.operationsClient.getOperation(request); + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.rescheduleClusterMaintenance, + this._gaxModule.createDefaultBackoffSettings() + ); + return decodeOperation as LROperation< + protos.google.cloud.redis.cluster.v1beta1.Cluster, + protos.google.protobuf.Any + >; + } + /** + * Deletes a specific backup. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Redis backup resource name using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}` + * @param {string} [request.requestId] + * Optional. Idempotent request UUID. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta1/cloud_redis_cluster.delete_backup.js + * region_tag:redis_v1beta1_generated_CloudRedisCluster_DeleteBackup_async + */ + deleteBackup( + request?: protos.google.cloud.redis.cluster.v1beta1.IDeleteBackupRequest, + options?: CallOptions + ): Promise< + [ + LROperation, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; + deleteBackup( + request: protos.google.cloud.redis.cluster.v1beta1.IDeleteBackupRequest, + options: CallOptions, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): void; + deleteBackup( + request: protos.google.cloud.redis.cluster.v1beta1.IDeleteBackupRequest, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): void; + deleteBackup( + request?: protos.google.cloud.redis.cluster.v1beta1.IDeleteBackupRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.protobuf.IEmpty, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): Promise< + [ + LROperation, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); + this.initialize(); + return this.innerApiCalls.deleteBackup(request, options, callback); + } + /** + * Check the status of the long running operation returned by `deleteBackup()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta1/cloud_redis_cluster.delete_backup.js + * region_tag:redis_v1beta1_generated_CloudRedisCluster_DeleteBackup_async + */ + async checkDeleteBackupProgress( + name: string + ): Promise< + LROperation + > { + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + {name} + ); + const [operation] = await this.operationsClient.getOperation(request); + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.deleteBackup, + this._gaxModule.createDefaultBackoffSettings() + ); + return decodeOperation as LROperation< + protos.google.protobuf.Empty, + protos.google.protobuf.Any + >; + } + /** + * Exports a specific backup to a customer target Cloud Storage URI. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.gcsBucket + * Google Cloud Storage bucket, like "my-bucket". + * @param {string} request.name + * Required. Redis backup resource name using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}` + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta1/cloud_redis_cluster.export_backup.js + * region_tag:redis_v1beta1_generated_CloudRedisCluster_ExportBackup_async + */ + exportBackup( + request?: protos.google.cloud.redis.cluster.v1beta1.IExportBackupRequest, + options?: CallOptions + ): Promise< + [ + LROperation< + protos.google.cloud.redis.cluster.v1beta1.IBackup, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; + exportBackup( + request: protos.google.cloud.redis.cluster.v1beta1.IExportBackupRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.redis.cluster.v1beta1.IBackup, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): void; + exportBackup( + request: protos.google.cloud.redis.cluster.v1beta1.IExportBackupRequest, + callback: Callback< + LROperation< + protos.google.cloud.redis.cluster.v1beta1.IBackup, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): void; + exportBackup( + request?: protos.google.cloud.redis.cluster.v1beta1.IExportBackupRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.redis.cluster.v1beta1.IBackup, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.redis.cluster.v1beta1.IBackup, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): Promise< + [ + LROperation< + protos.google.cloud.redis.cluster.v1beta1.IBackup, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); + this.initialize(); + return this.innerApiCalls.exportBackup(request, options, callback); + } + /** + * Check the status of the long running operation returned by `exportBackup()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta1/cloud_redis_cluster.export_backup.js + * region_tag:redis_v1beta1_generated_CloudRedisCluster_ExportBackup_async + */ + async checkExportBackupProgress( + name: string + ): Promise< + LROperation< + protos.google.cloud.redis.cluster.v1beta1.Backup, + protos.google.protobuf.Any + > + > { + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + {name} + ); + const [operation] = await this.operationsClient.getOperation(request); + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.exportBackup, + this._gaxModule.createDefaultBackoffSettings() + ); + return decodeOperation as LROperation< + protos.google.cloud.redis.cluster.v1beta1.Backup, + protos.google.protobuf.Any + >; + } + /** + * Backup Redis Cluster. + * If this is the first time a backup is being created, a backup collection + * will be created at the backend, and this backup belongs to this collection. + * Both collection and backup will have a resource name. Backup will be + * executed for each shard. A replica (primary if nonHA) will be selected to + * perform the execution. Backup call will be rejected if there is an ongoing + * backup or update operation. Be aware that during preview, if the cluster's + * internal software version is too old, critical update will be performed + * before actual backup. Once the internal software version is updated to the + * minimum version required by the backup feature, subsequent backups will not + * require critical update. After preview, there will be no critical update + * needed for backup. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Redis cluster resource name using the form: + * `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` + * where `location_id` refers to a GCP region. + * @param {google.protobuf.Duration} [request.ttl] + * Optional. TTL for the backup to expire. Value range is 1 day to 100 years. + * If not specified, the default value is 100 years. + * @param {string} [request.backupId] + * Optional. The id of the backup to be created. If not specified, the + * default value ([YYYYMMDDHHMMSS]_[Shortened Cluster UID] is used. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta1/cloud_redis_cluster.backup_cluster.js + * region_tag:redis_v1beta1_generated_CloudRedisCluster_BackupCluster_async + */ + backupCluster( + request?: protos.google.cloud.redis.cluster.v1beta1.IBackupClusterRequest, + options?: CallOptions + ): Promise< + [ + LROperation< + protos.google.cloud.redis.cluster.v1beta1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; + backupCluster( + request: protos.google.cloud.redis.cluster.v1beta1.IBackupClusterRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.redis.cluster.v1beta1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): void; + backupCluster( + request: protos.google.cloud.redis.cluster.v1beta1.IBackupClusterRequest, + callback: Callback< + LROperation< + protos.google.cloud.redis.cluster.v1beta1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): void; + backupCluster( + request?: protos.google.cloud.redis.cluster.v1beta1.IBackupClusterRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.redis.cluster.v1beta1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.redis.cluster.v1beta1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + ): Promise< + [ + LROperation< + protos.google.cloud.redis.cluster.v1beta1.ICluster, + protos.google.protobuf.IAny + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); + this.initialize(); + return this.innerApiCalls.backupCluster(request, options, callback); + } + /** + * Check the status of the long running operation returned by `backupCluster()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta1/cloud_redis_cluster.backup_cluster.js + * region_tag:redis_v1beta1_generated_CloudRedisCluster_BackupCluster_async + */ + async checkBackupClusterProgress( + name: string + ): Promise< + LROperation< + protos.google.cloud.redis.cluster.v1beta1.Cluster, + protos.google.protobuf.Any + > + > { + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + {name} + ); + const [operation] = await this.operationsClient.getOperation(request); + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.backupCluster, + this._gaxModule.createDefaultBackoffSettings() + ); + return decodeOperation as LROperation< + protos.google.cloud.redis.cluster.v1beta1.Cluster, + protos.google.protobuf.Any + >; + } + /** + * Lists all Redis clusters owned by a project in either the specified + * location (region) or all locations. + * + * The location should have the following format: + * + * * `projects/{project_id}/locations/{location_id}` + * + * If `location_id` is specified as `-` (wildcard), then all regions + * available to the project are queried, and the results are aggregated. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The resource name of the cluster location using the form: + * `projects/{project_id}/locations/{location_id}` + * where `location_id` refers to a GCP region. + * @param {number} request.pageSize + * The maximum number of items to return. + * + * If not specified, a default value of 1000 will be used by the service. + * Regardless of the page_size value, the response may include a partial list + * and a caller should only rely on response's + * {@link protos.google.cloud.redis.cluster.v1beta1.ListClustersResponse.next_page_token|`next_page_token`} + * to determine if there are more clusters left to be queried. + * @param {string} request.pageToken + * The `next_page_token` value returned from a previous + * {@link protos.CloudRedis.ListClusters|ListClusters} request, if any. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is Array of {@link protos.google.cloud.redis.cluster.v1beta1.Cluster|Cluster}. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed and will merge results from all the pages into this array. + * Note that it can affect your quota. + * We recommend using `listClustersAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + */ + listClusters( + request?: protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, + options?: CallOptions + ): Promise< + [ + protos.google.cloud.redis.cluster.v1beta1.ICluster[], + protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest | null, + protos.google.cloud.redis.cluster.v1beta1.IListClustersResponse, + ] + >; + listClusters( + request: protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, + | protos.google.cloud.redis.cluster.v1beta1.IListClustersResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1beta1.ICluster + > + ): void; + listClusters( + request: protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, + callback: PaginationCallback< + protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, + | protos.google.cloud.redis.cluster.v1beta1.IListClustersResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1beta1.ICluster + > + ): void; + listClusters( + request?: protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< + protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, + | protos.google.cloud.redis.cluster.v1beta1.IListClustersResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1beta1.ICluster + >, + callback?: PaginationCallback< + protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, + | protos.google.cloud.redis.cluster.v1beta1.IListClustersResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1beta1.ICluster + > + ): Promise< + [ + protos.google.cloud.redis.cluster.v1beta1.ICluster[], + protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest | null, + protos.google.cloud.redis.cluster.v1beta1.IListClustersResponse, + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); + this.initialize(); + return this.innerApiCalls.listClusters(request, options, callback); + } + + /** + * Equivalent to `method.name.toCamelCase()`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The resource name of the cluster location using the form: + * `projects/{project_id}/locations/{location_id}` + * where `location_id` refers to a GCP region. + * @param {number} request.pageSize + * The maximum number of items to return. + * + * If not specified, a default value of 1000 will be used by the service. + * Regardless of the page_size value, the response may include a partial list + * and a caller should only rely on response's + * {@link protos.google.cloud.redis.cluster.v1beta1.ListClustersResponse.next_page_token|`next_page_token`} + * to determine if there are more clusters left to be queried. + * @param {string} request.pageToken + * The `next_page_token` value returned from a previous + * {@link protos.CloudRedis.ListClusters|ListClusters} request, if any. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Stream} + * An object stream which emits an object representing {@link protos.google.cloud.redis.cluster.v1beta1.Cluster|Cluster} on 'data' event. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed. Note that it can affect your quota. + * We recommend using `listClustersAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + */ + listClustersStream( + request?: protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, + options?: CallOptions + ): Transform { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); + const defaultCallSettings = this._defaults['listClusters']; + const callSettings = defaultCallSettings.merge(options); + this.initialize(); + return this.descriptors.page.listClusters.createStream( + this.innerApiCalls.listClusters as GaxCall, + request, + callSettings + ); + } + + /** + * Equivalent to `listClusters`, but returns an iterable object. + * + * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The resource name of the cluster location using the form: + * `projects/{project_id}/locations/{location_id}` + * where `location_id` refers to a GCP region. + * @param {number} request.pageSize + * The maximum number of items to return. + * + * If not specified, a default value of 1000 will be used by the service. + * Regardless of the page_size value, the response may include a partial list + * and a caller should only rely on response's + * {@link protos.google.cloud.redis.cluster.v1beta1.ListClustersResponse.next_page_token|`next_page_token`} + * to determine if there are more clusters left to be queried. + * @param {string} request.pageToken + * The `next_page_token` value returned from a previous + * {@link protos.CloudRedis.ListClusters|ListClusters} request, if any. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Object} + * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. + * When you iterate the returned iterable, each element will be an object representing + * {@link protos.google.cloud.redis.cluster.v1beta1.Cluster|Cluster}. The API will be called under the hood as needed, once per the page, + * so you can stop the iteration when you don't need more results. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta1/cloud_redis_cluster.list_clusters.js + * region_tag:redis_v1beta1_generated_CloudRedisCluster_ListClusters_async + */ + listClustersAsync( + request?: protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, + options?: CallOptions + ): AsyncIterable { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); + const defaultCallSettings = this._defaults['listClusters']; + const callSettings = defaultCallSettings.merge(options); + this.initialize(); + return this.descriptors.page.listClusters.asyncIterate( + this.innerApiCalls['listClusters'] as GaxCall, + request as {}, + callSettings + ) as AsyncIterable; + } + /** + * Lists all backup collections owned by a consumer project in either the + * specified location (region) or all locations. + * + * If `location_id` is specified as `-` (wildcard), then all regions + * available to the project are queried, and the results are aggregated. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The resource name of the backupCollection location using the + * form: + * `projects/{project_id}/locations/{location_id}` + * where `location_id` refers to a GCP region. + * @param {number} [request.pageSize] + * Optional. The maximum number of items to return. + * + * If not specified, a default value of 1000 will be used by the service. + * Regardless of the page_size value, the response may include a partial list + * and a caller should only rely on response's + * {@link protos.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse.next_page_token|`next_page_token`} + * to determine if there are more clusters left to be queried. + * @param {string} [request.pageToken] + * Optional. The `next_page_token` value returned from a previous + * [ListBackupCollections] request, if any. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is Array of {@link protos.google.cloud.redis.cluster.v1beta1.BackupCollection|BackupCollection}. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed and will merge results from all the pages into this array. + * Note that it can affect your quota. + * We recommend using `listBackupCollectionsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + */ + listBackupCollections( + request?: protos.google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest, + options?: CallOptions + ): Promise< + [ + protos.google.cloud.redis.cluster.v1beta1.IBackupCollection[], + protos.google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest | null, + protos.google.cloud.redis.cluster.v1beta1.IListBackupCollectionsResponse, + ] + >; + listBackupCollections( + request: protos.google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest, + | protos.google.cloud.redis.cluster.v1beta1.IListBackupCollectionsResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1beta1.IBackupCollection + > + ): void; + listBackupCollections( + request: protos.google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest, + callback: PaginationCallback< + protos.google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest, + | protos.google.cloud.redis.cluster.v1beta1.IListBackupCollectionsResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1beta1.IBackupCollection + > + ): void; + listBackupCollections( + request?: protos.google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< + protos.google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest, + | protos.google.cloud.redis.cluster.v1beta1.IListBackupCollectionsResponse + | null | undefined, - protos.google.cloud.redis.cluster.v1beta1.ICluster + protos.google.cloud.redis.cluster.v1beta1.IBackupCollection >, callback?: PaginationCallback< - protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, - | protos.google.cloud.redis.cluster.v1beta1.IListClustersResponse + protos.google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest, + | protos.google.cloud.redis.cluster.v1beta1.IListBackupCollectionsResponse | null | undefined, - protos.google.cloud.redis.cluster.v1beta1.ICluster + protos.google.cloud.redis.cluster.v1beta1.IBackupCollection > ): Promise< [ - protos.google.cloud.redis.cluster.v1beta1.ICluster[], - protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest | null, - protos.google.cloud.redis.cluster.v1beta1.IListClustersResponse, + protos.google.cloud.redis.cluster.v1beta1.IBackupCollection[], + protos.google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest | null, + protos.google.cloud.redis.cluster.v1beta1.IListBackupCollectionsResponse, ] > | void { request = request || {}; @@ -1240,7 +2295,7 @@ export class CloudRedisClusterClient { parent: request.parent ?? '', }); this.initialize(); - return this.innerApiCalls.listClusters(request, options, callback); + return this.innerApiCalls.listBackupCollections(request, options, callback); } /** @@ -1248,33 +2303,246 @@ export class CloudRedisClusterClient { * @param {Object} request * The request object that will be sent. * @param {string} request.parent - * Required. The resource name of the cluster location using the form: + * Required. The resource name of the backupCollection location using the + * form: * `projects/{project_id}/locations/{location_id}` * where `location_id` refers to a GCP region. - * @param {number} request.pageSize - * The maximum number of items to return. + * @param {number} [request.pageSize] + * Optional. The maximum number of items to return. * * If not specified, a default value of 1000 will be used by the service. * Regardless of the page_size value, the response may include a partial list * and a caller should only rely on response's - * {@link protos.google.cloud.redis.cluster.v1beta1.ListClustersResponse.next_page_token|`next_page_token`} + * {@link protos.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse.next_page_token|`next_page_token`} * to determine if there are more clusters left to be queried. - * @param {string} request.pageToken - * The `next_page_token` value returned from a previous - * {@link protos.CloudRedis.ListClusters|ListClusters} request, if any. + * @param {string} [request.pageToken] + * Optional. The `next_page_token` value returned from a previous + * [ListBackupCollections] request, if any. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Stream} + * An object stream which emits an object representing {@link protos.google.cloud.redis.cluster.v1beta1.BackupCollection|BackupCollection} on 'data' event. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed. Note that it can affect your quota. + * We recommend using `listBackupCollectionsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + */ + listBackupCollectionsStream( + request?: protos.google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest, + options?: CallOptions + ): Transform { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); + const defaultCallSettings = this._defaults['listBackupCollections']; + const callSettings = defaultCallSettings.merge(options); + this.initialize(); + return this.descriptors.page.listBackupCollections.createStream( + this.innerApiCalls.listBackupCollections as GaxCall, + request, + callSettings + ); + } + + /** + * Equivalent to `listBackupCollections`, but returns an iterable object. + * + * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The resource name of the backupCollection location using the + * form: + * `projects/{project_id}/locations/{location_id}` + * where `location_id` refers to a GCP region. + * @param {number} [request.pageSize] + * Optional. The maximum number of items to return. + * + * If not specified, a default value of 1000 will be used by the service. + * Regardless of the page_size value, the response may include a partial list + * and a caller should only rely on response's + * {@link protos.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsResponse.next_page_token|`next_page_token`} + * to determine if there are more clusters left to be queried. + * @param {string} [request.pageToken] + * Optional. The `next_page_token` value returned from a previous + * [ListBackupCollections] request, if any. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Object} + * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. + * When you iterate the returned iterable, each element will be an object representing + * {@link protos.google.cloud.redis.cluster.v1beta1.BackupCollection|BackupCollection}. The API will be called under the hood as needed, once per the page, + * so you can stop the iteration when you don't need more results. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta1/cloud_redis_cluster.list_backup_collections.js + * region_tag:redis_v1beta1_generated_CloudRedisCluster_ListBackupCollections_async + */ + listBackupCollectionsAsync( + request?: protos.google.cloud.redis.cluster.v1beta1.IListBackupCollectionsRequest, + options?: CallOptions + ): AsyncIterable { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); + const defaultCallSettings = this._defaults['listBackupCollections']; + const callSettings = defaultCallSettings.merge(options); + this.initialize(); + return this.descriptors.page.listBackupCollections.asyncIterate( + this.innerApiCalls['listBackupCollections'] as GaxCall, + request as {}, + callSettings + ) as AsyncIterable; + } + /** + * Lists all backups owned by a backup collection. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The resource name of the backupCollection using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}` + * @param {number} [request.pageSize] + * Optional. The maximum number of items to return. + * + * If not specified, a default value of 1000 will be used by the service. + * Regardless of the page_size value, the response may include a partial list + * and a caller should only rely on response's + * {@link protos.google.cloud.redis.cluster.v1beta1.ListBackupsResponse.next_page_token|`next_page_token`} + * to determine if there are more clusters left to be queried. + * @param {string} [request.pageToken] + * Optional. The `next_page_token` value returned from a previous + * [ListBackupCollections] request, if any. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is Array of {@link protos.google.cloud.redis.cluster.v1beta1.Backup|Backup}. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed and will merge results from all the pages into this array. + * Note that it can affect your quota. + * We recommend using `listBackupsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + */ + listBackups( + request?: protos.google.cloud.redis.cluster.v1beta1.IListBackupsRequest, + options?: CallOptions + ): Promise< + [ + protos.google.cloud.redis.cluster.v1beta1.IBackup[], + protos.google.cloud.redis.cluster.v1beta1.IListBackupsRequest | null, + protos.google.cloud.redis.cluster.v1beta1.IListBackupsResponse, + ] + >; + listBackups( + request: protos.google.cloud.redis.cluster.v1beta1.IListBackupsRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.redis.cluster.v1beta1.IListBackupsRequest, + | protos.google.cloud.redis.cluster.v1beta1.IListBackupsResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1beta1.IBackup + > + ): void; + listBackups( + request: protos.google.cloud.redis.cluster.v1beta1.IListBackupsRequest, + callback: PaginationCallback< + protos.google.cloud.redis.cluster.v1beta1.IListBackupsRequest, + | protos.google.cloud.redis.cluster.v1beta1.IListBackupsResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1beta1.IBackup + > + ): void; + listBackups( + request?: protos.google.cloud.redis.cluster.v1beta1.IListBackupsRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< + protos.google.cloud.redis.cluster.v1beta1.IListBackupsRequest, + | protos.google.cloud.redis.cluster.v1beta1.IListBackupsResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1beta1.IBackup + >, + callback?: PaginationCallback< + protos.google.cloud.redis.cluster.v1beta1.IListBackupsRequest, + | protos.google.cloud.redis.cluster.v1beta1.IListBackupsResponse + | null + | undefined, + protos.google.cloud.redis.cluster.v1beta1.IBackup + > + ): Promise< + [ + protos.google.cloud.redis.cluster.v1beta1.IBackup[], + protos.google.cloud.redis.cluster.v1beta1.IListBackupsRequest | null, + protos.google.cloud.redis.cluster.v1beta1.IListBackupsResponse, + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); + this.initialize(); + return this.innerApiCalls.listBackups(request, options, callback); + } + + /** + * Equivalent to `method.name.toCamelCase()`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The resource name of the backupCollection using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}` + * @param {number} [request.pageSize] + * Optional. The maximum number of items to return. + * + * If not specified, a default value of 1000 will be used by the service. + * Regardless of the page_size value, the response may include a partial list + * and a caller should only rely on response's + * {@link protos.google.cloud.redis.cluster.v1beta1.ListBackupsResponse.next_page_token|`next_page_token`} + * to determine if there are more clusters left to be queried. + * @param {string} [request.pageToken] + * Optional. The `next_page_token` value returned from a previous + * [ListBackupCollections] request, if any. * @param {object} [options] * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. * @returns {Stream} - * An object stream which emits an object representing {@link protos.google.cloud.redis.cluster.v1beta1.Cluster|Cluster} on 'data' event. + * An object stream which emits an object representing {@link protos.google.cloud.redis.cluster.v1beta1.Backup|Backup} on 'data' event. * The client library will perform auto-pagination by default: it will call the API as many * times as needed. Note that it can affect your quota. - * We recommend using `listClustersAsync()` + * We recommend using `listBackupsAsync()` * method described below for async iteration which you can stop as needed. * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } * for more details and examples. */ - listClustersStream( - request?: protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, + listBackupsStream( + request?: protos.google.cloud.redis.cluster.v1beta1.IListBackupsRequest, options?: CallOptions ): Transform { request = request || {}; @@ -1285,53 +2553,52 @@ export class CloudRedisClusterClient { this._gaxModule.routingHeader.fromParams({ parent: request.parent ?? '', }); - const defaultCallSettings = this._defaults['listClusters']; + const defaultCallSettings = this._defaults['listBackups']; const callSettings = defaultCallSettings.merge(options); this.initialize(); - return this.descriptors.page.listClusters.createStream( - this.innerApiCalls.listClusters as GaxCall, + return this.descriptors.page.listBackups.createStream( + this.innerApiCalls.listBackups as GaxCall, request, callSettings ); } /** - * Equivalent to `listClusters`, but returns an iterable object. + * Equivalent to `listBackups`, but returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. * @param {Object} request * The request object that will be sent. * @param {string} request.parent - * Required. The resource name of the cluster location using the form: - * `projects/{project_id}/locations/{location_id}` - * where `location_id` refers to a GCP region. - * @param {number} request.pageSize - * The maximum number of items to return. + * Required. The resource name of the backupCollection using the form: + * `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}` + * @param {number} [request.pageSize] + * Optional. The maximum number of items to return. * * If not specified, a default value of 1000 will be used by the service. * Regardless of the page_size value, the response may include a partial list * and a caller should only rely on response's - * {@link protos.google.cloud.redis.cluster.v1beta1.ListClustersResponse.next_page_token|`next_page_token`} + * {@link protos.google.cloud.redis.cluster.v1beta1.ListBackupsResponse.next_page_token|`next_page_token`} * to determine if there are more clusters left to be queried. - * @param {string} request.pageToken - * The `next_page_token` value returned from a previous - * {@link protos.CloudRedis.ListClusters|ListClusters} request, if any. + * @param {string} [request.pageToken] + * Optional. The `next_page_token` value returned from a previous + * [ListBackupCollections] request, if any. * @param {object} [options] * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. * @returns {Object} * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. * When you iterate the returned iterable, each element will be an object representing - * {@link protos.google.cloud.redis.cluster.v1beta1.Cluster|Cluster}. The API will be called under the hood as needed, once per the page, + * {@link protos.google.cloud.redis.cluster.v1beta1.Backup|Backup}. The API will be called under the hood as needed, once per the page, * so you can stop the iteration when you don't need more results. * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } * for more details and examples. - * @example include:samples/generated/v1beta1/cloud_redis_cluster.list_clusters.js - * region_tag:redis_v1beta1_generated_CloudRedisCluster_ListClusters_async + * @example include:samples/generated/v1beta1/cloud_redis_cluster.list_backups.js + * region_tag:redis_v1beta1_generated_CloudRedisCluster_ListBackups_async */ - listClustersAsync( - request?: protos.google.cloud.redis.cluster.v1beta1.IListClustersRequest, + listBackupsAsync( + request?: protos.google.cloud.redis.cluster.v1beta1.IListBackupsRequest, options?: CallOptions - ): AsyncIterable { + ): AsyncIterable { request = request || {}; options = options || {}; options.otherArgs = options.otherArgs || {}; @@ -1340,14 +2607,14 @@ export class CloudRedisClusterClient { this._gaxModule.routingHeader.fromParams({ parent: request.parent ?? '', }); - const defaultCallSettings = this._defaults['listClusters']; + const defaultCallSettings = this._defaults['listBackups']; const callSettings = defaultCallSettings.merge(options); this.initialize(); - return this.descriptors.page.listClusters.asyncIterate( - this.innerApiCalls['listClusters'] as GaxCall, + return this.descriptors.page.listBackups.asyncIterate( + this.innerApiCalls['listBackups'] as GaxCall, request as {}, callSettings - ) as AsyncIterable; + ) as AsyncIterable; } /** * Gets information about a location. @@ -1606,6 +2873,133 @@ export class CloudRedisClusterClient { // -- Path templates -- // -------------------- + /** + * Return a fully-qualified backup resource name string. + * + * @param {string} project + * @param {string} location + * @param {string} backup_collection + * @param {string} backup + * @returns {string} Resource name string. + */ + backupPath( + project: string, + location: string, + backupCollection: string, + backup: string + ) { + return this.pathTemplates.backupPathTemplate.render({ + project: project, + location: location, + backup_collection: backupCollection, + backup: backup, + }); + } + + /** + * Parse the project from Backup resource. + * + * @param {string} backupName + * A fully-qualified path representing Backup resource. + * @returns {string} A string representing the project. + */ + matchProjectFromBackupName(backupName: string) { + return this.pathTemplates.backupPathTemplate.match(backupName).project; + } + + /** + * Parse the location from Backup resource. + * + * @param {string} backupName + * A fully-qualified path representing Backup resource. + * @returns {string} A string representing the location. + */ + matchLocationFromBackupName(backupName: string) { + return this.pathTemplates.backupPathTemplate.match(backupName).location; + } + + /** + * Parse the backup_collection from Backup resource. + * + * @param {string} backupName + * A fully-qualified path representing Backup resource. + * @returns {string} A string representing the backup_collection. + */ + matchBackupCollectionFromBackupName(backupName: string) { + return this.pathTemplates.backupPathTemplate.match(backupName) + .backup_collection; + } + + /** + * Parse the backup from Backup resource. + * + * @param {string} backupName + * A fully-qualified path representing Backup resource. + * @returns {string} A string representing the backup. + */ + matchBackupFromBackupName(backupName: string) { + return this.pathTemplates.backupPathTemplate.match(backupName).backup; + } + + /** + * Return a fully-qualified backupCollection resource name string. + * + * @param {string} project + * @param {string} location + * @param {string} backup_collection + * @returns {string} Resource name string. + */ + backupCollectionPath( + project: string, + location: string, + backupCollection: string + ) { + return this.pathTemplates.backupCollectionPathTemplate.render({ + project: project, + location: location, + backup_collection: backupCollection, + }); + } + + /** + * Parse the project from BackupCollection resource. + * + * @param {string} backupCollectionName + * A fully-qualified path representing BackupCollection resource. + * @returns {string} A string representing the project. + */ + matchProjectFromBackupCollectionName(backupCollectionName: string) { + return this.pathTemplates.backupCollectionPathTemplate.match( + backupCollectionName + ).project; + } + + /** + * Parse the location from BackupCollection resource. + * + * @param {string} backupCollectionName + * A fully-qualified path representing BackupCollection resource. + * @returns {string} A string representing the location. + */ + matchLocationFromBackupCollectionName(backupCollectionName: string) { + return this.pathTemplates.backupCollectionPathTemplate.match( + backupCollectionName + ).location; + } + + /** + * Parse the backup_collection from BackupCollection resource. + * + * @param {string} backupCollectionName + * A fully-qualified path representing BackupCollection resource. + * @returns {string} A string representing the backup_collection. + */ + matchBackupCollectionFromBackupCollectionName(backupCollectionName: string) { + return this.pathTemplates.backupCollectionPathTemplate.match( + backupCollectionName + ).backup_collection; + } + /** * Return a fully-qualified certificateAuthority resource name string. * @@ -1710,6 +3104,223 @@ export class CloudRedisClusterClient { return this.pathTemplates.clusterPathTemplate.match(clusterName).cluster; } + /** + * Return a fully-qualified cryptoKey resource name string. + * + * @param {string} project + * @param {string} location + * @param {string} key_ring + * @param {string} crypto_key + * @returns {string} Resource name string. + */ + cryptoKeyPath( + project: string, + location: string, + keyRing: string, + cryptoKey: string + ) { + return this.pathTemplates.cryptoKeyPathTemplate.render({ + project: project, + location: location, + key_ring: keyRing, + crypto_key: cryptoKey, + }); + } + + /** + * Parse the project from CryptoKey resource. + * + * @param {string} cryptoKeyName + * A fully-qualified path representing CryptoKey resource. + * @returns {string} A string representing the project. + */ + matchProjectFromCryptoKeyName(cryptoKeyName: string) { + return this.pathTemplates.cryptoKeyPathTemplate.match(cryptoKeyName) + .project; + } + + /** + * Parse the location from CryptoKey resource. + * + * @param {string} cryptoKeyName + * A fully-qualified path representing CryptoKey resource. + * @returns {string} A string representing the location. + */ + matchLocationFromCryptoKeyName(cryptoKeyName: string) { + return this.pathTemplates.cryptoKeyPathTemplate.match(cryptoKeyName) + .location; + } + + /** + * Parse the key_ring from CryptoKey resource. + * + * @param {string} cryptoKeyName + * A fully-qualified path representing CryptoKey resource. + * @returns {string} A string representing the key_ring. + */ + matchKeyRingFromCryptoKeyName(cryptoKeyName: string) { + return this.pathTemplates.cryptoKeyPathTemplate.match(cryptoKeyName) + .key_ring; + } + + /** + * Parse the crypto_key from CryptoKey resource. + * + * @param {string} cryptoKeyName + * A fully-qualified path representing CryptoKey resource. + * @returns {string} A string representing the crypto_key. + */ + matchCryptoKeyFromCryptoKeyName(cryptoKeyName: string) { + return this.pathTemplates.cryptoKeyPathTemplate.match(cryptoKeyName) + .crypto_key; + } + + /** + * Return a fully-qualified cryptoKeyVersion resource name string. + * + * @param {string} project + * @param {string} location + * @param {string} key_ring + * @param {string} crypto_key + * @param {string} crypto_key_version + * @returns {string} Resource name string. + */ + cryptoKeyVersionPath( + project: string, + location: string, + keyRing: string, + cryptoKey: string, + cryptoKeyVersion: string + ) { + return this.pathTemplates.cryptoKeyVersionPathTemplate.render({ + project: project, + location: location, + key_ring: keyRing, + crypto_key: cryptoKey, + crypto_key_version: cryptoKeyVersion, + }); + } + + /** + * Parse the project from CryptoKeyVersion resource. + * + * @param {string} cryptoKeyVersionName + * A fully-qualified path representing CryptoKeyVersion resource. + * @returns {string} A string representing the project. + */ + matchProjectFromCryptoKeyVersionName(cryptoKeyVersionName: string) { + return this.pathTemplates.cryptoKeyVersionPathTemplate.match( + cryptoKeyVersionName + ).project; + } + + /** + * Parse the location from CryptoKeyVersion resource. + * + * @param {string} cryptoKeyVersionName + * A fully-qualified path representing CryptoKeyVersion resource. + * @returns {string} A string representing the location. + */ + matchLocationFromCryptoKeyVersionName(cryptoKeyVersionName: string) { + return this.pathTemplates.cryptoKeyVersionPathTemplate.match( + cryptoKeyVersionName + ).location; + } + + /** + * Parse the key_ring from CryptoKeyVersion resource. + * + * @param {string} cryptoKeyVersionName + * A fully-qualified path representing CryptoKeyVersion resource. + * @returns {string} A string representing the key_ring. + */ + matchKeyRingFromCryptoKeyVersionName(cryptoKeyVersionName: string) { + return this.pathTemplates.cryptoKeyVersionPathTemplate.match( + cryptoKeyVersionName + ).key_ring; + } + + /** + * Parse the crypto_key from CryptoKeyVersion resource. + * + * @param {string} cryptoKeyVersionName + * A fully-qualified path representing CryptoKeyVersion resource. + * @returns {string} A string representing the crypto_key. + */ + matchCryptoKeyFromCryptoKeyVersionName(cryptoKeyVersionName: string) { + return this.pathTemplates.cryptoKeyVersionPathTemplate.match( + cryptoKeyVersionName + ).crypto_key; + } + + /** + * Parse the crypto_key_version from CryptoKeyVersion resource. + * + * @param {string} cryptoKeyVersionName + * A fully-qualified path representing CryptoKeyVersion resource. + * @returns {string} A string representing the crypto_key_version. + */ + matchCryptoKeyVersionFromCryptoKeyVersionName(cryptoKeyVersionName: string) { + return this.pathTemplates.cryptoKeyVersionPathTemplate.match( + cryptoKeyVersionName + ).crypto_key_version; + } + + /** + * Return a fully-qualified forwardingRule resource name string. + * + * @param {string} project + * @param {string} region + * @param {string} forwarding_rule + * @returns {string} Resource name string. + */ + forwardingRulePath(project: string, region: string, forwardingRule: string) { + return this.pathTemplates.forwardingRulePathTemplate.render({ + project: project, + region: region, + forwarding_rule: forwardingRule, + }); + } + + /** + * Parse the project from ForwardingRule resource. + * + * @param {string} forwardingRuleName + * A fully-qualified path representing ForwardingRule resource. + * @returns {string} A string representing the project. + */ + matchProjectFromForwardingRuleName(forwardingRuleName: string) { + return this.pathTemplates.forwardingRulePathTemplate.match( + forwardingRuleName + ).project; + } + + /** + * Parse the region from ForwardingRule resource. + * + * @param {string} forwardingRuleName + * A fully-qualified path representing ForwardingRule resource. + * @returns {string} A string representing the region. + */ + matchRegionFromForwardingRuleName(forwardingRuleName: string) { + return this.pathTemplates.forwardingRulePathTemplate.match( + forwardingRuleName + ).region; + } + + /** + * Parse the forwarding_rule from ForwardingRule resource. + * + * @param {string} forwardingRuleName + * A fully-qualified path representing ForwardingRule resource. + * @returns {string} A string representing the forwarding_rule. + */ + matchForwardingRuleFromForwardingRuleName(forwardingRuleName: string) { + return this.pathTemplates.forwardingRulePathTemplate.match( + forwardingRuleName + ).forwarding_rule; + } + /** * Return a fully-qualified location resource name string. * @@ -1746,6 +3357,126 @@ export class CloudRedisClusterClient { return this.pathTemplates.locationPathTemplate.match(locationName).location; } + /** + * Return a fully-qualified network resource name string. + * + * @param {string} project + * @param {string} network + * @returns {string} Resource name string. + */ + networkPath(project: string, network: string) { + return this.pathTemplates.networkPathTemplate.render({ + project: project, + network: network, + }); + } + + /** + * Parse the project from Network resource. + * + * @param {string} networkName + * A fully-qualified path representing Network resource. + * @returns {string} A string representing the project. + */ + matchProjectFromNetworkName(networkName: string) { + return this.pathTemplates.networkPathTemplate.match(networkName).project; + } + + /** + * Parse the network from Network resource. + * + * @param {string} networkName + * A fully-qualified path representing Network resource. + * @returns {string} A string representing the network. + */ + matchNetworkFromNetworkName(networkName: string) { + return this.pathTemplates.networkPathTemplate.match(networkName).network; + } + + /** + * Return a fully-qualified project resource name string. + * + * @param {string} project + * @returns {string} Resource name string. + */ + projectPath(project: string) { + return this.pathTemplates.projectPathTemplate.render({ + project: project, + }); + } + + /** + * Parse the project from Project resource. + * + * @param {string} projectName + * A fully-qualified path representing Project resource. + * @returns {string} A string representing the project. + */ + matchProjectFromProjectName(projectName: string) { + return this.pathTemplates.projectPathTemplate.match(projectName).project; + } + + /** + * Return a fully-qualified serviceAttachment resource name string. + * + * @param {string} project + * @param {string} region + * @param {string} service_attachment + * @returns {string} Resource name string. + */ + serviceAttachmentPath( + project: string, + region: string, + serviceAttachment: string + ) { + return this.pathTemplates.serviceAttachmentPathTemplate.render({ + project: project, + region: region, + service_attachment: serviceAttachment, + }); + } + + /** + * Parse the project from ServiceAttachment resource. + * + * @param {string} serviceAttachmentName + * A fully-qualified path representing ServiceAttachment resource. + * @returns {string} A string representing the project. + */ + matchProjectFromServiceAttachmentName(serviceAttachmentName: string) { + return this.pathTemplates.serviceAttachmentPathTemplate.match( + serviceAttachmentName + ).project; + } + + /** + * Parse the region from ServiceAttachment resource. + * + * @param {string} serviceAttachmentName + * A fully-qualified path representing ServiceAttachment resource. + * @returns {string} A string representing the region. + */ + matchRegionFromServiceAttachmentName(serviceAttachmentName: string) { + return this.pathTemplates.serviceAttachmentPathTemplate.match( + serviceAttachmentName + ).region; + } + + /** + * Parse the service_attachment from ServiceAttachment resource. + * + * @param {string} serviceAttachmentName + * A fully-qualified path representing ServiceAttachment resource. + * @returns {string} A string representing the service_attachment. + */ + matchServiceAttachmentFromServiceAttachmentName( + serviceAttachmentName: string + ) { + return this.pathTemplates.serviceAttachmentPathTemplate.match( + serviceAttachmentName + ).service_attachment; + } + /** * Terminate the gRPC channel and close the client. * diff --git a/packages/google-cloud-redis-cluster/src/v1beta1/cloud_redis_cluster_client_config.json b/packages/google-cloud-redis-cluster/src/v1beta1/cloud_redis_cluster_client_config.json index 65d03196990..07ab1338033 100644 --- a/packages/google-cloud-redis-cluster/src/v1beta1/cloud_redis_cluster_client_config.json +++ b/packages/google-cloud-redis-cluster/src/v1beta1/cloud_redis_cluster_client_config.json @@ -49,6 +49,46 @@ "timeout_millis": 600000, "retry_codes_name": "non_idempotent", "retry_params_name": "default" + }, + "RescheduleClusterMaintenance": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "ListBackupCollections": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "GetBackupCollection": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "ListBackups": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "GetBackup": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "DeleteBackup": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "ExportBackup": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "BackupCluster": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" } } } diff --git a/packages/google-cloud-redis-cluster/src/v1beta1/gapic_metadata.json b/packages/google-cloud-redis-cluster/src/v1beta1/gapic_metadata.json index 04c41455b7c..132093b7ff5 100644 --- a/packages/google-cloud-redis-cluster/src/v1beta1/gapic_metadata.json +++ b/packages/google-cloud-redis-cluster/src/v1beta1/gapic_metadata.json @@ -20,6 +20,16 @@ "getClusterCertificateAuthority" ] }, + "GetBackupCollection": { + "methods": [ + "getBackupCollection" + ] + }, + "GetBackup": { + "methods": [ + "getBackup" + ] + }, "UpdateCluster": { "methods": [ "updateCluster" @@ -35,12 +45,46 @@ "createCluster" ] }, + "RescheduleClusterMaintenance": { + "methods": [ + "rescheduleClusterMaintenance" + ] + }, + "DeleteBackup": { + "methods": [ + "deleteBackup" + ] + }, + "ExportBackup": { + "methods": [ + "exportBackup" + ] + }, + "BackupCluster": { + "methods": [ + "backupCluster" + ] + }, "ListClusters": { "methods": [ "listClusters", "listClustersStream", "listClustersAsync" ] + }, + "ListBackupCollections": { + "methods": [ + "listBackupCollections", + "listBackupCollectionsStream", + "listBackupCollectionsAsync" + ] + }, + "ListBackups": { + "methods": [ + "listBackups", + "listBackupsStream", + "listBackupsAsync" + ] } } }, @@ -57,6 +101,16 @@ "getClusterCertificateAuthority" ] }, + "GetBackupCollection": { + "methods": [ + "getBackupCollection" + ] + }, + "GetBackup": { + "methods": [ + "getBackup" + ] + }, "UpdateCluster": { "methods": [ "updateCluster" @@ -72,12 +126,46 @@ "createCluster" ] }, + "RescheduleClusterMaintenance": { + "methods": [ + "rescheduleClusterMaintenance" + ] + }, + "DeleteBackup": { + "methods": [ + "deleteBackup" + ] + }, + "ExportBackup": { + "methods": [ + "exportBackup" + ] + }, + "BackupCluster": { + "methods": [ + "backupCluster" + ] + }, "ListClusters": { "methods": [ "listClusters", "listClustersStream", "listClustersAsync" ] + }, + "ListBackupCollections": { + "methods": [ + "listBackupCollections", + "listBackupCollectionsStream", + "listBackupCollectionsAsync" + ] + }, + "ListBackups": { + "methods": [ + "listBackups", + "listBackupsStream", + "listBackupsAsync" + ] } } } diff --git a/packages/google-cloud-redis-cluster/test/gapic_cloud_redis_cluster_v1.ts b/packages/google-cloud-redis-cluster/test/gapic_cloud_redis_cluster_v1.ts index 9fbc4655a55..7d92989ffcf 100644 --- a/packages/google-cloud-redis-cluster/test/gapic_cloud_redis_cluster_v1.ts +++ b/packages/google-cloud-redis-cluster/test/gapic_cloud_redis_cluster_v1.ts @@ -610,6 +610,264 @@ describe('v1.CloudRedisClusterClient', () => { }); }); + describe('getBackupCollection', () => { + it('invokes getBackupCollection without error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.GetBackupCollectionRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.GetBackupCollectionRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.BackupCollection() + ); + client.innerApiCalls.getBackupCollection = + stubSimpleCall(expectedResponse); + const [response] = await client.getBackupCollection(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getBackupCollection as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBackupCollection as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getBackupCollection without error using callback', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.GetBackupCollectionRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.GetBackupCollectionRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.BackupCollection() + ); + client.innerApiCalls.getBackupCollection = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getBackupCollection( + request, + ( + err?: Error | null, + result?: protos.google.cloud.redis.cluster.v1.IBackupCollection | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getBackupCollection as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBackupCollection as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getBackupCollection with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.GetBackupCollectionRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.GetBackupCollectionRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getBackupCollection = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(client.getBackupCollection(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getBackupCollection as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBackupCollection as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getBackupCollection with closed client', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.GetBackupCollectionRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.GetBackupCollectionRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close(); + await assert.rejects(client.getBackupCollection(request), expectedError); + }); + }); + + describe('getBackup', () => { + it('invokes getBackup without error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.GetBackupRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.GetBackupRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Backup() + ); + client.innerApiCalls.getBackup = stubSimpleCall(expectedResponse); + const [response] = await client.getBackup(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getBackup without error using callback', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.GetBackupRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.GetBackupRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Backup() + ); + client.innerApiCalls.getBackup = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getBackup( + request, + ( + err?: Error | null, + result?: protos.google.cloud.redis.cluster.v1.IBackup | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getBackup with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.GetBackupRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.GetBackupRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getBackup = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.getBackup(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getBackup with closed client', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.GetBackupRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.GetBackupRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close(); + await assert.rejects(client.getBackup(request), expectedError); + }); + }); + describe('updateCluster', () => { it('invokes updateCluster without error', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ @@ -1196,80 +1454,69 @@ describe('v1.CloudRedisClusterClient', () => { }); }); - describe('listClusters', () => { - it('invokes listClusters without error', async () => { + describe('rescheduleClusterMaintenance', () => { + it('invokes rescheduleClusterMaintenance without error', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); const request = generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.ListClustersRequest() + new protos.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest() ); const defaultValue1 = getTypeDefaultValue( - '.google.cloud.redis.cluster.v1.ListClustersRequest', - ['parent'] + '.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest', + ['name'] ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1}`; - const expectedResponse = [ - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.Cluster() - ), - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.Cluster() - ), - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.Cluster() - ), - ]; - client.innerApiCalls.listClusters = stubSimpleCall(expectedResponse); - const [response] = await client.listClusters(request); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation() + ); + client.innerApiCalls.rescheduleClusterMaintenance = + stubLongRunningCall(expectedResponse); + const [operation] = await client.rescheduleClusterMaintenance(request); + const [response] = await operation.promise(); assert.deepStrictEqual(response, expectedResponse); const actualRequest = ( - client.innerApiCalls.listClusters as SinonStub + client.innerApiCalls.rescheduleClusterMaintenance as SinonStub ).getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = ( - client.innerApiCalls.listClusters as SinonStub + client.innerApiCalls.rescheduleClusterMaintenance as SinonStub ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes listClusters without error using callback', async () => { + it('invokes rescheduleClusterMaintenance without error using callback', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); const request = generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.ListClustersRequest() + new protos.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest() ); const defaultValue1 = getTypeDefaultValue( - '.google.cloud.redis.cluster.v1.ListClustersRequest', - ['parent'] + '.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest', + ['name'] ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1}`; - const expectedResponse = [ - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.Cluster() - ), - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.Cluster() - ), - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.Cluster() - ), - ]; - client.innerApiCalls.listClusters = - stubSimpleCallWithCallback(expectedResponse); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation() + ); + client.innerApiCalls.rescheduleClusterMaintenance = + stubLongRunningCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { - client.listClusters( + client.rescheduleClusterMaintenance( request, ( err?: Error | null, - result?: protos.google.cloud.redis.cluster.v1.ICluster[] | null + result?: LROperation< + protos.google.cloud.redis.cluster.v1.ICluster, + protos.google.protobuf.IAny + > | null ) => { if (err) { reject(err); @@ -1279,311 +1526,194 @@ describe('v1.CloudRedisClusterClient', () => { } ); }); - const response = await promise; + const operation = (await promise) as LROperation< + protos.google.cloud.redis.cluster.v1.ICluster, + protos.google.protobuf.IAny + >; + const [response] = await operation.promise(); assert.deepStrictEqual(response, expectedResponse); const actualRequest = ( - client.innerApiCalls.listClusters as SinonStub + client.innerApiCalls.rescheduleClusterMaintenance as SinonStub ).getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = ( - client.innerApiCalls.listClusters as SinonStub + client.innerApiCalls.rescheduleClusterMaintenance as SinonStub ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes listClusters with error', async () => { + it('invokes rescheduleClusterMaintenance with call error', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); const request = generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.ListClustersRequest() + new protos.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest() ); const defaultValue1 = getTypeDefaultValue( - '.google.cloud.redis.cluster.v1.ListClustersRequest', - ['parent'] + '.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest', + ['name'] ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1}`; + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); - client.innerApiCalls.listClusters = stubSimpleCall( + client.innerApiCalls.rescheduleClusterMaintenance = stubLongRunningCall( undefined, expectedError ); - await assert.rejects(client.listClusters(request), expectedError); + await assert.rejects( + client.rescheduleClusterMaintenance(request), + expectedError + ); const actualRequest = ( - client.innerApiCalls.listClusters as SinonStub + client.innerApiCalls.rescheduleClusterMaintenance as SinonStub ).getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = ( - client.innerApiCalls.listClusters as SinonStub + client.innerApiCalls.rescheduleClusterMaintenance as SinonStub ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes listClustersStream without error', async () => { + it('invokes rescheduleClusterMaintenance with LRO error', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); const request = generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.ListClustersRequest() + new protos.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest() ); const defaultValue1 = getTypeDefaultValue( - '.google.cloud.redis.cluster.v1.ListClustersRequest', - ['parent'] - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1}`; - const expectedResponse = [ - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.Cluster() - ), - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.Cluster() - ), - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.Cluster() - ), - ]; - client.descriptors.page.listClusters.createStream = - stubPageStreamingCall(expectedResponse); - const stream = client.listClustersStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.redis.cluster.v1.Cluster[] = []; - stream.on( - 'data', - (response: protos.google.cloud.redis.cluster.v1.Cluster) => { - responses.push(response); - } - ); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - const responses = await promise; - assert.deepStrictEqual(responses, expectedResponse); - assert( - (client.descriptors.page.listClusters.createStream as SinonStub) - .getCall(0) - .calledWith(client.innerApiCalls.listClusters, request) + '.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest', + ['name'] ); - assert( - (client.descriptors.page.listClusters.createStream as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams) + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.rescheduleClusterMaintenance = stubLongRunningCall( + undefined, + undefined, + expectedError ); + const [operation] = await client.rescheduleClusterMaintenance(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.rescheduleClusterMaintenance as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rescheduleClusterMaintenance as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes listClustersStream with error', async () => { + it('invokes checkRescheduleClusterMaintenanceProgress without error', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.ListClustersRequest() - ); - const defaultValue1 = getTypeDefaultValue( - '.google.cloud.redis.cluster.v1.ListClustersRequest', - ['parent'] - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1}`; - const expectedError = new Error('expected'); - client.descriptors.page.listClusters.createStream = stubPageStreamingCall( - undefined, - expectedError + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation() ); - const stream = client.listClustersStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.redis.cluster.v1.Cluster[] = []; - stream.on( - 'data', - (response: protos.google.cloud.redis.cluster.v1.Cluster) => { - responses.push(response); - } + expectedResponse.name = 'test'; + expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; + expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')}; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = + await client.checkRescheduleClusterMaintenanceProgress( + expectedResponse.name ); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert( - (client.descriptors.page.listClusters.createStream as SinonStub) - .getCall(0) - .calledWith(client.innerApiCalls.listClusters, request) - ); - assert( - (client.descriptors.page.listClusters.createStream as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams) - ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); - it('uses async iteration with listClusters without error', async () => { + it('invokes checkRescheduleClusterMaintenanceProgress with error', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.ListClustersRequest() - ); - const defaultValue1 = getTypeDefaultValue( - '.google.cloud.redis.cluster.v1.ListClustersRequest', - ['parent'] - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1}`; - const expectedResponse = [ - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.Cluster() - ), - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.Cluster() - ), - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.Cluster() - ), - ]; - client.descriptors.page.listClusters.asyncIterate = - stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.redis.cluster.v1.ICluster[] = []; - const iterable = client.listClustersAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - ( - client.descriptors.page.listClusters.asyncIterate as SinonStub - ).getCall(0).args[1], - request + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError ); - assert( - (client.descriptors.page.listClusters.asyncIterate as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams) + await assert.rejects( + client.checkRescheduleClusterMaintenanceProgress(''), + expectedError ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); + }); - it('uses async iteration with listClusters with error', async () => { + describe('deleteBackup', () => { + it('invokes deleteBackup without error', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); const request = generateSampleMessage( - new protos.google.cloud.redis.cluster.v1.ListClustersRequest() + new protos.google.cloud.redis.cluster.v1.DeleteBackupRequest() ); const defaultValue1 = getTypeDefaultValue( - '.google.cloud.redis.cluster.v1.ListClustersRequest', - ['parent'] - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1}`; - const expectedError = new Error('expected'); - client.descriptors.page.listClusters.asyncIterate = - stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listClustersAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.redis.cluster.v1.ICluster[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - ( - client.descriptors.page.listClusters.asyncIterate as SinonStub - ).getCall(0).args[1], - request + '.google.cloud.redis.cluster.v1.DeleteBackupRequest', + ['name'] ); - assert( - (client.descriptors.page.listClusters.asyncIterate as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams) + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation() ); + client.innerApiCalls.deleteBackup = stubLongRunningCall(expectedResponse); + const [operation] = await client.deleteBackup(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { + + it('invokes deleteBackup without error using callback', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() + new protos.google.cloud.redis.cluster.v1.DeleteBackupRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.DeleteBackupRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() + new protos.google.longrunning.Operation() ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert( - (client.locationsClient.getLocation as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); - }); - it('invokes getLocation without error using callback', async () => { - const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon - .stub() - .callsArgWith(2, null, expectedResponse); + client.innerApiCalls.deleteBackup = + stubLongRunningCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { - client.getLocation( + client.deleteBackup( request, - expectedOptions, ( err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null + result?: LROperation< + protos.google.protobuf.IEmpty, + protos.google.protobuf.IAny + > | null ) => { if (err) { reject(err); @@ -1593,176 +1723,187 @@ describe('v1.CloudRedisClusterClient', () => { } ); }); - const response = await promise; + const operation = (await promise) as LROperation< + protos.google.protobuf.IEmpty, + protos.google.protobuf.IAny + >; + const [response] = await operation.promise(); assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub).getCall(0)); + const actualRequest = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes getLocation with error', async () => { + + it('invokes deleteBackup with call error', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() + new protos.google.cloud.redis.cluster.v1.DeleteBackupRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.DeleteBackupRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall( + client.innerApiCalls.deleteBackup = stubLongRunningCall( undefined, expectedError ); - await assert.rejects( - client.getLocation(request, expectedOptions), - expectedError - ); - assert( - (client.locationsClient.getLocation as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + await assert.rejects(client.deleteBackup(request), expectedError); + const actualRequest = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { + + it('invokes deleteBackup with LRO error', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() + new protos.google.cloud.redis.cluster.v1.DeleteBackupRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = - stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - ( - client.locationsClient.descriptors.page.listLocations - .asyncIterate as SinonStub - ).getCall(0).args[1], - request + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.DeleteBackupRequest', + ['name'] ); - assert( - ( - client.locationsClient.descriptors.page.listLocations - .asyncIterate as SinonStub - ) - .getCall(0) - .args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.deleteBackup = stubLongRunningCall( + undefined, + undefined, + expectedError ); + const [operation] = await client.deleteBackup(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('uses async iteration with listLocations with error', async () => { + + it('invokes checkDeleteBackupProgress without error', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = - stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - ( - client.locationsClient.descriptors.page.listLocations - .asyncIterate as SinonStub - ).getCall(0).args[1], - request + expectedResponse.name = 'test'; + expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; + expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')}; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkDeleteBackupProgress( + expectedResponse.name ); - assert( - ( - client.locationsClient.descriptors.page.listLocations - .asyncIterate as SinonStub - ) - .getCall(0) - .args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + + it('invokes checkDeleteBackupProgress with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError ); + await assert.rejects(client.checkDeleteBackupProgress(''), expectedError); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); }); - describe('getOperation', () => { - it('invokes getOperation without error', async () => { + + describe('exportBackup', () => { + it('invokes exportBackup without error', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() + new protos.google.cloud.redis.cluster.v1.ExportBackupRequest() ); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ExportBackupRequest', + ['name'] ); - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const response = await client.getOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert( - (client.operationsClient.getOperation as SinonStub) - .getCall(0) - .calledWith(request) + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation() ); + client.innerApiCalls.exportBackup = stubLongRunningCall(expectedResponse); + const [operation] = await client.exportBackup(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.exportBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.exportBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes getOperation without error using callback', async () => { + + it('invokes exportBackup without error using callback', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + client.initialize(); const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() + new protos.google.cloud.redis.cluster.v1.ExportBackupRequest() ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ExportBackupRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() + new protos.google.longrunning.Operation() ); - client.operationsClient.getOperation = sinon - .stub() - .callsArgWith(2, null, expectedResponse); + client.innerApiCalls.exportBackup = + stubLongRunningCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { - client.operationsClient.getOperation( + client.exportBackup( request, - undefined, ( err?: Error | null, - result?: operationsProtos.google.longrunning.Operation | null + result?: LROperation< + protos.google.cloud.redis.cluster.v1.IBackup, + protos.google.protobuf.IAny + > | null ) => { if (err) { reject(err); @@ -1772,157 +1913,188 @@ describe('v1.CloudRedisClusterClient', () => { } ); }); - const response = await promise; + const operation = (await promise) as LROperation< + protos.google.cloud.redis.cluster.v1.IBackup, + protos.google.protobuf.IAny + >; + const [response] = await operation.promise(); assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); - it('invokes getOperation with error', async () => { - const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', + const actualRequest = ( + client.innerApiCalls.exportBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.exportBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes exportBackup with call error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', }); + client.initialize(); const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() + new protos.google.cloud.redis.cluster.v1.ExportBackupRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ExportBackupRequest', + ['name'] ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); - client.operationsClient.getOperation = stubSimpleCall( + client.innerApiCalls.exportBackup = stubLongRunningCall( undefined, expectedError ); - await assert.rejects(async () => { - await client.getOperation(request); - }, expectedError); - assert( - (client.operationsClient.getOperation as SinonStub) - .getCall(0) - .calledWith(request) - ); + await assert.rejects(client.exportBackup(request), expectedError); + const actualRequest = ( + client.innerApiCalls.exportBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.exportBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - }); - describe('cancelOperation', () => { - it('invokes cancelOperation without error', async () => { + + it('invokes exportBackup with LRO error', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() + new protos.google.cloud.redis.cluster.v1.ExportBackupRequest() ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ExportBackupRequest', + ['name'] ); - client.operationsClient.cancelOperation = - stubSimpleCall(expectedResponse); - const response = await client.cancelOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert( - (client.operationsClient.cancelOperation as SinonStub) - .getCall(0) - .calledWith(request) + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.exportBackup = stubLongRunningCall( + undefined, + undefined, + expectedError ); + const [operation] = await client.exportBackup(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.exportBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.exportBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes cancelOperation without error using callback', async () => { + + it('invokes checkExportBackupProgress without error', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); + client.initialize(); const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() + new operationsProtos.google.longrunning.Operation() ); - client.operationsClient.cancelOperation = sinon - .stub() - .callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.operationsClient.cancelOperation( - request, - undefined, - ( - err?: Error | null, - result?: protos.google.protobuf.Empty | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - } - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.cancelOperation as SinonStub).getCall(0)); + expectedResponse.name = 'test'; + expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; + expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')}; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkExportBackupProgress( + expectedResponse.name + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); - it('invokes cancelOperation with error', async () => { + + it('invokes checkExportBackupProgress with error', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); + client.initialize(); const expectedError = new Error('expected'); - client.operationsClient.cancelOperation = stubSimpleCall( + + client.operationsClient.getOperation = stubSimpleCall( undefined, expectedError ); - await assert.rejects(async () => { - await client.cancelOperation(request); - }, expectedError); - assert( - (client.operationsClient.cancelOperation as SinonStub) - .getCall(0) - .calledWith(request) - ); + await assert.rejects(client.checkExportBackupProgress(''), expectedError); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); }); - describe('deleteOperation', () => { - it('invokes deleteOperation without error', async () => { + + describe('backupCluster', () => { + it('invokes backupCluster without error', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() + new protos.google.cloud.redis.cluster.v1.BackupClusterRequest() ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.BackupClusterRequest', + ['name'] ); - client.operationsClient.deleteOperation = - stubSimpleCall(expectedResponse); - const response = await client.deleteOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert( - (client.operationsClient.deleteOperation as SinonStub) - .getCall(0) - .calledWith(request) + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation() ); + client.innerApiCalls.backupCluster = + stubLongRunningCall(expectedResponse); + const [operation] = await client.backupCluster(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.backupCluster as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.backupCluster as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes deleteOperation without error using callback', async () => { + + it('invokes backupCluster without error using callback', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + client.initialize(); const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() + new protos.google.cloud.redis.cluster.v1.BackupClusterRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.BackupClusterRequest', + ['name'] ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() + new protos.google.longrunning.Operation() ); - client.operationsClient.deleteOperation = sinon - .stub() - .callsArgWith(2, null, expectedResponse); + client.innerApiCalls.backupCluster = + stubLongRunningCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { - client.operationsClient.deleteOperation( + client.backupCluster( request, - undefined, ( err?: Error | null, - result?: protos.google.protobuf.Empty | null + result?: LROperation< + protos.google.cloud.redis.cluster.v1.ICluster, + protos.google.protobuf.IAny + > | null ) => { if (err) { reject(err); @@ -1932,130 +2104,2039 @@ describe('v1.CloudRedisClusterClient', () => { } ); }); - const response = await promise; + const operation = (await promise) as LROperation< + protos.google.cloud.redis.cluster.v1.ICluster, + protos.google.protobuf.IAny + >; + const [response] = await operation.promise(); assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.deleteOperation as SinonStub).getCall(0)); + const actualRequest = ( + client.innerApiCalls.backupCluster as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.backupCluster as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes deleteOperation with error', async () => { + + it('invokes backupCluster with call error', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + client.initialize(); const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() + new protos.google.cloud.redis.cluster.v1.BackupClusterRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.BackupClusterRequest', + ['name'] ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); - client.operationsClient.deleteOperation = stubSimpleCall( + client.innerApiCalls.backupCluster = stubLongRunningCall( undefined, expectedError ); - await assert.rejects(async () => { - await client.deleteOperation(request); - }, expectedError); - assert( - (client.operationsClient.deleteOperation as SinonStub) - .getCall(0) - .calledWith(request) - ); + await assert.rejects(client.backupCluster(request), expectedError); + const actualRequest = ( + client.innerApiCalls.backupCluster as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.backupCluster as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - }); - describe('listOperationsAsync', () => { - it('uses async iteration with listOperations without error', async () => { + + it('invokes backupCluster with LRO error', async () => { const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + client.initialize(); const request = generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsRequest() + new protos.google.cloud.redis.cluster.v1.BackupClusterRequest() ); - const expectedResponse = [ - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - ]; - client.operationsClient.descriptor.listOperations.asyncIterate = - stubAsyncIterationCall(expectedResponse); - const responses: operationsProtos.google.longrunning.ListOperationsResponse[] = - []; - const iterable = client.operationsClient.listOperationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - ( - client.operationsClient.descriptor.listOperations - .asyncIterate as SinonStub - ).getCall(0).args[1], - request + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.BackupClusterRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.backupCluster = stubLongRunningCall( + undefined, + undefined, + expectedError ); + const [operation] = await client.backupCluster(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.backupCluster as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.backupCluster as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes checkBackupClusterProgress without error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation() + ); + expectedResponse.name = 'test'; + expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; + expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')}; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkBackupClusterProgress( + expectedResponse.name + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + + it('invokes checkBackupClusterProgress with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects( + client.checkBackupClusterProgress(''), + expectedError + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('listClusters', () => { + it('invokes listClusters without error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListClustersRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListClustersRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Cluster() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Cluster() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Cluster() + ), + ]; + client.innerApiCalls.listClusters = stubSimpleCall(expectedResponse); + const [response] = await client.listClusters(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listClusters as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listClusters as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listClusters without error using callback', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListClustersRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListClustersRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Cluster() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Cluster() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Cluster() + ), + ]; + client.innerApiCalls.listClusters = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listClusters( + request, + ( + err?: Error | null, + result?: protos.google.cloud.redis.cluster.v1.ICluster[] | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listClusters as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listClusters as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listClusters with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListClustersRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListClustersRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listClusters = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(client.listClusters(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listClusters as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listClusters as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listClustersStream without error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListClustersRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListClustersRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Cluster() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Cluster() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Cluster() + ), + ]; + client.descriptors.page.listClusters.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listClustersStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.redis.cluster.v1.Cluster[] = []; + stream.on( + 'data', + (response: protos.google.cloud.redis.cluster.v1.Cluster) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + const responses = await promise; + assert.deepStrictEqual(responses, expectedResponse); + assert( + (client.descriptors.page.listClusters.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listClusters, request) + ); + assert( + (client.descriptors.page.listClusters.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams) + ); + }); + + it('invokes listClustersStream with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListClustersRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListClustersRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedError = new Error('expected'); + client.descriptors.page.listClusters.createStream = stubPageStreamingCall( + undefined, + expectedError + ); + const stream = client.listClustersStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.redis.cluster.v1.Cluster[] = []; + stream.on( + 'data', + (response: protos.google.cloud.redis.cluster.v1.Cluster) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert( + (client.descriptors.page.listClusters.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listClusters, request) + ); + assert( + (client.descriptors.page.listClusters.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams) + ); + }); + + it('uses async iteration with listClusters without error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListClustersRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListClustersRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Cluster() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Cluster() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Cluster() + ), + ]; + client.descriptors.page.listClusters.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.redis.cluster.v1.ICluster[] = []; + const iterable = client.listClustersAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.descriptors.page.listClusters.asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + assert( + (client.descriptors.page.listClusters.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams) + ); + }); + + it('uses async iteration with listClusters with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListClustersRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListClustersRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedError = new Error('expected'); + client.descriptors.page.listClusters.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listClustersAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.redis.cluster.v1.ICluster[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.descriptors.page.listClusters.asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + assert( + (client.descriptors.page.listClusters.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams) + ); + }); + }); + + describe('listBackupCollections', () => { + it('invokes listBackupCollections without error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.BackupCollection() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.BackupCollection() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.BackupCollection() + ), + ]; + client.innerApiCalls.listBackupCollections = + stubSimpleCall(expectedResponse); + const [response] = await client.listBackupCollections(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listBackupCollections as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBackupCollections as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listBackupCollections without error using callback', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.BackupCollection() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.BackupCollection() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.BackupCollection() + ), + ]; + client.innerApiCalls.listBackupCollections = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listBackupCollections( + request, + ( + err?: Error | null, + result?: + | protos.google.cloud.redis.cluster.v1.IBackupCollection[] + | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listBackupCollections as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBackupCollections as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listBackupCollections with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listBackupCollections = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects( + client.listBackupCollections(request), + expectedError + ); + const actualRequest = ( + client.innerApiCalls.listBackupCollections as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBackupCollections as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listBackupCollectionsStream without error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.BackupCollection() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.BackupCollection() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.BackupCollection() + ), + ]; + client.descriptors.page.listBackupCollections.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listBackupCollectionsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.redis.cluster.v1.BackupCollection[] = + []; + stream.on( + 'data', + (response: protos.google.cloud.redis.cluster.v1.BackupCollection) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + const responses = await promise; + assert.deepStrictEqual(responses, expectedResponse); + assert( + ( + client.descriptors.page.listBackupCollections + .createStream as SinonStub + ) + .getCall(0) + .calledWith(client.innerApiCalls.listBackupCollections, request) + ); + assert( + ( + client.descriptors.page.listBackupCollections + .createStream as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) + ); + }); + + it('invokes listBackupCollectionsStream with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedError = new Error('expected'); + client.descriptors.page.listBackupCollections.createStream = + stubPageStreamingCall(undefined, expectedError); + const stream = client.listBackupCollectionsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.redis.cluster.v1.BackupCollection[] = + []; + stream.on( + 'data', + (response: protos.google.cloud.redis.cluster.v1.BackupCollection) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert( + ( + client.descriptors.page.listBackupCollections + .createStream as SinonStub + ) + .getCall(0) + .calledWith(client.innerApiCalls.listBackupCollections, request) + ); + assert( + ( + client.descriptors.page.listBackupCollections + .createStream as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) + ); + }); + + it('uses async iteration with listBackupCollections without error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.BackupCollection() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.BackupCollection() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.BackupCollection() + ), + ]; + client.descriptors.page.listBackupCollections.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.redis.cluster.v1.IBackupCollection[] = + []; + const iterable = client.listBackupCollectionsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.descriptors.page.listBackupCollections + .asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + assert( + ( + client.descriptors.page.listBackupCollections + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) + ); + }); + + it('uses async iteration with listBackupCollections with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedError = new Error('expected'); + client.descriptors.page.listBackupCollections.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listBackupCollectionsAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.redis.cluster.v1.IBackupCollection[] = + []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.descriptors.page.listBackupCollections + .asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + assert( + ( + client.descriptors.page.listBackupCollections + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) + ); + }); + }); + + describe('listBackups', () => { + it('invokes listBackups without error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListBackupsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListBackupsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Backup() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Backup() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Backup() + ), + ]; + client.innerApiCalls.listBackups = stubSimpleCall(expectedResponse); + const [response] = await client.listBackups(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listBackups without error using callback', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListBackupsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListBackupsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Backup() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Backup() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Backup() + ), + ]; + client.innerApiCalls.listBackups = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listBackups( + request, + ( + err?: Error | null, + result?: protos.google.cloud.redis.cluster.v1.IBackup[] | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listBackups with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListBackupsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListBackupsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listBackups = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(client.listBackups(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listBackupsStream without error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListBackupsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListBackupsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Backup() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Backup() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Backup() + ), + ]; + client.descriptors.page.listBackups.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listBackupsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.redis.cluster.v1.Backup[] = []; + stream.on( + 'data', + (response: protos.google.cloud.redis.cluster.v1.Backup) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + const responses = await promise; + assert.deepStrictEqual(responses, expectedResponse); + assert( + (client.descriptors.page.listBackups.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listBackups, request) + ); + assert( + (client.descriptors.page.listBackups.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams) + ); + }); + + it('invokes listBackupsStream with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListBackupsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListBackupsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedError = new Error('expected'); + client.descriptors.page.listBackups.createStream = stubPageStreamingCall( + undefined, + expectedError + ); + const stream = client.listBackupsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.redis.cluster.v1.Backup[] = []; + stream.on( + 'data', + (response: protos.google.cloud.redis.cluster.v1.Backup) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert( + (client.descriptors.page.listBackups.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listBackups, request) + ); + assert( + (client.descriptors.page.listBackups.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams) + ); + }); + + it('uses async iteration with listBackups without error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListBackupsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListBackupsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Backup() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Backup() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.Backup() + ), + ]; + client.descriptors.page.listBackups.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.redis.cluster.v1.IBackup[] = []; + const iterable = client.listBackupsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + (client.descriptors.page.listBackups.asyncIterate as SinonStub).getCall( + 0 + ).args[1], + request + ); + assert( + (client.descriptors.page.listBackups.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams) + ); + }); + + it('uses async iteration with listBackups with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1.ListBackupsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1.ListBackupsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedError = new Error('expected'); + client.descriptors.page.listBackups.asyncIterate = stubAsyncIterationCall( + undefined, + expectedError + ); + const iterable = client.listBackupsAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.redis.cluster.v1.IBackup[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + (client.descriptors.page.listBackups.asyncIterate as SinonStub).getCall( + 0 + ).args[1], + request + ); + assert( + (client.descriptors.page.listBackups.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams) + ); + }); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location() + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + it('invokes getLocation without error using callback', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location() + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); + }); + it('invokes getLocation with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location() + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location() + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location() + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) + ); + }); + }); + describe('getOperation', () => { + it('invokes getOperation without error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest() + ); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation() + ); + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const response = await client.getOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.getOperation as SinonStub) + .getCall(0) + .calledWith(request) + ); + }); + it('invokes getOperation without error using callback', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest() + ); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation() + ); + client.operationsClient.getOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient.getOperation( + request, + undefined, + ( + err?: Error | null, + result?: operationsProtos.google.longrunning.Operation | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + it('invokes getOperation with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest() + ); + const expectedError = new Error('expected'); + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(async () => { + await client.getOperation(request); + }, expectedError); + assert( + (client.operationsClient.getOperation as SinonStub) + .getCall(0) + .calledWith(request) + ); + }); + }); + describe('cancelOperation', () => { + it('invokes cancelOperation without error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest() + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty() + ); + client.operationsClient.cancelOperation = + stubSimpleCall(expectedResponse); + const response = await client.cancelOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.cancelOperation as SinonStub) + .getCall(0) + .calledWith(request) + ); + }); + it('invokes cancelOperation without error using callback', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest() + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty() + ); + client.operationsClient.cancelOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient.cancelOperation( + request, + undefined, + ( + err?: Error | null, + result?: protos.google.protobuf.Empty | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.cancelOperation as SinonStub).getCall(0)); + }); + it('invokes cancelOperation with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest() + ); + const expectedError = new Error('expected'); + client.operationsClient.cancelOperation = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(async () => { + await client.cancelOperation(request); + }, expectedError); + assert( + (client.operationsClient.cancelOperation as SinonStub) + .getCall(0) + .calledWith(request) + ); + }); + }); + describe('deleteOperation', () => { + it('invokes deleteOperation without error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest() + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty() + ); + client.operationsClient.deleteOperation = + stubSimpleCall(expectedResponse); + const response = await client.deleteOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.deleteOperation as SinonStub) + .getCall(0) + .calledWith(request) + ); + }); + it('invokes deleteOperation without error using callback', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest() + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty() + ); + client.operationsClient.deleteOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient.deleteOperation( + request, + undefined, + ( + err?: Error | null, + result?: protos.google.protobuf.Empty | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.deleteOperation as SinonStub).getCall(0)); + }); + it('invokes deleteOperation with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest() + ); + const expectedError = new Error('expected'); + client.operationsClient.deleteOperation = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(async () => { + await client.deleteOperation(request); + }, expectedError); + assert( + (client.operationsClient.deleteOperation as SinonStub) + .getCall(0) + .calledWith(request) + ); + }); + }); + describe('listOperationsAsync', () => { + it('uses async iteration with listOperations without error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsRequest() + ); + const expectedResponse = [ + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse() + ), + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse() + ), + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse() + ), + ]; + client.operationsClient.descriptor.listOperations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: operationsProtos.google.longrunning.ListOperationsResponse[] = + []; + const iterable = client.operationsClient.listOperationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.operationsClient.descriptor.listOperations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + }); + it('uses async iteration with listOperations with error', async () => { + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsRequest() + ); + const expectedError = new Error('expected'); + client.operationsClient.descriptor.listOperations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.operationsClient.listOperationsAsync(request); + await assert.rejects(async () => { + const responses: operationsProtos.google.longrunning.ListOperationsResponse[] = + []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.operationsClient.descriptor.listOperations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + }); + }); + + describe('Path templates', () => { + describe('backup', () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + backup_collection: 'backupCollectionValue', + backup: 'backupValue', + }; + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('backupPath', () => { + const result = client.backupPath( + 'projectValue', + 'locationValue', + 'backupCollectionValue', + 'backupValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromBackupName', () => { + const result = client.matchLocationFromBackupName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchBackupCollectionFromBackupName', () => { + const result = client.matchBackupCollectionFromBackupName(fakePath); + assert.strictEqual(result, 'backupCollectionValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('backupCollection', () => { + const fakePath = '/rendered/path/backupCollection'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + backup_collection: 'backupCollectionValue', + }; + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.backupCollectionPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupCollectionPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('backupCollectionPath', () => { + const result = client.backupCollectionPath( + 'projectValue', + 'locationValue', + 'backupCollectionValue' + ); + assert.strictEqual(result, fakePath); + assert( + ( + client.pathTemplates.backupCollectionPathTemplate + .render as SinonStub + ) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromBackupCollectionName', () => { + const result = client.matchProjectFromBackupCollectionName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupCollectionPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromBackupCollectionName', () => { + const result = client.matchLocationFromBackupCollectionName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.backupCollectionPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchBackupCollectionFromBackupCollectionName', () => { + const result = + client.matchBackupCollectionFromBackupCollectionName(fakePath); + assert.strictEqual(result, 'backupCollectionValue'); + assert( + (client.pathTemplates.backupCollectionPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('certificateAuthority', () => { + const fakePath = '/rendered/path/certificateAuthority'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + cluster: 'clusterValue', + }; + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.certificateAuthorityPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.certificateAuthorityPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('certificateAuthorityPath', () => { + const result = client.certificateAuthorityPath( + 'projectValue', + 'locationValue', + 'clusterValue' + ); + assert.strictEqual(result, fakePath); + assert( + ( + client.pathTemplates.certificateAuthorityPathTemplate + .render as SinonStub + ) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromCertificateAuthorityName', () => { + const result = + client.matchProjectFromCertificateAuthorityName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + ( + client.pathTemplates.certificateAuthorityPathTemplate + .match as SinonStub + ) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromCertificateAuthorityName', () => { + const result = + client.matchLocationFromCertificateAuthorityName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + ( + client.pathTemplates.certificateAuthorityPathTemplate + .match as SinonStub + ) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchClusterFromCertificateAuthorityName', () => { + const result = + client.matchClusterFromCertificateAuthorityName(fakePath); + assert.strictEqual(result, 'clusterValue'); + assert( + ( + client.pathTemplates.certificateAuthorityPathTemplate + .match as SinonStub + ) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('cluster', () => { + const fakePath = '/rendered/path/cluster'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + cluster: 'clusterValue', + }; + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.clusterPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.clusterPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('clusterPath', () => { + const result = client.clusterPath( + 'projectValue', + 'locationValue', + 'clusterValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.clusterPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromClusterName', () => { + const result = client.matchProjectFromClusterName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.clusterPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromClusterName', () => { + const result = client.matchLocationFromClusterName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.clusterPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchClusterFromClusterName', () => { + const result = client.matchClusterFromClusterName(fakePath); + assert.strictEqual(result, 'clusterValue'); + assert( + (client.pathTemplates.clusterPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); }); - it('uses async iteration with listOperations with error', async () => { + + describe('cryptoKey', () => { + const fakePath = '/rendered/path/cryptoKey'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + key_ring: 'keyRingValue', + crypto_key: 'cryptoKeyValue', + }; const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.descriptor.listOperations.asyncIterate = - stubAsyncIterationCall(undefined, expectedError); - const iterable = client.operationsClient.listOperationsAsync(request); - await assert.rejects(async () => { - const responses: operationsProtos.google.longrunning.ListOperationsResponse[] = - []; - for await (const resource of iterable) { - responses.push(resource!); - } + client.pathTemplates.cryptoKeyPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.cryptoKeyPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('cryptoKeyPath', () => { + const result = client.cryptoKeyPath( + 'projectValue', + 'locationValue', + 'keyRingValue', + 'cryptoKeyValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.cryptoKeyPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromCryptoKeyName', () => { + const result = client.matchProjectFromCryptoKeyName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.cryptoKeyPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromCryptoKeyName', () => { + const result = client.matchLocationFromCryptoKeyName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.cryptoKeyPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchKeyRingFromCryptoKeyName', () => { + const result = client.matchKeyRingFromCryptoKeyName(fakePath); + assert.strictEqual(result, 'keyRingValue'); + assert( + (client.pathTemplates.cryptoKeyPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchCryptoKeyFromCryptoKeyName', () => { + const result = client.matchCryptoKeyFromCryptoKeyName(fakePath); + assert.strictEqual(result, 'cryptoKeyValue'); + assert( + (client.pathTemplates.cryptoKeyPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); }); - assert.deepStrictEqual( - ( - client.operationsClient.descriptor.listOperations - .asyncIterate as SinonStub - ).getCall(0).args[1], - request - ); }); - }); - describe('Path templates', () => { - describe('certificateAuthority', () => { - const fakePath = '/rendered/path/certificateAuthority'; + describe('cryptoKeyVersion', () => { + const fakePath = '/rendered/path/cryptoKeyVersion'; const expectedParameters = { project: 'projectValue', location: 'locationValue', - cluster: 'clusterValue', + key_ring: 'keyRingValue', + crypto_key: 'cryptoKeyValue', + crypto_key_version: 'cryptoKeyVersionValue', }; const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); - client.pathTemplates.certificateAuthorityPathTemplate.render = sinon + client.pathTemplates.cryptoKeyVersionPathTemplate.render = sinon .stub() .returns(fakePath); - client.pathTemplates.certificateAuthorityPathTemplate.match = sinon + client.pathTemplates.cryptoKeyVersionPathTemplate.match = sinon .stub() .returns(expectedParameters); - it('certificateAuthorityPath', () => { - const result = client.certificateAuthorityPath( + it('cryptoKeyVersionPath', () => { + const result = client.cryptoKeyVersionPath( 'projectValue', 'locationValue', - 'clusterValue' + 'keyRingValue', + 'cryptoKeyValue', + 'cryptoKeyVersionValue' ); assert.strictEqual(result, fakePath); assert( ( - client.pathTemplates.certificateAuthorityPathTemplate + client.pathTemplates.cryptoKeyVersionPathTemplate .render as SinonStub ) .getCall(-1) @@ -2063,107 +4144,117 @@ describe('v1.CloudRedisClusterClient', () => { ); }); - it('matchProjectFromCertificateAuthorityName', () => { - const result = - client.matchProjectFromCertificateAuthorityName(fakePath); + it('matchProjectFromCryptoKeyVersionName', () => { + const result = client.matchProjectFromCryptoKeyVersionName(fakePath); assert.strictEqual(result, 'projectValue'); assert( - ( - client.pathTemplates.certificateAuthorityPathTemplate - .match as SinonStub - ) + (client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); - it('matchLocationFromCertificateAuthorityName', () => { - const result = - client.matchLocationFromCertificateAuthorityName(fakePath); + it('matchLocationFromCryptoKeyVersionName', () => { + const result = client.matchLocationFromCryptoKeyVersionName(fakePath); assert.strictEqual(result, 'locationValue'); assert( - ( - client.pathTemplates.certificateAuthorityPathTemplate - .match as SinonStub - ) + (client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); - it('matchClusterFromCertificateAuthorityName', () => { + it('matchKeyRingFromCryptoKeyVersionName', () => { + const result = client.matchKeyRingFromCryptoKeyVersionName(fakePath); + assert.strictEqual(result, 'keyRingValue'); + assert( + (client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchCryptoKeyFromCryptoKeyVersionName', () => { + const result = client.matchCryptoKeyFromCryptoKeyVersionName(fakePath); + assert.strictEqual(result, 'cryptoKeyValue'); + assert( + (client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchCryptoKeyVersionFromCryptoKeyVersionName', () => { const result = - client.matchClusterFromCertificateAuthorityName(fakePath); - assert.strictEqual(result, 'clusterValue'); + client.matchCryptoKeyVersionFromCryptoKeyVersionName(fakePath); + assert.strictEqual(result, 'cryptoKeyVersionValue'); assert( - ( - client.pathTemplates.certificateAuthorityPathTemplate - .match as SinonStub - ) + (client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); }); - describe('cluster', () => { - const fakePath = '/rendered/path/cluster'; + describe('forwardingRule', () => { + const fakePath = '/rendered/path/forwardingRule'; const expectedParameters = { project: 'projectValue', - location: 'locationValue', - cluster: 'clusterValue', + region: 'regionValue', + forwarding_rule: 'forwardingRuleValue', }; const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); - client.pathTemplates.clusterPathTemplate.render = sinon + client.pathTemplates.forwardingRulePathTemplate.render = sinon .stub() .returns(fakePath); - client.pathTemplates.clusterPathTemplate.match = sinon + client.pathTemplates.forwardingRulePathTemplate.match = sinon .stub() .returns(expectedParameters); - it('clusterPath', () => { - const result = client.clusterPath( + it('forwardingRulePath', () => { + const result = client.forwardingRulePath( 'projectValue', - 'locationValue', - 'clusterValue' + 'regionValue', + 'forwardingRuleValue' ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates.clusterPathTemplate.render as SinonStub) + (client.pathTemplates.forwardingRulePathTemplate.render as SinonStub) .getCall(-1) .calledWith(expectedParameters) ); }); - it('matchProjectFromClusterName', () => { - const result = client.matchProjectFromClusterName(fakePath); + it('matchProjectFromForwardingRuleName', () => { + const result = client.matchProjectFromForwardingRuleName(fakePath); assert.strictEqual(result, 'projectValue'); assert( - (client.pathTemplates.clusterPathTemplate.match as SinonStub) + (client.pathTemplates.forwardingRulePathTemplate.match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); - it('matchLocationFromClusterName', () => { - const result = client.matchLocationFromClusterName(fakePath); - assert.strictEqual(result, 'locationValue'); + it('matchRegionFromForwardingRuleName', () => { + const result = client.matchRegionFromForwardingRuleName(fakePath); + assert.strictEqual(result, 'regionValue'); assert( - (client.pathTemplates.clusterPathTemplate.match as SinonStub) + (client.pathTemplates.forwardingRulePathTemplate.match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); - it('matchClusterFromClusterName', () => { - const result = client.matchClusterFromClusterName(fakePath); - assert.strictEqual(result, 'clusterValue'); + it('matchForwardingRuleFromForwardingRuleName', () => { + const result = + client.matchForwardingRuleFromForwardingRuleName(fakePath); + assert.strictEqual(result, 'forwardingRuleValue'); assert( - (client.pathTemplates.clusterPathTemplate.match as SinonStub) + (client.pathTemplates.forwardingRulePathTemplate.match as SinonStub) .getCall(-1) .calledWith(fakePath) ); @@ -2218,5 +4309,169 @@ describe('v1.CloudRedisClusterClient', () => { ); }); }); + + describe('network', () => { + const fakePath = '/rendered/path/network'; + const expectedParameters = { + project: 'projectValue', + network: 'networkValue', + }; + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.networkPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.networkPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('networkPath', () => { + const result = client.networkPath('projectValue', 'networkValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.networkPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromNetworkName', () => { + const result = client.matchProjectFromNetworkName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.networkPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchNetworkFromNetworkName', () => { + const result = client.matchNetworkFromNetworkName(fakePath); + assert.strictEqual(result, 'networkValue'); + assert( + (client.pathTemplates.networkPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('project', () => { + const fakePath = '/rendered/path/project'; + const expectedParameters = { + project: 'projectValue', + }; + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.projectPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.projectPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('projectPath', () => { + const result = client.projectPath('projectValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.projectPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromProjectName', () => { + const result = client.matchProjectFromProjectName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.projectPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('serviceAttachment', () => { + const fakePath = '/rendered/path/serviceAttachment'; + const expectedParameters = { + project: 'projectValue', + region: 'regionValue', + service_attachment: 'serviceAttachmentValue', + }; + const client = new cloudredisclusterModule.v1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.serviceAttachmentPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.serviceAttachmentPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('serviceAttachmentPath', () => { + const result = client.serviceAttachmentPath( + 'projectValue', + 'regionValue', + 'serviceAttachmentValue' + ); + assert.strictEqual(result, fakePath); + assert( + ( + client.pathTemplates.serviceAttachmentPathTemplate + .render as SinonStub + ) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromServiceAttachmentName', () => { + const result = client.matchProjectFromServiceAttachmentName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + ( + client.pathTemplates.serviceAttachmentPathTemplate + .match as SinonStub + ) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRegionFromServiceAttachmentName', () => { + const result = client.matchRegionFromServiceAttachmentName(fakePath); + assert.strictEqual(result, 'regionValue'); + assert( + ( + client.pathTemplates.serviceAttachmentPathTemplate + .match as SinonStub + ) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchServiceAttachmentFromServiceAttachmentName', () => { + const result = + client.matchServiceAttachmentFromServiceAttachmentName(fakePath); + assert.strictEqual(result, 'serviceAttachmentValue'); + assert( + ( + client.pathTemplates.serviceAttachmentPathTemplate + .match as SinonStub + ) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); }); }); diff --git a/packages/google-cloud-redis-cluster/test/gapic_cloud_redis_cluster_v1beta1.ts b/packages/google-cloud-redis-cluster/test/gapic_cloud_redis_cluster_v1beta1.ts index bfc3bedce6c..f1f7ef9138a 100644 --- a/packages/google-cloud-redis-cluster/test/gapic_cloud_redis_cluster_v1beta1.ts +++ b/packages/google-cloud-redis-cluster/test/gapic_cloud_redis_cluster_v1beta1.ts @@ -630,6 +630,272 @@ describe('v1beta1.CloudRedisClusterClient', () => { }); }); + describe('getBackupCollection', () => { + it('invokes getBackupCollection without error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.BackupCollection() + ); + client.innerApiCalls.getBackupCollection = + stubSimpleCall(expectedResponse); + const [response] = await client.getBackupCollection(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getBackupCollection as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBackupCollection as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getBackupCollection without error using callback', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.BackupCollection() + ); + client.innerApiCalls.getBackupCollection = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getBackupCollection( + request, + ( + err?: Error | null, + result?: protos.google.cloud.redis.cluster.v1beta1.IBackupCollection | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getBackupCollection as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBackupCollection as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getBackupCollection with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getBackupCollection = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(client.getBackupCollection(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getBackupCollection as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBackupCollection as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getBackupCollection with closed client', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.GetBackupCollectionRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close(); + await assert.rejects(client.getBackupCollection(request), expectedError); + }); + }); + + describe('getBackup', () => { + it('invokes getBackup without error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.GetBackupRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.GetBackupRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Backup() + ); + client.innerApiCalls.getBackup = stubSimpleCall(expectedResponse); + const [response] = await client.getBackup(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getBackup without error using callback', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.GetBackupRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.GetBackupRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Backup() + ); + client.innerApiCalls.getBackup = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getBackup( + request, + ( + err?: Error | null, + result?: protos.google.cloud.redis.cluster.v1beta1.IBackup | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getBackup with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.GetBackupRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.GetBackupRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getBackup = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.getBackup(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getBackup with closed client', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.GetBackupRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.GetBackupRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close(); + await assert.rejects(client.getBackup(request), expectedError); + }); + }); + describe('updateCluster', () => { it('invokes updateCluster without error', async () => { const client = @@ -1234,8 +1500,8 @@ describe('v1beta1.CloudRedisClusterClient', () => { }); }); - describe('listClusters', () => { - it('invokes listClusters without error', async () => { + describe('rescheduleClusterMaintenance', () => { + it('invokes rescheduleClusterMaintenance without error', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, @@ -1243,39 +1509,33 @@ describe('v1beta1.CloudRedisClusterClient', () => { }); client.initialize(); const request = generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.ListClustersRequest() + new protos.google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest() ); const defaultValue1 = getTypeDefaultValue( - '.google.cloud.redis.cluster.v1beta1.ListClustersRequest', - ['parent'] + '.google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest', + ['name'] ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1}`; - const expectedResponse = [ - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.Cluster() - ), - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.Cluster() - ), - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.Cluster() - ), - ]; - client.innerApiCalls.listClusters = stubSimpleCall(expectedResponse); - const [response] = await client.listClusters(request); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation() + ); + client.innerApiCalls.rescheduleClusterMaintenance = + stubLongRunningCall(expectedResponse); + const [operation] = await client.rescheduleClusterMaintenance(request); + const [response] = await operation.promise(); assert.deepStrictEqual(response, expectedResponse); const actualRequest = ( - client.innerApiCalls.listClusters as SinonStub + client.innerApiCalls.rescheduleClusterMaintenance as SinonStub ).getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = ( - client.innerApiCalls.listClusters as SinonStub + client.innerApiCalls.rescheduleClusterMaintenance as SinonStub ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes listClusters without error using callback', async () => { + it('invokes rescheduleClusterMaintenance without error using callback', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, @@ -1283,33 +1543,28 @@ describe('v1beta1.CloudRedisClusterClient', () => { }); client.initialize(); const request = generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.ListClustersRequest() + new protos.google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest() ); const defaultValue1 = getTypeDefaultValue( - '.google.cloud.redis.cluster.v1beta1.ListClustersRequest', - ['parent'] + '.google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest', + ['name'] ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1}`; - const expectedResponse = [ - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.Cluster() - ), - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.Cluster() - ), - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.Cluster() - ), - ]; - client.innerApiCalls.listClusters = - stubSimpleCallWithCallback(expectedResponse); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation() + ); + client.innerApiCalls.rescheduleClusterMaintenance = + stubLongRunningCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { - client.listClusters( + client.rescheduleClusterMaintenance( request, ( err?: Error | null, - result?: protos.google.cloud.redis.cluster.v1beta1.ICluster[] | null + result?: LROperation< + protos.google.cloud.redis.cluster.v1beta1.ICluster, + protos.google.protobuf.IAny + > | null ) => { if (err) { reject(err); @@ -1319,19 +1574,23 @@ describe('v1beta1.CloudRedisClusterClient', () => { } ); }); - const response = await promise; + const operation = (await promise) as LROperation< + protos.google.cloud.redis.cluster.v1beta1.ICluster, + protos.google.protobuf.IAny + >; + const [response] = await operation.promise(); assert.deepStrictEqual(response, expectedResponse); const actualRequest = ( - client.innerApiCalls.listClusters as SinonStub + client.innerApiCalls.rescheduleClusterMaintenance as SinonStub ).getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = ( - client.innerApiCalls.listClusters as SinonStub + client.innerApiCalls.rescheduleClusterMaintenance as SinonStub ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes listClusters with error', async () => { + it('invokes rescheduleClusterMaintenance with call error', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, @@ -1339,31 +1598,34 @@ describe('v1beta1.CloudRedisClusterClient', () => { }); client.initialize(); const request = generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.ListClustersRequest() + new protos.google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest() ); const defaultValue1 = getTypeDefaultValue( - '.google.cloud.redis.cluster.v1beta1.ListClustersRequest', - ['parent'] + '.google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest', + ['name'] ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1}`; + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); - client.innerApiCalls.listClusters = stubSimpleCall( + client.innerApiCalls.rescheduleClusterMaintenance = stubLongRunningCall( undefined, expectedError ); - await assert.rejects(client.listClusters(request), expectedError); + await assert.rejects( + client.rescheduleClusterMaintenance(request), + expectedError + ); const actualRequest = ( - client.innerApiCalls.listClusters as SinonStub + client.innerApiCalls.rescheduleClusterMaintenance as SinonStub ).getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = ( - client.innerApiCalls.listClusters as SinonStub + client.innerApiCalls.rescheduleClusterMaintenance as SinonStub ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes listClustersStream without error', async () => { + it('invokes rescheduleClusterMaintenance with LRO error', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, @@ -1371,165 +1633,79 @@ describe('v1beta1.CloudRedisClusterClient', () => { }); client.initialize(); const request = generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.ListClustersRequest() + new protos.google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest() ); const defaultValue1 = getTypeDefaultValue( - '.google.cloud.redis.cluster.v1beta1.ListClustersRequest', - ['parent'] - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1}`; - const expectedResponse = [ - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.Cluster() - ), - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.Cluster() - ), - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.Cluster() - ), - ]; - client.descriptors.page.listClusters.createStream = - stubPageStreamingCall(expectedResponse); - const stream = client.listClustersStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.redis.cluster.v1beta1.Cluster[] = - []; - stream.on( - 'data', - (response: protos.google.cloud.redis.cluster.v1beta1.Cluster) => { - responses.push(response); - } - ); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - const responses = await promise; - assert.deepStrictEqual(responses, expectedResponse); - assert( - (client.descriptors.page.listClusters.createStream as SinonStub) - .getCall(0) - .calledWith(client.innerApiCalls.listClusters, request) + '.google.cloud.redis.cluster.v1beta1.RescheduleClusterMaintenanceRequest', + ['name'] ); - assert( - (client.descriptors.page.listClusters.createStream as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams) + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.rescheduleClusterMaintenance = stubLongRunningCall( + undefined, + undefined, + expectedError ); + const [operation] = await client.rescheduleClusterMaintenance(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.rescheduleClusterMaintenance as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rescheduleClusterMaintenance as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes listClustersStream with error', async () => { + it('invokes checkRescheduleClusterMaintenanceProgress without error', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.ListClustersRequest() - ); - const defaultValue1 = getTypeDefaultValue( - '.google.cloud.redis.cluster.v1beta1.ListClustersRequest', - ['parent'] - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1}`; - const expectedError = new Error('expected'); - client.descriptors.page.listClusters.createStream = stubPageStreamingCall( - undefined, - expectedError + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation() ); - const stream = client.listClustersStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.redis.cluster.v1beta1.Cluster[] = - []; - stream.on( - 'data', - (response: protos.google.cloud.redis.cluster.v1beta1.Cluster) => { - responses.push(response); - } + expectedResponse.name = 'test'; + expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; + expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')}; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = + await client.checkRescheduleClusterMaintenanceProgress( + expectedResponse.name ); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert( - (client.descriptors.page.listClusters.createStream as SinonStub) - .getCall(0) - .calledWith(client.innerApiCalls.listClusters, request) - ); - assert( - (client.descriptors.page.listClusters.createStream as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams) - ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); - it('uses async iteration with listClusters without error', async () => { + it('invokes checkRescheduleClusterMaintenanceProgress with error', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.ListClustersRequest() - ); - const defaultValue1 = getTypeDefaultValue( - '.google.cloud.redis.cluster.v1beta1.ListClustersRequest', - ['parent'] - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1}`; - const expectedResponse = [ - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.Cluster() - ), - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.Cluster() - ), - generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.Cluster() - ), - ]; - client.descriptors.page.listClusters.asyncIterate = - stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.redis.cluster.v1beta1.ICluster[] = - []; - const iterable = client.listClustersAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - ( - client.descriptors.page.listClusters.asyncIterate as SinonStub - ).getCall(0).args[1], - request + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError ); - assert( - (client.descriptors.page.listClusters.asyncIterate as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams) + await assert.rejects( + client.checkRescheduleClusterMaintenanceProgress(''), + expectedError ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); + }); - it('uses async iteration with listClusters with error', async () => { + describe('deleteBackup', () => { + it('invokes deleteBackup without error', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, @@ -1537,42 +1713,32 @@ describe('v1beta1.CloudRedisClusterClient', () => { }); client.initialize(); const request = generateSampleMessage( - new protos.google.cloud.redis.cluster.v1beta1.ListClustersRequest() + new protos.google.cloud.redis.cluster.v1beta1.DeleteBackupRequest() ); const defaultValue1 = getTypeDefaultValue( - '.google.cloud.redis.cluster.v1beta1.ListClustersRequest', - ['parent'] - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1}`; - const expectedError = new Error('expected'); - client.descriptors.page.listClusters.asyncIterate = - stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listClustersAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.redis.cluster.v1beta1.ICluster[] = - []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - ( - client.descriptors.page.listClusters.asyncIterate as SinonStub - ).getCall(0).args[1], - request + '.google.cloud.redis.cluster.v1beta1.DeleteBackupRequest', + ['name'] ); - assert( - (client.descriptors.page.listClusters.asyncIterate as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams) + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation() ); + client.innerApiCalls.deleteBackup = stubLongRunningCall(expectedResponse); + const [operation] = await client.deleteBackup(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { + + it('invokes deleteBackup without error using callback', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, @@ -1580,61 +1746,28 @@ describe('v1beta1.CloudRedisClusterClient', () => { }); client.initialize(); const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() + new protos.google.cloud.redis.cluster.v1beta1.DeleteBackupRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert( - (client.locationsClient.getLocation as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); - }); - it('invokes getLocation without error using callback', async () => { - const client = - new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.DeleteBackupRequest', + ['name'] ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() + new protos.google.longrunning.Operation() ); - client.locationsClient.getLocation = sinon - .stub() - .callsArgWith(2, null, expectedResponse); + client.innerApiCalls.deleteBackup = + stubLongRunningCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { - client.getLocation( + client.deleteBackup( request, - expectedOptions, ( err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null + result?: LROperation< + protos.google.protobuf.IEmpty, + protos.google.protobuf.IAny + > | null ) => { if (err) { reject(err); @@ -1644,11 +1777,23 @@ describe('v1beta1.CloudRedisClusterClient', () => { } ); }); - const response = await promise; + const operation = (await promise) as LROperation< + protos.google.protobuf.IEmpty, + protos.google.protobuf.IAny + >; + const [response] = await operation.promise(); assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub).getCall(0)); + const actualRequest = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes getLocation with error', async () => { + + it('invokes deleteBackup with call error', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, @@ -1656,35 +1801,31 @@ describe('v1beta1.CloudRedisClusterClient', () => { }); client.initialize(); const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() + new protos.google.cloud.redis.cluster.v1beta1.DeleteBackupRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.DeleteBackupRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall( + client.innerApiCalls.deleteBackup = stubLongRunningCall( undefined, expectedError ); - await assert.rejects( - client.getLocation(request, expectedOptions), - expectedError - ); - assert( - (client.locationsClient.getLocation as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + await assert.rejects(client.deleteBackup(request), expectedError); + const actualRequest = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { + + it('invokes deleteBackup with LRO error', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, @@ -1692,90 +1833,75 @@ describe('v1beta1.CloudRedisClusterClient', () => { }); client.initialize(); const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() + new protos.google.cloud.redis.cluster.v1beta1.DeleteBackupRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = - stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - ( - client.locationsClient.descriptors.page.listLocations - .asyncIterate as SinonStub - ).getCall(0).args[1], - request + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.DeleteBackupRequest', + ['name'] ); - assert( - ( - client.locationsClient.descriptors.page.listLocations - .asyncIterate as SinonStub - ) - .getCall(0) - .args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.deleteBackup = stubLongRunningCall( + undefined, + undefined, + expectedError ); + const [operation] = await client.deleteBackup(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('uses async iteration with listLocations with error', async () => { + + it('invokes checkDeleteBackupProgress without error', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = - stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - ( - client.locationsClient.descriptors.page.listLocations - .asyncIterate as SinonStub - ).getCall(0).args[1], - request + expectedResponse.name = 'test'; + expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; + expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')}; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkDeleteBackupProgress( + expectedResponse.name ); - assert( - ( - client.locationsClient.descriptors.page.listLocations - .asyncIterate as SinonStub - ) - .getCall(0) - .args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + + it('invokes checkDeleteBackupProgress with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError ); + await assert.rejects(client.checkDeleteBackupProgress(''), expectedError); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); }); - describe('getOperation', () => { - it('invokes getOperation without error', async () => { + + describe('exportBackup', () => { + it('invokes exportBackup without error', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, @@ -1783,44 +1909,63 @@ describe('v1beta1.CloudRedisClusterClient', () => { }); client.initialize(); const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() + new protos.google.cloud.redis.cluster.v1beta1.ExportBackupRequest() ); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ExportBackupRequest', + ['name'] ); - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const response = await client.getOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert( - (client.operationsClient.getOperation as SinonStub) - .getCall(0) - .calledWith(request) + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation() ); + client.innerApiCalls.exportBackup = stubLongRunningCall(expectedResponse); + const [operation] = await client.exportBackup(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.exportBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.exportBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes getOperation without error using callback', async () => { + + it('invokes exportBackup without error using callback', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + client.initialize(); const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() + new protos.google.cloud.redis.cluster.v1beta1.ExportBackupRequest() ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ExportBackupRequest', + ['name'] + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() + new protos.google.longrunning.Operation() ); - client.operationsClient.getOperation = sinon - .stub() - .callsArgWith(2, null, expectedResponse); + client.innerApiCalls.exportBackup = + stubLongRunningCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { - client.operationsClient.getOperation( + client.exportBackup( request, - undefined, ( err?: Error | null, - result?: operationsProtos.google.longrunning.Operation | null - ) => { - if (err) { + result?: LROperation< + protos.google.cloud.redis.cluster.v1beta1.IBackup, + protos.google.protobuf.IAny + > | null + ) => { + if (err) { reject(err); } else { resolve(result); @@ -1828,36 +1973,55 @@ describe('v1beta1.CloudRedisClusterClient', () => { } ); }); - const response = await promise; + const operation = (await promise) as LROperation< + protos.google.cloud.redis.cluster.v1beta1.IBackup, + protos.google.protobuf.IAny + >; + const [response] = await operation.promise(); assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + const actualRequest = ( + client.innerApiCalls.exportBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.exportBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes getOperation with error', async () => { + + it('invokes exportBackup with call error', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + client.initialize(); const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() + new protos.google.cloud.redis.cluster.v1beta1.ExportBackupRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ExportBackupRequest', + ['name'] ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); - client.operationsClient.getOperation = stubSimpleCall( + client.innerApiCalls.exportBackup = stubLongRunningCall( undefined, expectedError ); - await assert.rejects(async () => { - await client.getOperation(request); - }, expectedError); - assert( - (client.operationsClient.getOperation as SinonStub) - .getCall(0) - .calledWith(request) - ); + await assert.rejects(client.exportBackup(request), expectedError); + const actualRequest = ( + client.innerApiCalls.exportBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.exportBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - }); - describe('cancelOperation', () => { - it('invokes cancelOperation without error', async () => { + + it('invokes exportBackup with LRO error', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, @@ -1865,82 +2029,75 @@ describe('v1beta1.CloudRedisClusterClient', () => { }); client.initialize(); const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() + new protos.google.cloud.redis.cluster.v1beta1.ExportBackupRequest() ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ExportBackupRequest', + ['name'] ); - client.operationsClient.cancelOperation = - stubSimpleCall(expectedResponse); - const response = await client.cancelOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert( - (client.operationsClient.cancelOperation as SinonStub) - .getCall(0) - .calledWith(request) + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.exportBackup = stubLongRunningCall( + undefined, + undefined, + expectedError ); + const [operation] = await client.exportBackup(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.exportBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.exportBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes cancelOperation without error using callback', async () => { + + it('invokes checkExportBackupProgress without error', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); + client.initialize(); const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() + new operationsProtos.google.longrunning.Operation() ); - client.operationsClient.cancelOperation = sinon - .stub() - .callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.operationsClient.cancelOperation( - request, - undefined, - ( - err?: Error | null, - result?: protos.google.protobuf.Empty | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - } - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.cancelOperation as SinonStub).getCall(0)); + expectedResponse.name = 'test'; + expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; + expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')}; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkExportBackupProgress( + expectedResponse.name + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); - it('invokes cancelOperation with error', async () => { + + it('invokes checkExportBackupProgress with error', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); + client.initialize(); const expectedError = new Error('expected'); - client.operationsClient.cancelOperation = stubSimpleCall( + + client.operationsClient.getOperation = stubSimpleCall( undefined, expectedError ); - await assert.rejects(async () => { - await client.cancelOperation(request); - }, expectedError); - assert( - (client.operationsClient.cancelOperation as SinonStub) - .getCall(0) - .calledWith(request) - ); + await assert.rejects(client.checkExportBackupProgress(''), expectedError); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); }); - describe('deleteOperation', () => { - it('invokes deleteOperation without error', async () => { + + describe('backupCluster', () => { + it('invokes backupCluster without error', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, @@ -1948,43 +2105,62 @@ describe('v1beta1.CloudRedisClusterClient', () => { }); client.initialize(); const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() + new protos.google.cloud.redis.cluster.v1beta1.BackupClusterRequest() ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.BackupClusterRequest', + ['name'] ); - client.operationsClient.deleteOperation = - stubSimpleCall(expectedResponse); - const response = await client.deleteOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert( - (client.operationsClient.deleteOperation as SinonStub) - .getCall(0) - .calledWith(request) + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation() ); + client.innerApiCalls.backupCluster = + stubLongRunningCall(expectedResponse); + const [operation] = await client.backupCluster(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.backupCluster as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.backupCluster as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes deleteOperation without error using callback', async () => { + + it('invokes backupCluster without error using callback', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + client.initialize(); const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() + new protos.google.cloud.redis.cluster.v1beta1.BackupClusterRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.BackupClusterRequest', + ['name'] ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() + new protos.google.longrunning.Operation() ); - client.operationsClient.deleteOperation = sinon - .stub() - .callsArgWith(2, null, expectedResponse); + client.innerApiCalls.backupCluster = + stubLongRunningCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { - client.operationsClient.deleteOperation( + client.backupCluster( request, - undefined, ( err?: Error | null, - result?: protos.google.protobuf.Empty | null + result?: LROperation< + protos.google.cloud.redis.cluster.v1beta1.ICluster, + protos.google.protobuf.IAny + > | null ) => { if (err) { reject(err); @@ -1994,110 +2170,2071 @@ describe('v1beta1.CloudRedisClusterClient', () => { } ); }); - const response = await promise; + const operation = (await promise) as LROperation< + protos.google.cloud.redis.cluster.v1beta1.ICluster, + protos.google.protobuf.IAny + >; + const [response] = await operation.promise(); assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.deleteOperation as SinonStub).getCall(0)); + const actualRequest = ( + client.innerApiCalls.backupCluster as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.backupCluster as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - it('invokes deleteOperation with error', async () => { + + it('invokes backupCluster with call error', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + client.initialize(); const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() + new protos.google.cloud.redis.cluster.v1beta1.BackupClusterRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.BackupClusterRequest', + ['name'] ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); - client.operationsClient.deleteOperation = stubSimpleCall( + client.innerApiCalls.backupCluster = stubLongRunningCall( undefined, expectedError ); - await assert.rejects(async () => { - await client.deleteOperation(request); - }, expectedError); - assert( - (client.operationsClient.deleteOperation as SinonStub) - .getCall(0) - .calledWith(request) - ); + await assert.rejects(client.backupCluster(request), expectedError); + const actualRequest = ( + client.innerApiCalls.backupCluster as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.backupCluster as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - }); - describe('listOperationsAsync', () => { - it('uses async iteration with listOperations without error', async () => { + + it('invokes backupCluster with LRO error', async () => { const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + client.initialize(); const request = generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsRequest() + new protos.google.cloud.redis.cluster.v1beta1.BackupClusterRequest() ); - const expectedResponse = [ - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - ]; - client.operationsClient.descriptor.listOperations.asyncIterate = - stubAsyncIterationCall(expectedResponse); - const responses: operationsProtos.google.longrunning.ListOperationsResponse[] = - []; - const iterable = client.operationsClient.listOperationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - ( - client.operationsClient.descriptor.listOperations - .asyncIterate as SinonStub - ).getCall(0).args[1], - request + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.BackupClusterRequest', + ['name'] ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.backupCluster = stubLongRunningCall( + undefined, + undefined, + expectedError + ); + const [operation] = await client.backupCluster(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.backupCluster as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.backupCluster as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes checkBackupClusterProgress without error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation() + ); + expectedResponse.name = 'test'; + expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; + expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')}; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkBackupClusterProgress( + expectedResponse.name + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + + it('invokes checkBackupClusterProgress with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects( + client.checkBackupClusterProgress(''), + expectedError + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('listClusters', () => { + it('invokes listClusters without error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListClustersRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListClustersRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Cluster() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Cluster() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Cluster() + ), + ]; + client.innerApiCalls.listClusters = stubSimpleCall(expectedResponse); + const [response] = await client.listClusters(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listClusters as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listClusters as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listClusters without error using callback', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListClustersRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListClustersRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Cluster() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Cluster() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Cluster() + ), + ]; + client.innerApiCalls.listClusters = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listClusters( + request, + ( + err?: Error | null, + result?: protos.google.cloud.redis.cluster.v1beta1.ICluster[] | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listClusters as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listClusters as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listClusters with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListClustersRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListClustersRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listClusters = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(client.listClusters(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listClusters as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listClusters as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listClustersStream without error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListClustersRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListClustersRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Cluster() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Cluster() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Cluster() + ), + ]; + client.descriptors.page.listClusters.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listClustersStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.redis.cluster.v1beta1.Cluster[] = + []; + stream.on( + 'data', + (response: protos.google.cloud.redis.cluster.v1beta1.Cluster) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + const responses = await promise; + assert.deepStrictEqual(responses, expectedResponse); + assert( + (client.descriptors.page.listClusters.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listClusters, request) + ); + assert( + (client.descriptors.page.listClusters.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams) + ); + }); + + it('invokes listClustersStream with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListClustersRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListClustersRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedError = new Error('expected'); + client.descriptors.page.listClusters.createStream = stubPageStreamingCall( + undefined, + expectedError + ); + const stream = client.listClustersStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.redis.cluster.v1beta1.Cluster[] = + []; + stream.on( + 'data', + (response: protos.google.cloud.redis.cluster.v1beta1.Cluster) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert( + (client.descriptors.page.listClusters.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listClusters, request) + ); + assert( + (client.descriptors.page.listClusters.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams) + ); + }); + + it('uses async iteration with listClusters without error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListClustersRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListClustersRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Cluster() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Cluster() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Cluster() + ), + ]; + client.descriptors.page.listClusters.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.redis.cluster.v1beta1.ICluster[] = + []; + const iterable = client.listClustersAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.descriptors.page.listClusters.asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + assert( + (client.descriptors.page.listClusters.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams) + ); + }); + + it('uses async iteration with listClusters with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListClustersRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListClustersRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedError = new Error('expected'); + client.descriptors.page.listClusters.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listClustersAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.redis.cluster.v1beta1.ICluster[] = + []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.descriptors.page.listClusters.asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + assert( + (client.descriptors.page.listClusters.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams) + ); + }); + }); + + describe('listBackupCollections', () => { + it('invokes listBackupCollections without error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.BackupCollection() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.BackupCollection() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.BackupCollection() + ), + ]; + client.innerApiCalls.listBackupCollections = + stubSimpleCall(expectedResponse); + const [response] = await client.listBackupCollections(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listBackupCollections as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBackupCollections as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listBackupCollections without error using callback', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.BackupCollection() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.BackupCollection() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.BackupCollection() + ), + ]; + client.innerApiCalls.listBackupCollections = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listBackupCollections( + request, + ( + err?: Error | null, + result?: + | protos.google.cloud.redis.cluster.v1beta1.IBackupCollection[] + | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listBackupCollections as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBackupCollections as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listBackupCollections with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listBackupCollections = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects( + client.listBackupCollections(request), + expectedError + ); + const actualRequest = ( + client.innerApiCalls.listBackupCollections as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBackupCollections as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listBackupCollectionsStream without error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.BackupCollection() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.BackupCollection() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.BackupCollection() + ), + ]; + client.descriptors.page.listBackupCollections.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listBackupCollectionsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.redis.cluster.v1beta1.BackupCollection[] = + []; + stream.on( + 'data', + ( + response: protos.google.cloud.redis.cluster.v1beta1.BackupCollection + ) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + const responses = await promise; + assert.deepStrictEqual(responses, expectedResponse); + assert( + ( + client.descriptors.page.listBackupCollections + .createStream as SinonStub + ) + .getCall(0) + .calledWith(client.innerApiCalls.listBackupCollections, request) + ); + assert( + ( + client.descriptors.page.listBackupCollections + .createStream as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) + ); + }); + + it('invokes listBackupCollectionsStream with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedError = new Error('expected'); + client.descriptors.page.listBackupCollections.createStream = + stubPageStreamingCall(undefined, expectedError); + const stream = client.listBackupCollectionsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.redis.cluster.v1beta1.BackupCollection[] = + []; + stream.on( + 'data', + ( + response: protos.google.cloud.redis.cluster.v1beta1.BackupCollection + ) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert( + ( + client.descriptors.page.listBackupCollections + .createStream as SinonStub + ) + .getCall(0) + .calledWith(client.innerApiCalls.listBackupCollections, request) + ); + assert( + ( + client.descriptors.page.listBackupCollections + .createStream as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) + ); + }); + + it('uses async iteration with listBackupCollections without error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.BackupCollection() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.BackupCollection() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.BackupCollection() + ), + ]; + client.descriptors.page.listBackupCollections.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.redis.cluster.v1beta1.IBackupCollection[] = + []; + const iterable = client.listBackupCollectionsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.descriptors.page.listBackupCollections + .asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + assert( + ( + client.descriptors.page.listBackupCollections + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) + ); + }); + + it('uses async iteration with listBackupCollections with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListBackupCollectionsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedError = new Error('expected'); + client.descriptors.page.listBackupCollections.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listBackupCollectionsAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.redis.cluster.v1beta1.IBackupCollection[] = + []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.descriptors.page.listBackupCollections + .asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + assert( + ( + client.descriptors.page.listBackupCollections + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) + ); + }); + }); + + describe('listBackups', () => { + it('invokes listBackups without error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListBackupsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListBackupsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Backup() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Backup() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Backup() + ), + ]; + client.innerApiCalls.listBackups = stubSimpleCall(expectedResponse); + const [response] = await client.listBackups(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listBackups without error using callback', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListBackupsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListBackupsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Backup() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Backup() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Backup() + ), + ]; + client.innerApiCalls.listBackups = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listBackups( + request, + ( + err?: Error | null, + result?: protos.google.cloud.redis.cluster.v1beta1.IBackup[] | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listBackups with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListBackupsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListBackupsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listBackups = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(client.listBackups(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listBackupsStream without error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListBackupsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListBackupsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Backup() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Backup() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Backup() + ), + ]; + client.descriptors.page.listBackups.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listBackupsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.redis.cluster.v1beta1.Backup[] = + []; + stream.on( + 'data', + (response: protos.google.cloud.redis.cluster.v1beta1.Backup) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + const responses = await promise; + assert.deepStrictEqual(responses, expectedResponse); + assert( + (client.descriptors.page.listBackups.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listBackups, request) + ); + assert( + (client.descriptors.page.listBackups.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams) + ); + }); + + it('invokes listBackupsStream with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListBackupsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListBackupsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedError = new Error('expected'); + client.descriptors.page.listBackups.createStream = stubPageStreamingCall( + undefined, + expectedError + ); + const stream = client.listBackupsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.redis.cluster.v1beta1.Backup[] = + []; + stream.on( + 'data', + (response: protos.google.cloud.redis.cluster.v1beta1.Backup) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert( + (client.descriptors.page.listBackups.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listBackups, request) + ); + assert( + (client.descriptors.page.listBackups.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams) + ); + }); + + it('uses async iteration with listBackups without error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListBackupsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListBackupsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Backup() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Backup() + ), + generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.Backup() + ), + ]; + client.descriptors.page.listBackups.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.redis.cluster.v1beta1.IBackup[] = []; + const iterable = client.listBackupsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + (client.descriptors.page.listBackups.asyncIterate as SinonStub).getCall( + 0 + ).args[1], + request + ); + assert( + (client.descriptors.page.listBackups.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams) + ); + }); + + it('uses async iteration with listBackups with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.redis.cluster.v1beta1.ListBackupsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.redis.cluster.v1beta1.ListBackupsRequest', + ['parent'] + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; + const expectedError = new Error('expected'); + client.descriptors.page.listBackups.asyncIterate = stubAsyncIterationCall( + undefined, + expectedError + ); + const iterable = client.listBackupsAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.redis.cluster.v1beta1.IBackup[] = + []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + (client.descriptors.page.listBackups.asyncIterate as SinonStub).getCall( + 0 + ).args[1], + request + ); + assert( + (client.descriptors.page.listBackups.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams) + ); + }); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location() + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + it('invokes getLocation without error using callback', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location() + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); + }); + it('invokes getLocation with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location() + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location() + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location() + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) + ); + }); + }); + describe('getOperation', () => { + it('invokes getOperation without error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest() + ); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation() + ); + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const response = await client.getOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.getOperation as SinonStub) + .getCall(0) + .calledWith(request) + ); + }); + it('invokes getOperation without error using callback', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest() + ); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation() + ); + client.operationsClient.getOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient.getOperation( + request, + undefined, + ( + err?: Error | null, + result?: operationsProtos.google.longrunning.Operation | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + it('invokes getOperation with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest() + ); + const expectedError = new Error('expected'); + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(async () => { + await client.getOperation(request); + }, expectedError); + assert( + (client.operationsClient.getOperation as SinonStub) + .getCall(0) + .calledWith(request) + ); + }); + }); + describe('cancelOperation', () => { + it('invokes cancelOperation without error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest() + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty() + ); + client.operationsClient.cancelOperation = + stubSimpleCall(expectedResponse); + const response = await client.cancelOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.cancelOperation as SinonStub) + .getCall(0) + .calledWith(request) + ); + }); + it('invokes cancelOperation without error using callback', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest() + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty() + ); + client.operationsClient.cancelOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient.cancelOperation( + request, + undefined, + ( + err?: Error | null, + result?: protos.google.protobuf.Empty | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.cancelOperation as SinonStub).getCall(0)); + }); + it('invokes cancelOperation with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest() + ); + const expectedError = new Error('expected'); + client.operationsClient.cancelOperation = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(async () => { + await client.cancelOperation(request); + }, expectedError); + assert( + (client.operationsClient.cancelOperation as SinonStub) + .getCall(0) + .calledWith(request) + ); + }); + }); + describe('deleteOperation', () => { + it('invokes deleteOperation without error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest() + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty() + ); + client.operationsClient.deleteOperation = + stubSimpleCall(expectedResponse); + const response = await client.deleteOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.deleteOperation as SinonStub) + .getCall(0) + .calledWith(request) + ); + }); + it('invokes deleteOperation without error using callback', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest() + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty() + ); + client.operationsClient.deleteOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient.deleteOperation( + request, + undefined, + ( + err?: Error | null, + result?: protos.google.protobuf.Empty | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.deleteOperation as SinonStub).getCall(0)); + }); + it('invokes deleteOperation with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest() + ); + const expectedError = new Error('expected'); + client.operationsClient.deleteOperation = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(async () => { + await client.deleteOperation(request); + }, expectedError); + assert( + (client.operationsClient.deleteOperation as SinonStub) + .getCall(0) + .calledWith(request) + ); + }); + }); + describe('listOperationsAsync', () => { + it('uses async iteration with listOperations without error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsRequest() + ); + const expectedResponse = [ + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse() + ), + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse() + ), + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse() + ), + ]; + client.operationsClient.descriptor.listOperations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: operationsProtos.google.longrunning.ListOperationsResponse[] = + []; + const iterable = client.operationsClient.listOperationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.operationsClient.descriptor.listOperations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + }); + it('uses async iteration with listOperations with error', async () => { + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsRequest() + ); + const expectedError = new Error('expected'); + client.operationsClient.descriptor.listOperations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.operationsClient.listOperationsAsync(request); + await assert.rejects(async () => { + const responses: operationsProtos.google.longrunning.ListOperationsResponse[] = + []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.operationsClient.descriptor.listOperations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + }); + }); + + describe('Path templates', () => { + describe('backup', () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + backup_collection: 'backupCollectionValue', + backup: 'backupValue', + }; + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('backupPath', () => { + const result = client.backupPath( + 'projectValue', + 'locationValue', + 'backupCollectionValue', + 'backupValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromBackupName', () => { + const result = client.matchLocationFromBackupName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchBackupCollectionFromBackupName', () => { + const result = client.matchBackupCollectionFromBackupName(fakePath); + assert.strictEqual(result, 'backupCollectionValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('backupCollection', () => { + const fakePath = '/rendered/path/backupCollection'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + backup_collection: 'backupCollectionValue', + }; + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.backupCollectionPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupCollectionPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('backupCollectionPath', () => { + const result = client.backupCollectionPath( + 'projectValue', + 'locationValue', + 'backupCollectionValue' + ); + assert.strictEqual(result, fakePath); + assert( + ( + client.pathTemplates.backupCollectionPathTemplate + .render as SinonStub + ) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromBackupCollectionName', () => { + const result = client.matchProjectFromBackupCollectionName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupCollectionPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromBackupCollectionName', () => { + const result = client.matchLocationFromBackupCollectionName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.backupCollectionPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchBackupCollectionFromBackupCollectionName', () => { + const result = + client.matchBackupCollectionFromBackupCollectionName(fakePath); + assert.strictEqual(result, 'backupCollectionValue'); + assert( + (client.pathTemplates.backupCollectionPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('certificateAuthority', () => { + const fakePath = '/rendered/path/certificateAuthority'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + cluster: 'clusterValue', + }; + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.certificateAuthorityPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.certificateAuthorityPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('certificateAuthorityPath', () => { + const result = client.certificateAuthorityPath( + 'projectValue', + 'locationValue', + 'clusterValue' + ); + assert.strictEqual(result, fakePath); + assert( + ( + client.pathTemplates.certificateAuthorityPathTemplate + .render as SinonStub + ) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromCertificateAuthorityName', () => { + const result = + client.matchProjectFromCertificateAuthorityName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + ( + client.pathTemplates.certificateAuthorityPathTemplate + .match as SinonStub + ) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromCertificateAuthorityName', () => { + const result = + client.matchLocationFromCertificateAuthorityName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + ( + client.pathTemplates.certificateAuthorityPathTemplate + .match as SinonStub + ) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchClusterFromCertificateAuthorityName', () => { + const result = + client.matchClusterFromCertificateAuthorityName(fakePath); + assert.strictEqual(result, 'clusterValue'); + assert( + ( + client.pathTemplates.certificateAuthorityPathTemplate + .match as SinonStub + ) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('cluster', () => { + const fakePath = '/rendered/path/cluster'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + cluster: 'clusterValue', + }; + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.clusterPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.clusterPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('clusterPath', () => { + const result = client.clusterPath( + 'projectValue', + 'locationValue', + 'clusterValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.clusterPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromClusterName', () => { + const result = client.matchProjectFromClusterName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.clusterPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromClusterName', () => { + const result = client.matchLocationFromClusterName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.clusterPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchClusterFromClusterName', () => { + const result = client.matchClusterFromClusterName(fakePath); + assert.strictEqual(result, 'clusterValue'); + assert( + (client.pathTemplates.clusterPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); }); - it('uses async iteration with listOperations with error', async () => { + + describe('cryptoKey', () => { + const fakePath = '/rendered/path/cryptoKey'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + key_ring: 'keyRingValue', + crypto_key: 'cryptoKeyValue', + }; const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.descriptor.listOperations.asyncIterate = - stubAsyncIterationCall(undefined, expectedError); - const iterable = client.operationsClient.listOperationsAsync(request); - await assert.rejects(async () => { - const responses: operationsProtos.google.longrunning.ListOperationsResponse[] = - []; - for await (const resource of iterable) { - responses.push(resource!); - } + client.pathTemplates.cryptoKeyPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.cryptoKeyPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('cryptoKeyPath', () => { + const result = client.cryptoKeyPath( + 'projectValue', + 'locationValue', + 'keyRingValue', + 'cryptoKeyValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.cryptoKeyPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromCryptoKeyName', () => { + const result = client.matchProjectFromCryptoKeyName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.cryptoKeyPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromCryptoKeyName', () => { + const result = client.matchLocationFromCryptoKeyName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.cryptoKeyPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchKeyRingFromCryptoKeyName', () => { + const result = client.matchKeyRingFromCryptoKeyName(fakePath); + assert.strictEqual(result, 'keyRingValue'); + assert( + (client.pathTemplates.cryptoKeyPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchCryptoKeyFromCryptoKeyName', () => { + const result = client.matchCryptoKeyFromCryptoKeyName(fakePath); + assert.strictEqual(result, 'cryptoKeyValue'); + assert( + (client.pathTemplates.cryptoKeyPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); }); - assert.deepStrictEqual( - ( - client.operationsClient.descriptor.listOperations - .asyncIterate as SinonStub - ).getCall(0).args[1], - request - ); }); - }); - describe('Path templates', () => { - describe('certificateAuthority', () => { - const fakePath = '/rendered/path/certificateAuthority'; + describe('cryptoKeyVersion', () => { + const fakePath = '/rendered/path/cryptoKeyVersion'; const expectedParameters = { project: 'projectValue', location: 'locationValue', - cluster: 'clusterValue', + key_ring: 'keyRingValue', + crypto_key: 'cryptoKeyValue', + crypto_key_version: 'cryptoKeyVersionValue', }; const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ @@ -2105,23 +4242,25 @@ describe('v1beta1.CloudRedisClusterClient', () => { projectId: 'bogus', }); client.initialize(); - client.pathTemplates.certificateAuthorityPathTemplate.render = sinon + client.pathTemplates.cryptoKeyVersionPathTemplate.render = sinon .stub() .returns(fakePath); - client.pathTemplates.certificateAuthorityPathTemplate.match = sinon + client.pathTemplates.cryptoKeyVersionPathTemplate.match = sinon .stub() .returns(expectedParameters); - it('certificateAuthorityPath', () => { - const result = client.certificateAuthorityPath( + it('cryptoKeyVersionPath', () => { + const result = client.cryptoKeyVersionPath( 'projectValue', 'locationValue', - 'clusterValue' + 'keyRingValue', + 'cryptoKeyValue', + 'cryptoKeyVersionValue' ); assert.strictEqual(result, fakePath); assert( ( - client.pathTemplates.certificateAuthorityPathTemplate + client.pathTemplates.cryptoKeyVersionPathTemplate .render as SinonStub ) .getCall(-1) @@ -2129,55 +4268,64 @@ describe('v1beta1.CloudRedisClusterClient', () => { ); }); - it('matchProjectFromCertificateAuthorityName', () => { - const result = - client.matchProjectFromCertificateAuthorityName(fakePath); + it('matchProjectFromCryptoKeyVersionName', () => { + const result = client.matchProjectFromCryptoKeyVersionName(fakePath); assert.strictEqual(result, 'projectValue'); assert( - ( - client.pathTemplates.certificateAuthorityPathTemplate - .match as SinonStub - ) + (client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); - it('matchLocationFromCertificateAuthorityName', () => { - const result = - client.matchLocationFromCertificateAuthorityName(fakePath); + it('matchLocationFromCryptoKeyVersionName', () => { + const result = client.matchLocationFromCryptoKeyVersionName(fakePath); assert.strictEqual(result, 'locationValue'); assert( - ( - client.pathTemplates.certificateAuthorityPathTemplate - .match as SinonStub - ) + (client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); - it('matchClusterFromCertificateAuthorityName', () => { + it('matchKeyRingFromCryptoKeyVersionName', () => { + const result = client.matchKeyRingFromCryptoKeyVersionName(fakePath); + assert.strictEqual(result, 'keyRingValue'); + assert( + (client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchCryptoKeyFromCryptoKeyVersionName', () => { + const result = client.matchCryptoKeyFromCryptoKeyVersionName(fakePath); + assert.strictEqual(result, 'cryptoKeyValue'); + assert( + (client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchCryptoKeyVersionFromCryptoKeyVersionName', () => { const result = - client.matchClusterFromCertificateAuthorityName(fakePath); - assert.strictEqual(result, 'clusterValue'); + client.matchCryptoKeyVersionFromCryptoKeyVersionName(fakePath); + assert.strictEqual(result, 'cryptoKeyVersionValue'); assert( - ( - client.pathTemplates.certificateAuthorityPathTemplate - .match as SinonStub - ) + (client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); }); - describe('cluster', () => { - const fakePath = '/rendered/path/cluster'; + describe('forwardingRule', () => { + const fakePath = '/rendered/path/forwardingRule'; const expectedParameters = { project: 'projectValue', - location: 'locationValue', - cluster: 'clusterValue', + region: 'regionValue', + forwarding_rule: 'forwardingRuleValue', }; const client = new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ @@ -2185,52 +4333,53 @@ describe('v1beta1.CloudRedisClusterClient', () => { projectId: 'bogus', }); client.initialize(); - client.pathTemplates.clusterPathTemplate.render = sinon + client.pathTemplates.forwardingRulePathTemplate.render = sinon .stub() .returns(fakePath); - client.pathTemplates.clusterPathTemplate.match = sinon + client.pathTemplates.forwardingRulePathTemplate.match = sinon .stub() .returns(expectedParameters); - it('clusterPath', () => { - const result = client.clusterPath( + it('forwardingRulePath', () => { + const result = client.forwardingRulePath( 'projectValue', - 'locationValue', - 'clusterValue' + 'regionValue', + 'forwardingRuleValue' ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates.clusterPathTemplate.render as SinonStub) + (client.pathTemplates.forwardingRulePathTemplate.render as SinonStub) .getCall(-1) .calledWith(expectedParameters) ); }); - it('matchProjectFromClusterName', () => { - const result = client.matchProjectFromClusterName(fakePath); + it('matchProjectFromForwardingRuleName', () => { + const result = client.matchProjectFromForwardingRuleName(fakePath); assert.strictEqual(result, 'projectValue'); assert( - (client.pathTemplates.clusterPathTemplate.match as SinonStub) + (client.pathTemplates.forwardingRulePathTemplate.match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); - it('matchLocationFromClusterName', () => { - const result = client.matchLocationFromClusterName(fakePath); - assert.strictEqual(result, 'locationValue'); + it('matchRegionFromForwardingRuleName', () => { + const result = client.matchRegionFromForwardingRuleName(fakePath); + assert.strictEqual(result, 'regionValue'); assert( - (client.pathTemplates.clusterPathTemplate.match as SinonStub) + (client.pathTemplates.forwardingRulePathTemplate.match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); - it('matchClusterFromClusterName', () => { - const result = client.matchClusterFromClusterName(fakePath); - assert.strictEqual(result, 'clusterValue'); + it('matchForwardingRuleFromForwardingRuleName', () => { + const result = + client.matchForwardingRuleFromForwardingRuleName(fakePath); + assert.strictEqual(result, 'forwardingRuleValue'); assert( - (client.pathTemplates.clusterPathTemplate.match as SinonStub) + (client.pathTemplates.forwardingRulePathTemplate.match as SinonStub) .getCall(-1) .calledWith(fakePath) ); @@ -2286,5 +4435,172 @@ describe('v1beta1.CloudRedisClusterClient', () => { ); }); }); + + describe('network', () => { + const fakePath = '/rendered/path/network'; + const expectedParameters = { + project: 'projectValue', + network: 'networkValue', + }; + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.networkPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.networkPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('networkPath', () => { + const result = client.networkPath('projectValue', 'networkValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.networkPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromNetworkName', () => { + const result = client.matchProjectFromNetworkName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.networkPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchNetworkFromNetworkName', () => { + const result = client.matchNetworkFromNetworkName(fakePath); + assert.strictEqual(result, 'networkValue'); + assert( + (client.pathTemplates.networkPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('project', () => { + const fakePath = '/rendered/path/project'; + const expectedParameters = { + project: 'projectValue', + }; + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.projectPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.projectPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('projectPath', () => { + const result = client.projectPath('projectValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.projectPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromProjectName', () => { + const result = client.matchProjectFromProjectName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.projectPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('serviceAttachment', () => { + const fakePath = '/rendered/path/serviceAttachment'; + const expectedParameters = { + project: 'projectValue', + region: 'regionValue', + service_attachment: 'serviceAttachmentValue', + }; + const client = + new cloudredisclusterModule.v1beta1.CloudRedisClusterClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.serviceAttachmentPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.serviceAttachmentPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('serviceAttachmentPath', () => { + const result = client.serviceAttachmentPath( + 'projectValue', + 'regionValue', + 'serviceAttachmentValue' + ); + assert.strictEqual(result, fakePath); + assert( + ( + client.pathTemplates.serviceAttachmentPathTemplate + .render as SinonStub + ) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromServiceAttachmentName', () => { + const result = client.matchProjectFromServiceAttachmentName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + ( + client.pathTemplates.serviceAttachmentPathTemplate + .match as SinonStub + ) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRegionFromServiceAttachmentName', () => { + const result = client.matchRegionFromServiceAttachmentName(fakePath); + assert.strictEqual(result, 'regionValue'); + assert( + ( + client.pathTemplates.serviceAttachmentPathTemplate + .match as SinonStub + ) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchServiceAttachmentFromServiceAttachmentName', () => { + const result = + client.matchServiceAttachmentFromServiceAttachmentName(fakePath); + assert.strictEqual(result, 'serviceAttachmentValue'); + assert( + ( + client.pathTemplates.serviceAttachmentPathTemplate + .match as SinonStub + ) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); }); });