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.

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.
  "createTime": "A String", # Output only. The timestamp associated with the cluster creation request.
  "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}.
      },
    },
  ],
  "name": "A String", # Required. 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": [ # Required. 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. PSC connections for discovery of the cluster topology and accessing the cluster.
    { # Details of consumer resources in a PSC connection.
      "address": "A String", # Output only. The IP allocated on the consumer network for the PSC forwarding rule.
      "forwardingRule": "A String", # Output only. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.
      "network": "A String", # The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}.
      "projectId": "A String", # Output only. The consumer project_id where the forwarding rule is created from.
      "pscConnectionId": "A String", # Output only. The PSC connection id of the forwarding rule connected to the service attachment.
    },
  ],
  "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, # Required. 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.
}

  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.
  "createTime": "A String", # Output only. The timestamp associated with the cluster creation request.
  "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}.
      },
    },
  ],
  "name": "A String", # Required. 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": [ # Required. 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. PSC connections for discovery of the cluster topology and accessing the cluster.
    { # Details of consumer resources in a PSC connection.
      "address": "A String", # Output only. The IP allocated on the consumer network for the PSC forwarding rule.
      "forwardingRule": "A String", # Output only. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.
      "network": "A String", # The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}.
      "projectId": "A String", # Output only. The consumer project_id where the forwarding rule is created from.
      "pscConnectionId": "A String", # Output only. The PSC connection id of the forwarding rule connected to the service attachment.
    },
  ],
  "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, # Required. 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.
}
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.
      "createTime": "A String", # Output only. The timestamp associated with the cluster creation request.
      "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}.
          },
        },
      ],
      "name": "A String", # Required. 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": [ # Required. 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. PSC connections for discovery of the cluster topology and accessing the cluster.
        { # Details of consumer resources in a PSC connection.
          "address": "A String", # Output only. The IP allocated on the consumer network for the PSC forwarding rule.
          "forwardingRule": "A String", # Output only. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.
          "network": "A String", # The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}.
          "projectId": "A String", # Output only. The consumer project_id where the forwarding rule is created from.
          "pscConnectionId": "A String", # Output only. The PSC connection id of the forwarding rule connected to the service attachment.
        },
      ],
      "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, # Required. 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.
    },
  ],
  "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. 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.
  "createTime": "A String", # Output only. The timestamp associated with the cluster creation request.
  "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}.
      },
    },
  ],
  "name": "A String", # Required. 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": [ # Required. 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. PSC connections for discovery of the cluster topology and accessing the cluster.
    { # Details of consumer resources in a PSC connection.
      "address": "A String", # Output only. The IP allocated on the consumer network for the PSC forwarding rule.
      "forwardingRule": "A String", # Output only. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.
      "network": "A String", # The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}.
      "projectId": "A String", # Output only. The consumer project_id where the forwarding rule is created from.
      "pscConnectionId": "A String", # Output only. The PSC connection id of the forwarding rule connected to the service attachment.
    },
  ],
  "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, # Required. 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.
}

  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.
  },
}