Google Cloud Memorystore for Redis API . projects . locations . clusters

Instance Methods

close()

Close httplib2 connections.

create(parent, body=None, clusterId=None, requestId=None, x__xgafv=None)

Creates a Redis cluster based on the specified properties. The creation is executed asynchronously and callers may check the returned operation to track its progress. Once the operation is completed the Redis cluster will be fully functional. The completed longrunning.Operation will contain the new cluster object in the response field. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.

delete(name, requestId=None, x__xgafv=None)

Deletes a specific Redis cluster. Cluster stops serving and data is deleted.

get(name, x__xgafv=None)

Gets the details of a specific Redis cluster.

getCertificateAuthority(name, x__xgafv=None)

Gets the details of certificate authority information for Redis cluster.

list(parent, pageSize=None, pageToken=None, x__xgafv=None)

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.

list_next()

Retrieves the next page of results.

patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)

Updates the metadata and configuration of a specific Redis cluster. Completed longrunning.Operation will contain the new cluster object in the response field. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.

rescheduleClusterMaintenance(name, body=None, x__xgafv=None)

Reschedules upcoming maintenance event.

Method Details

close()
Close httplib2 connections.
create(parent, body=None, clusterId=None, requestId=None, x__xgafv=None)
Creates a Redis cluster based on the specified properties. The creation is executed asynchronously and callers may check the returned operation to track its progress. Once the operation is completed the Redis cluster will be fully functional. The completed longrunning.Operation will contain the new cluster object in the response field. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.

Args:
  parent: string, 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. (required)
  body: object, The request body.
    The object takes the form of:

{ # A cluster instance.
  "authorizationMode": "A String", # Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster.
  "clusterEndpoints": [ # Optional. A list of cluster enpoints.
    { # 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.
      "connections": [ # A group of PSC connections. They are created in the same VPC network, one for each service attachment in the cluster.
        { # Detailed information of each PSC connection.
          "pscConnection": { # Details of consumer resources in a PSC connection. # Detailed information of a PSC connection that is created by the customer who owns the cluster.
            "address": "A String", # Required. The IP allocated on the consumer network for the PSC forwarding rule.
            "connectionType": "A String", # Output only. Type of the PSC connection.
            "forwardingRule": "A String", # Required. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.
            "network": "A String", # Required. The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}.
            "projectId": "A String", # Optional. Project ID of the consumer project where the forwarding rule is created in.
            "pscConnectionId": "A String", # Required. The PSC connection id of the forwarding rule connected to the service attachment.
            "pscConnectionStatus": "A String", # 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.
            "serviceAttachment": "A String", # 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}.
          },
        },
      ],
    },
  ],
  "createTime": "A String", # Output only. The timestamp associated with the cluster creation request.
  "crossClusterReplicationConfig": { # Cross cluster replication config. # Optional. Cross cluster replication config.
    "clusterRole": "A String", # The role of the cluster in cross cluster replication.
    "membership": { # An output only view of all the member clusters participating in the cross cluster replication. # 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.
      "primaryCluster": { # Details of the remote cluster associated with this cluster in a cross cluster replication setup. # Output only. The primary cluster that acts as the source of replication for the secondary clusters.
        "cluster": "A String", # The full resource path of the remote cluster in the format: projects//locations//clusters/
        "uid": "A String", # Output only. The unique identifier of the remote cluster.
      },
      "secondaryClusters": [ # Output only. The list of secondary clusters replicating from the primary cluster.
        { # Details of the remote cluster associated with this cluster in a cross cluster replication setup.
          "cluster": "A String", # The full resource path of the remote cluster in the format: projects//locations//clusters/
          "uid": "A String", # Output only. The unique identifier of the remote cluster.
        },
      ],
    },
    "primaryCluster": { # Details of the remote cluster associated with this cluster in a cross cluster replication setup. # 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.
      "cluster": "A String", # The full resource path of the remote cluster in the format: projects//locations//clusters/
      "uid": "A String", # Output only. The unique identifier of the remote cluster.
    },
    "secondaryClusters": [ # List of secondary clusters that are replicating from this primary cluster. This field is only set for a primary cluster.
      { # Details of the remote cluster associated with this cluster in a cross cluster replication setup.
        "cluster": "A String", # The full resource path of the remote cluster in the format: projects//locations//clusters/
        "uid": "A String", # Output only. The unique identifier of the remote cluster.
      },
    ],
    "updateTime": "A String", # Output only. The last time cross cluster replication config was updated.
  },
  "deletionProtectionEnabled": True or False, # Optional. The delete operation will fail when the value is set to true.
  "discoveryEndpoints": [ # Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one discovery endpoint is supported.
    { # Endpoints on each network, for Redis clients to connect to the cluster.
      "address": "A String", # Output only. Address of the exposed Redis endpoint used by clients to connect to the service. The address could be either IP or hostname.
      "port": 42, # Output only. The port number of the exposed Redis endpoint.
      "pscConfig": { # Output only. Customer configuration for where the endpoint is created and accessed from.
        "network": "A String", # Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}.
      },
    },
  ],
  "maintenancePolicy": { # Maintenance policy per cluster. # Optional. ClusterMaintenancePolicy determines when to allow or deny updates.
    "createTime": "A String", # Output only. The time when the policy was created i.e. Maintenance Window or Deny Period was assigned.
    "updateTime": "A String", # Output only. The time when the policy was updated i.e. Maintenance Window or Deny Period was updated.
    "weeklyMaintenanceWindow": [ # 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.
      { # Time window specified for weekly operations.
        "day": "A String", # Allows to define schedule that runs specified day of the week.
        "startTime": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Start time of the window in UTC.
          "hours": 42, # Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          "minutes": 42, # Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          "nanos": 42, # Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
          "seconds": 42, # Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
        },
      },
    ],
  },
  "maintenanceSchedule": { # Upcoming maitenance schedule. # Output only. ClusterMaintenanceSchedule Output only Published maintenance schedule.
    "endTime": "A String", # Output only. The end time of any upcoming scheduled maintenance for this instance.
    "startTime": "A String", # Output only. The start time of any upcoming scheduled maintenance for this instance.
  },
  "name": "A String", # 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}`
  "nodeType": "A String", # Optional. The type of a redis node in the cluster. NodeType determines the underlying machine-type of a redis node.
  "persistenceConfig": { # Configuration of the persistence functionality. # Optional. Persistence config (RDB, AOF) for the cluster.
    "aofConfig": { # Configuration of the AOF based persistence. # Optional. AOF configuration. This field will be ignored if mode is not AOF.
      "appendFsync": "A String", # Optional. fsync configuration.
    },
    "mode": "A String", # Optional. The mode of persistence.
    "rdbConfig": { # Configuration of the RDB based persistence. # Optional. RDB configuration. This field will be ignored if mode is not RDB.
      "rdbSnapshotPeriod": "A String", # Optional. Period between RDB snapshots.
      "rdbSnapshotStartTime": "A String", # Optional. The time that the first snapshot was/will be attempted, and to which future snapshots will be aligned. If not provided, the current time will be used.
    },
  },
  "preciseSizeGb": 3.14, # Output only. Precise value of redis memory size in GB for the entire cluster.
  "pscConfigs": [ # 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.
    {
      "network": "A String", # Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}.
    },
  ],
  "pscConnections": [ # Output only. The list of PSC connections that are auto-created through service connectivity automation.
    { # Details of consumer resources in a PSC connection.
      "address": "A String", # Required. The IP allocated on the consumer network for the PSC forwarding rule.
      "connectionType": "A String", # Output only. Type of the PSC connection.
      "forwardingRule": "A String", # Required. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.
      "network": "A String", # Required. The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}.
      "projectId": "A String", # Optional. Project ID of the consumer project where the forwarding rule is created in.
      "pscConnectionId": "A String", # Required. The PSC connection id of the forwarding rule connected to the service attachment.
      "pscConnectionStatus": "A String", # 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.
      "serviceAttachment": "A String", # 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}.
    },
  ],
  "pscServiceAttachments": [ # Output only. Service attachment details to configure Psc connections
    { # Configuration of a service attachment of the cluster, for creating PSC connections.
      "connectionType": "A String", # Output only. Type of a PSC connection targeting this service attachment.
      "serviceAttachment": "A String", # Output only. Service attachment URI which your self-created PscConnection should use as target
    },
  ],
  "redisConfigs": { # Optional. Key/Value pairs of customer overrides for mutable Redis Configs
    "a_key": "A String",
  },
  "replicaCount": 42, # Optional. The number of replica nodes per shard.
  "shardCount": 42, # Optional. Number of shards for the Redis cluster.
  "sizeGb": 42, # Output only. Redis memory size in GB for the entire cluster rounded up to the next integer.
  "state": "A String", # Output only. The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED
  "stateInfo": { # Represents additional information about the state of the cluster. # Output only. Additional information about the current state of the cluster.
    "updateInfo": { # Represents information about an updating cluster. # Describes ongoing update on the cluster when cluster state is UPDATING.
      "targetReplicaCount": 42, # Target number of replica nodes per shard.
      "targetShardCount": 42, # Target number of shards for redis cluster
    },
  },
  "transitEncryptionMode": "A String", # Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster.
  "uid": "A String", # Output only. System assigned, unique identifier for the cluster.
  "zoneDistributionConfig": { # Zone distribution config for allocation of cluster resources. # Optional. This config will be used to determine how the customer wants us to distribute cluster resources within the region.
    "mode": "A String", # Optional. The mode of zone distribution. Defaults to MULTI_ZONE, when not specified.
    "zone": "A String", # Optional. When SINGLE ZONE distribution is selected, zone field would be used to allocate all resources in that zone. This is not applicable to MULTI_ZONE, and would be ignored for MULTI_ZONE clusters.
  },
}

  clusterId: string, Required. The logical name of the Redis cluster in the customer project with the following restrictions: * Must contain only lowercase letters, numbers, and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the customer project / location
  requestId: string, Idempotent request UUID.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # { `createTime`: The time the operation was created. `endTime`: The time the operation finished running. `target`: Server-defined resource path for the target of the operation. `verb`: Name of the verb executed by the operation. `statusDetail`: Human-readable status of the operation, if any. `cancelRequested`: Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`. `apiVersion`: API version used to start the operation. }
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
delete(name, requestId=None, x__xgafv=None)
Deletes a specific Redis cluster. Cluster stops serving and data is deleted.

Args:
  name: string, 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. (required)
  requestId: string, Idempotent request UUID.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # { `createTime`: The time the operation was created. `endTime`: The time the operation finished running. `target`: Server-defined resource path for the target of the operation. `verb`: Name of the verb executed by the operation. `statusDetail`: Human-readable status of the operation, if any. `cancelRequested`: Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`. `apiVersion`: API version used to start the operation. }
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
get(name, x__xgafv=None)
Gets the details of a specific Redis cluster.

Args:
  name: string, 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. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A cluster instance.
  "authorizationMode": "A String", # Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster.
  "clusterEndpoints": [ # Optional. A list of cluster enpoints.
    { # 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.
      "connections": [ # A group of PSC connections. They are created in the same VPC network, one for each service attachment in the cluster.
        { # Detailed information of each PSC connection.
          "pscConnection": { # Details of consumer resources in a PSC connection. # Detailed information of a PSC connection that is created by the customer who owns the cluster.
            "address": "A String", # Required. The IP allocated on the consumer network for the PSC forwarding rule.
            "connectionType": "A String", # Output only. Type of the PSC connection.
            "forwardingRule": "A String", # Required. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.
            "network": "A String", # Required. The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}.
            "projectId": "A String", # Optional. Project ID of the consumer project where the forwarding rule is created in.
            "pscConnectionId": "A String", # Required. The PSC connection id of the forwarding rule connected to the service attachment.
            "pscConnectionStatus": "A String", # 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.
            "serviceAttachment": "A String", # 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}.
          },
        },
      ],
    },
  ],
  "createTime": "A String", # Output only. The timestamp associated with the cluster creation request.
  "crossClusterReplicationConfig": { # Cross cluster replication config. # Optional. Cross cluster replication config.
    "clusterRole": "A String", # The role of the cluster in cross cluster replication.
    "membership": { # An output only view of all the member clusters participating in the cross cluster replication. # 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.
      "primaryCluster": { # Details of the remote cluster associated with this cluster in a cross cluster replication setup. # Output only. The primary cluster that acts as the source of replication for the secondary clusters.
        "cluster": "A String", # The full resource path of the remote cluster in the format: projects//locations//clusters/
        "uid": "A String", # Output only. The unique identifier of the remote cluster.
      },
      "secondaryClusters": [ # Output only. The list of secondary clusters replicating from the primary cluster.
        { # Details of the remote cluster associated with this cluster in a cross cluster replication setup.
          "cluster": "A String", # The full resource path of the remote cluster in the format: projects//locations//clusters/
          "uid": "A String", # Output only. The unique identifier of the remote cluster.
        },
      ],
    },
    "primaryCluster": { # Details of the remote cluster associated with this cluster in a cross cluster replication setup. # 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.
      "cluster": "A String", # The full resource path of the remote cluster in the format: projects//locations//clusters/
      "uid": "A String", # Output only. The unique identifier of the remote cluster.
    },
    "secondaryClusters": [ # List of secondary clusters that are replicating from this primary cluster. This field is only set for a primary cluster.
      { # Details of the remote cluster associated with this cluster in a cross cluster replication setup.
        "cluster": "A String", # The full resource path of the remote cluster in the format: projects//locations//clusters/
        "uid": "A String", # Output only. The unique identifier of the remote cluster.
      },
    ],
    "updateTime": "A String", # Output only. The last time cross cluster replication config was updated.
  },
  "deletionProtectionEnabled": True or False, # Optional. The delete operation will fail when the value is set to true.
  "discoveryEndpoints": [ # Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one discovery endpoint is supported.
    { # Endpoints on each network, for Redis clients to connect to the cluster.
      "address": "A String", # Output only. Address of the exposed Redis endpoint used by clients to connect to the service. The address could be either IP or hostname.
      "port": 42, # Output only. The port number of the exposed Redis endpoint.
      "pscConfig": { # Output only. Customer configuration for where the endpoint is created and accessed from.
        "network": "A String", # Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}.
      },
    },
  ],
  "maintenancePolicy": { # Maintenance policy per cluster. # Optional. ClusterMaintenancePolicy determines when to allow or deny updates.
    "createTime": "A String", # Output only. The time when the policy was created i.e. Maintenance Window or Deny Period was assigned.
    "updateTime": "A String", # Output only. The time when the policy was updated i.e. Maintenance Window or Deny Period was updated.
    "weeklyMaintenanceWindow": [ # 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.
      { # Time window specified for weekly operations.
        "day": "A String", # Allows to define schedule that runs specified day of the week.
        "startTime": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Start time of the window in UTC.
          "hours": 42, # Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          "minutes": 42, # Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          "nanos": 42, # Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
          "seconds": 42, # Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
        },
      },
    ],
  },
  "maintenanceSchedule": { # Upcoming maitenance schedule. # Output only. ClusterMaintenanceSchedule Output only Published maintenance schedule.
    "endTime": "A String", # Output only. The end time of any upcoming scheduled maintenance for this instance.
    "startTime": "A String", # Output only. The start time of any upcoming scheduled maintenance for this instance.
  },
  "name": "A String", # 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}`
  "nodeType": "A String", # Optional. The type of a redis node in the cluster. NodeType determines the underlying machine-type of a redis node.
  "persistenceConfig": { # Configuration of the persistence functionality. # Optional. Persistence config (RDB, AOF) for the cluster.
    "aofConfig": { # Configuration of the AOF based persistence. # Optional. AOF configuration. This field will be ignored if mode is not AOF.
      "appendFsync": "A String", # Optional. fsync configuration.
    },
    "mode": "A String", # Optional. The mode of persistence.
    "rdbConfig": { # Configuration of the RDB based persistence. # Optional. RDB configuration. This field will be ignored if mode is not RDB.
      "rdbSnapshotPeriod": "A String", # Optional. Period between RDB snapshots.
      "rdbSnapshotStartTime": "A String", # Optional. The time that the first snapshot was/will be attempted, and to which future snapshots will be aligned. If not provided, the current time will be used.
    },
  },
  "preciseSizeGb": 3.14, # Output only. Precise value of redis memory size in GB for the entire cluster.
  "pscConfigs": [ # 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.
    {
      "network": "A String", # Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}.
    },
  ],
  "pscConnections": [ # Output only. The list of PSC connections that are auto-created through service connectivity automation.
    { # Details of consumer resources in a PSC connection.
      "address": "A String", # Required. The IP allocated on the consumer network for the PSC forwarding rule.
      "connectionType": "A String", # Output only. Type of the PSC connection.
      "forwardingRule": "A String", # Required. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.
      "network": "A String", # Required. The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}.
      "projectId": "A String", # Optional. Project ID of the consumer project where the forwarding rule is created in.
      "pscConnectionId": "A String", # Required. The PSC connection id of the forwarding rule connected to the service attachment.
      "pscConnectionStatus": "A String", # 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.
      "serviceAttachment": "A String", # 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}.
    },
  ],
  "pscServiceAttachments": [ # Output only. Service attachment details to configure Psc connections
    { # Configuration of a service attachment of the cluster, for creating PSC connections.
      "connectionType": "A String", # Output only. Type of a PSC connection targeting this service attachment.
      "serviceAttachment": "A String", # Output only. Service attachment URI which your self-created PscConnection should use as target
    },
  ],
  "redisConfigs": { # Optional. Key/Value pairs of customer overrides for mutable Redis Configs
    "a_key": "A String",
  },
  "replicaCount": 42, # Optional. The number of replica nodes per shard.
  "shardCount": 42, # Optional. Number of shards for the Redis cluster.
  "sizeGb": 42, # Output only. Redis memory size in GB for the entire cluster rounded up to the next integer.
  "state": "A String", # Output only. The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED
  "stateInfo": { # Represents additional information about the state of the cluster. # Output only. Additional information about the current state of the cluster.
    "updateInfo": { # Represents information about an updating cluster. # Describes ongoing update on the cluster when cluster state is UPDATING.
      "targetReplicaCount": 42, # Target number of replica nodes per shard.
      "targetShardCount": 42, # Target number of shards for redis cluster
    },
  },
  "transitEncryptionMode": "A String", # Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster.
  "uid": "A String", # Output only. System assigned, unique identifier for the cluster.
  "zoneDistributionConfig": { # Zone distribution config for allocation of cluster resources. # Optional. This config will be used to determine how the customer wants us to distribute cluster resources within the region.
    "mode": "A String", # Optional. The mode of zone distribution. Defaults to MULTI_ZONE, when not specified.
    "zone": "A String", # Optional. When SINGLE ZONE distribution is selected, zone field would be used to allocate all resources in that zone. This is not applicable to MULTI_ZONE, and would be ignored for MULTI_ZONE clusters.
  },
}
getCertificateAuthority(name, x__xgafv=None)
Gets the details of certificate authority information for Redis cluster.

Args:
  name: string, Required. Redis cluster certificate authority resource name using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}/certificateAuthority` where `location_id` refers to a GCP region. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Redis cluster certificate authority
  "managedServerCa": {
    "caCerts": [ # The PEM encoded CA certificate chains for redis managed server authentication
      {
        "certificates": [ # The certificates that form the CA chain, from leaf to root order.
          "A String",
        ],
      },
    ],
  },
  "name": "A String", # Identifier. Unique name of the resource in this scope including project, location and cluster using the form: `projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority`
}
list(parent, pageSize=None, pageToken=None, x__xgafv=None)
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.

Args:
  parent: string, 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. (required)
  pageSize: integer, 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` to determine if there are more clusters left to be queried.
  pageToken: string, The `next_page_token` value returned from a previous ListClusters request, if any.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response for ListClusters.
  "clusters": [ # A list of Redis clusters in the project in the specified location, or across all locations. 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 Redis entry is included in the response with the `name` field set to a value of the form `projects/{project_id}/locations/{location_id}/clusters/`- and the `status` field set to ERROR and `status_message` field set to "location not available for ListClusters".
    { # A cluster instance.
      "authorizationMode": "A String", # Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster.
      "clusterEndpoints": [ # Optional. A list of cluster enpoints.
        { # 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.
          "connections": [ # A group of PSC connections. They are created in the same VPC network, one for each service attachment in the cluster.
            { # Detailed information of each PSC connection.
              "pscConnection": { # Details of consumer resources in a PSC connection. # Detailed information of a PSC connection that is created by the customer who owns the cluster.
                "address": "A String", # Required. The IP allocated on the consumer network for the PSC forwarding rule.
                "connectionType": "A String", # Output only. Type of the PSC connection.
                "forwardingRule": "A String", # Required. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.
                "network": "A String", # Required. The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}.
                "projectId": "A String", # Optional. Project ID of the consumer project where the forwarding rule is created in.
                "pscConnectionId": "A String", # Required. The PSC connection id of the forwarding rule connected to the service attachment.
                "pscConnectionStatus": "A String", # 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.
                "serviceAttachment": "A String", # 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}.
              },
            },
          ],
        },
      ],
      "createTime": "A String", # Output only. The timestamp associated with the cluster creation request.
      "crossClusterReplicationConfig": { # Cross cluster replication config. # Optional. Cross cluster replication config.
        "clusterRole": "A String", # The role of the cluster in cross cluster replication.
        "membership": { # An output only view of all the member clusters participating in the cross cluster replication. # 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.
          "primaryCluster": { # Details of the remote cluster associated with this cluster in a cross cluster replication setup. # Output only. The primary cluster that acts as the source of replication for the secondary clusters.
            "cluster": "A String", # The full resource path of the remote cluster in the format: projects//locations//clusters/
            "uid": "A String", # Output only. The unique identifier of the remote cluster.
          },
          "secondaryClusters": [ # Output only. The list of secondary clusters replicating from the primary cluster.
            { # Details of the remote cluster associated with this cluster in a cross cluster replication setup.
              "cluster": "A String", # The full resource path of the remote cluster in the format: projects//locations//clusters/
              "uid": "A String", # Output only. The unique identifier of the remote cluster.
            },
          ],
        },
        "primaryCluster": { # Details of the remote cluster associated with this cluster in a cross cluster replication setup. # 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.
          "cluster": "A String", # The full resource path of the remote cluster in the format: projects//locations//clusters/
          "uid": "A String", # Output only. The unique identifier of the remote cluster.
        },
        "secondaryClusters": [ # List of secondary clusters that are replicating from this primary cluster. This field is only set for a primary cluster.
          { # Details of the remote cluster associated with this cluster in a cross cluster replication setup.
            "cluster": "A String", # The full resource path of the remote cluster in the format: projects//locations//clusters/
            "uid": "A String", # Output only. The unique identifier of the remote cluster.
          },
        ],
        "updateTime": "A String", # Output only. The last time cross cluster replication config was updated.
      },
      "deletionProtectionEnabled": True or False, # Optional. The delete operation will fail when the value is set to true.
      "discoveryEndpoints": [ # Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one discovery endpoint is supported.
        { # Endpoints on each network, for Redis clients to connect to the cluster.
          "address": "A String", # Output only. Address of the exposed Redis endpoint used by clients to connect to the service. The address could be either IP or hostname.
          "port": 42, # Output only. The port number of the exposed Redis endpoint.
          "pscConfig": { # Output only. Customer configuration for where the endpoint is created and accessed from.
            "network": "A String", # Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}.
          },
        },
      ],
      "maintenancePolicy": { # Maintenance policy per cluster. # Optional. ClusterMaintenancePolicy determines when to allow or deny updates.
        "createTime": "A String", # Output only. The time when the policy was created i.e. Maintenance Window or Deny Period was assigned.
        "updateTime": "A String", # Output only. The time when the policy was updated i.e. Maintenance Window or Deny Period was updated.
        "weeklyMaintenanceWindow": [ # 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.
          { # Time window specified for weekly operations.
            "day": "A String", # Allows to define schedule that runs specified day of the week.
            "startTime": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Start time of the window in UTC.
              "hours": 42, # Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
              "minutes": 42, # Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
              "nanos": 42, # Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
              "seconds": 42, # Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
            },
          },
        ],
      },
      "maintenanceSchedule": { # Upcoming maitenance schedule. # Output only. ClusterMaintenanceSchedule Output only Published maintenance schedule.
        "endTime": "A String", # Output only. The end time of any upcoming scheduled maintenance for this instance.
        "startTime": "A String", # Output only. The start time of any upcoming scheduled maintenance for this instance.
      },
      "name": "A String", # 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}`
      "nodeType": "A String", # Optional. The type of a redis node in the cluster. NodeType determines the underlying machine-type of a redis node.
      "persistenceConfig": { # Configuration of the persistence functionality. # Optional. Persistence config (RDB, AOF) for the cluster.
        "aofConfig": { # Configuration of the AOF based persistence. # Optional. AOF configuration. This field will be ignored if mode is not AOF.
          "appendFsync": "A String", # Optional. fsync configuration.
        },
        "mode": "A String", # Optional. The mode of persistence.
        "rdbConfig": { # Configuration of the RDB based persistence. # Optional. RDB configuration. This field will be ignored if mode is not RDB.
          "rdbSnapshotPeriod": "A String", # Optional. Period between RDB snapshots.
          "rdbSnapshotStartTime": "A String", # Optional. The time that the first snapshot was/will be attempted, and to which future snapshots will be aligned. If not provided, the current time will be used.
        },
      },
      "preciseSizeGb": 3.14, # Output only. Precise value of redis memory size in GB for the entire cluster.
      "pscConfigs": [ # 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.
        {
          "network": "A String", # Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}.
        },
      ],
      "pscConnections": [ # Output only. The list of PSC connections that are auto-created through service connectivity automation.
        { # Details of consumer resources in a PSC connection.
          "address": "A String", # Required. The IP allocated on the consumer network for the PSC forwarding rule.
          "connectionType": "A String", # Output only. Type of the PSC connection.
          "forwardingRule": "A String", # Required. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.
          "network": "A String", # Required. The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}.
          "projectId": "A String", # Optional. Project ID of the consumer project where the forwarding rule is created in.
          "pscConnectionId": "A String", # Required. The PSC connection id of the forwarding rule connected to the service attachment.
          "pscConnectionStatus": "A String", # 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.
          "serviceAttachment": "A String", # 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}.
        },
      ],
      "pscServiceAttachments": [ # Output only. Service attachment details to configure Psc connections
        { # Configuration of a service attachment of the cluster, for creating PSC connections.
          "connectionType": "A String", # Output only. Type of a PSC connection targeting this service attachment.
          "serviceAttachment": "A String", # Output only. Service attachment URI which your self-created PscConnection should use as target
        },
      ],
      "redisConfigs": { # Optional. Key/Value pairs of customer overrides for mutable Redis Configs
        "a_key": "A String",
      },
      "replicaCount": 42, # Optional. The number of replica nodes per shard.
      "shardCount": 42, # Optional. Number of shards for the Redis cluster.
      "sizeGb": 42, # Output only. Redis memory size in GB for the entire cluster rounded up to the next integer.
      "state": "A String", # Output only. The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED
      "stateInfo": { # Represents additional information about the state of the cluster. # Output only. Additional information about the current state of the cluster.
        "updateInfo": { # Represents information about an updating cluster. # Describes ongoing update on the cluster when cluster state is UPDATING.
          "targetReplicaCount": 42, # Target number of replica nodes per shard.
          "targetShardCount": 42, # Target number of shards for redis cluster
        },
      },
      "transitEncryptionMode": "A String", # Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster.
      "uid": "A String", # Output only. System assigned, unique identifier for the cluster.
      "zoneDistributionConfig": { # Zone distribution config for allocation of cluster resources. # Optional. This config will be used to determine how the customer wants us to distribute cluster resources within the region.
        "mode": "A String", # Optional. The mode of zone distribution. Defaults to MULTI_ZONE, when not specified.
        "zone": "A String", # Optional. When SINGLE ZONE distribution is selected, zone field would be used to allocate all resources in that zone. This is not applicable to MULTI_ZONE, and would be ignored for MULTI_ZONE clusters.
      },
    },
  ],
  "nextPageToken": "A String", # Token to retrieve the next page of results, or empty if there are no more results in the list.
  "unreachable": [ # Locations that could not be reached.
    "A String",
  ],
}
list_next()
Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call 'execute()' on to request the next
          page. Returns None if there are no more items in the collection.
        
patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)
Updates the metadata and configuration of a specific Redis cluster. Completed longrunning.Operation will contain the new cluster object in the response field. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.

Args:
  name: string, 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}` (required)
  body: object, The request body.
    The object takes the form of:

{ # A cluster instance.
  "authorizationMode": "A String", # Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster.
  "clusterEndpoints": [ # Optional. A list of cluster enpoints.
    { # 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.
      "connections": [ # A group of PSC connections. They are created in the same VPC network, one for each service attachment in the cluster.
        { # Detailed information of each PSC connection.
          "pscConnection": { # Details of consumer resources in a PSC connection. # Detailed information of a PSC connection that is created by the customer who owns the cluster.
            "address": "A String", # Required. The IP allocated on the consumer network for the PSC forwarding rule.
            "connectionType": "A String", # Output only. Type of the PSC connection.
            "forwardingRule": "A String", # Required. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.
            "network": "A String", # Required. The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}.
            "projectId": "A String", # Optional. Project ID of the consumer project where the forwarding rule is created in.
            "pscConnectionId": "A String", # Required. The PSC connection id of the forwarding rule connected to the service attachment.
            "pscConnectionStatus": "A String", # 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.
            "serviceAttachment": "A String", # 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}.
          },
        },
      ],
    },
  ],
  "createTime": "A String", # Output only. The timestamp associated with the cluster creation request.
  "crossClusterReplicationConfig": { # Cross cluster replication config. # Optional. Cross cluster replication config.
    "clusterRole": "A String", # The role of the cluster in cross cluster replication.
    "membership": { # An output only view of all the member clusters participating in the cross cluster replication. # 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.
      "primaryCluster": { # Details of the remote cluster associated with this cluster in a cross cluster replication setup. # Output only. The primary cluster that acts as the source of replication for the secondary clusters.
        "cluster": "A String", # The full resource path of the remote cluster in the format: projects//locations//clusters/
        "uid": "A String", # Output only. The unique identifier of the remote cluster.
      },
      "secondaryClusters": [ # Output only. The list of secondary clusters replicating from the primary cluster.
        { # Details of the remote cluster associated with this cluster in a cross cluster replication setup.
          "cluster": "A String", # The full resource path of the remote cluster in the format: projects//locations//clusters/
          "uid": "A String", # Output only. The unique identifier of the remote cluster.
        },
      ],
    },
    "primaryCluster": { # Details of the remote cluster associated with this cluster in a cross cluster replication setup. # 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.
      "cluster": "A String", # The full resource path of the remote cluster in the format: projects//locations//clusters/
      "uid": "A String", # Output only. The unique identifier of the remote cluster.
    },
    "secondaryClusters": [ # List of secondary clusters that are replicating from this primary cluster. This field is only set for a primary cluster.
      { # Details of the remote cluster associated with this cluster in a cross cluster replication setup.
        "cluster": "A String", # The full resource path of the remote cluster in the format: projects//locations//clusters/
        "uid": "A String", # Output only. The unique identifier of the remote cluster.
      },
    ],
    "updateTime": "A String", # Output only. The last time cross cluster replication config was updated.
  },
  "deletionProtectionEnabled": True or False, # Optional. The delete operation will fail when the value is set to true.
  "discoveryEndpoints": [ # Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one discovery endpoint is supported.
    { # Endpoints on each network, for Redis clients to connect to the cluster.
      "address": "A String", # Output only. Address of the exposed Redis endpoint used by clients to connect to the service. The address could be either IP or hostname.
      "port": 42, # Output only. The port number of the exposed Redis endpoint.
      "pscConfig": { # Output only. Customer configuration for where the endpoint is created and accessed from.
        "network": "A String", # Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}.
      },
    },
  ],
  "maintenancePolicy": { # Maintenance policy per cluster. # Optional. ClusterMaintenancePolicy determines when to allow or deny updates.
    "createTime": "A String", # Output only. The time when the policy was created i.e. Maintenance Window or Deny Period was assigned.
    "updateTime": "A String", # Output only. The time when the policy was updated i.e. Maintenance Window or Deny Period was updated.
    "weeklyMaintenanceWindow": [ # 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.
      { # Time window specified for weekly operations.
        "day": "A String", # Allows to define schedule that runs specified day of the week.
        "startTime": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Start time of the window in UTC.
          "hours": 42, # Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          "minutes": 42, # Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          "nanos": 42, # Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
          "seconds": 42, # Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
        },
      },
    ],
  },
  "maintenanceSchedule": { # Upcoming maitenance schedule. # Output only. ClusterMaintenanceSchedule Output only Published maintenance schedule.
    "endTime": "A String", # Output only. The end time of any upcoming scheduled maintenance for this instance.
    "startTime": "A String", # Output only. The start time of any upcoming scheduled maintenance for this instance.
  },
  "name": "A String", # 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}`
  "nodeType": "A String", # Optional. The type of a redis node in the cluster. NodeType determines the underlying machine-type of a redis node.
  "persistenceConfig": { # Configuration of the persistence functionality. # Optional. Persistence config (RDB, AOF) for the cluster.
    "aofConfig": { # Configuration of the AOF based persistence. # Optional. AOF configuration. This field will be ignored if mode is not AOF.
      "appendFsync": "A String", # Optional. fsync configuration.
    },
    "mode": "A String", # Optional. The mode of persistence.
    "rdbConfig": { # Configuration of the RDB based persistence. # Optional. RDB configuration. This field will be ignored if mode is not RDB.
      "rdbSnapshotPeriod": "A String", # Optional. Period between RDB snapshots.
      "rdbSnapshotStartTime": "A String", # Optional. The time that the first snapshot was/will be attempted, and to which future snapshots will be aligned. If not provided, the current time will be used.
    },
  },
  "preciseSizeGb": 3.14, # Output only. Precise value of redis memory size in GB for the entire cluster.
  "pscConfigs": [ # 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.
    {
      "network": "A String", # Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}.
    },
  ],
  "pscConnections": [ # Output only. The list of PSC connections that are auto-created through service connectivity automation.
    { # Details of consumer resources in a PSC connection.
      "address": "A String", # Required. The IP allocated on the consumer network for the PSC forwarding rule.
      "connectionType": "A String", # Output only. Type of the PSC connection.
      "forwardingRule": "A String", # Required. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.
      "network": "A String", # Required. The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}.
      "projectId": "A String", # Optional. Project ID of the consumer project where the forwarding rule is created in.
      "pscConnectionId": "A String", # Required. The PSC connection id of the forwarding rule connected to the service attachment.
      "pscConnectionStatus": "A String", # 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.
      "serviceAttachment": "A String", # 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}.
    },
  ],
  "pscServiceAttachments": [ # Output only. Service attachment details to configure Psc connections
    { # Configuration of a service attachment of the cluster, for creating PSC connections.
      "connectionType": "A String", # Output only. Type of a PSC connection targeting this service attachment.
      "serviceAttachment": "A String", # Output only. Service attachment URI which your self-created PscConnection should use as target
    },
  ],
  "redisConfigs": { # Optional. Key/Value pairs of customer overrides for mutable Redis Configs
    "a_key": "A String",
  },
  "replicaCount": 42, # Optional. The number of replica nodes per shard.
  "shardCount": 42, # Optional. Number of shards for the Redis cluster.
  "sizeGb": 42, # Output only. Redis memory size in GB for the entire cluster rounded up to the next integer.
  "state": "A String", # Output only. The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED
  "stateInfo": { # Represents additional information about the state of the cluster. # Output only. Additional information about the current state of the cluster.
    "updateInfo": { # Represents information about an updating cluster. # Describes ongoing update on the cluster when cluster state is UPDATING.
      "targetReplicaCount": 42, # Target number of replica nodes per shard.
      "targetShardCount": 42, # Target number of shards for redis cluster
    },
  },
  "transitEncryptionMode": "A String", # Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster.
  "uid": "A String", # Output only. System assigned, unique identifier for the cluster.
  "zoneDistributionConfig": { # Zone distribution config for allocation of cluster resources. # Optional. This config will be used to determine how the customer wants us to distribute cluster resources within the region.
    "mode": "A String", # Optional. The mode of zone distribution. Defaults to MULTI_ZONE, when not specified.
    "zone": "A String", # Optional. When SINGLE ZONE distribution is selected, zone field would be used to allocate all resources in that zone. This is not applicable to MULTI_ZONE, and would be ignored for MULTI_ZONE clusters.
  },
}

  requestId: string, Idempotent request UUID.
  updateMask: string, Required. Mask of fields to update. At least one path must be supplied in this field. The elements of the repeated paths field may only include these fields from Cluster: * `size_gb` * `replica_count`
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # { `createTime`: The time the operation was created. `endTime`: The time the operation finished running. `target`: Server-defined resource path for the target of the operation. `verb`: Name of the verb executed by the operation. `statusDetail`: Human-readable status of the operation, if any. `cancelRequested`: Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`. `apiVersion`: API version used to start the operation. }
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
rescheduleClusterMaintenance(name, body=None, x__xgafv=None)
Reschedules upcoming maintenance event.

Args:
  name: string, 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. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request for rescheduling a cluster maintenance.
  "rescheduleType": "A String", # Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as well.
  "scheduleTime": "A String", # 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`.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # { `createTime`: The time the operation was created. `endTime`: The time the operation finished running. `target`: Server-defined resource path for the target of the operation. `verb`: Name of the verb executed by the operation. `statusDetail`: Human-readable status of the operation, if any. `cancelRequested`: Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`. `apiVersion`: API version used to start the operation. }
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}