REST Resource: projects.locations.clusters

Resource: Cluster

A cluster instance.

JSON representation
{
  "name": string,
  "createTime": string,
  "state": enum (State),
  "uid": string,
  "authorizationMode": enum (AuthorizationMode),
  "transitEncryptionMode": enum (TransitEncryptionMode),
  "pscConfigs": [
    {
      object (PscConfig)
    }
  ],
  "discoveryEndpoints": [
    {
      object (DiscoveryEndpoint)
    }
  ],
  "pscConnections": [
    {
      object (PscConnection)
    }
  ],
  "stateInfo": {
    object (StateInfo)
  },
  "nodeType": enum (NodeType),
  "persistenceConfig": {
    object (ClusterPersistenceConfig)
  },
  "redisConfigs": {
    string: string,
    ...
  },
  "zoneDistributionConfig": {
    object (ZoneDistributionConfig)
  },
  "crossClusterReplicationConfig": {
    object (CrossClusterReplicationConfig)
  },
  "replicaCount": integer,
  "sizeGb": integer,
  "shardCount": integer,
  "preciseSizeGb": number,
  "deletionProtectionEnabled": boolean,
  "maintenancePolicy": {
    object (ClusterMaintenancePolicy)
  },
  "maintenanceSchedule": {
    object (ClusterMaintenanceSchedule)
  }
}
Fields
name

string

Required. Identifier. Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}

createTime

string (Timestamp format)

Output only. The timestamp associated with the cluster creation request.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

state

enum (State)

Output only. The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED

uid

string

Output only. System assigned, unique identifier for the cluster.

authorizationMode

enum (AuthorizationMode)

Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster.

transitEncryptionMode

enum (TransitEncryptionMode)

Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster.

pscConfigs[]

object (PscConfig)

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.

discoveryEndpoints[]

object (DiscoveryEndpoint)

Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one discovery endpoint is supported.

pscConnections[]

object (PscConnection)

Output only. PSC connections for discovery of the cluster topology and accessing the cluster.

stateInfo

object (StateInfo)

Output only. Additional information about the current state of the cluster.

nodeType

enum (NodeType)

Optional. The type of a redis node in the cluster. NodeType determines the underlying machine-type of a redis node.

persistenceConfig

object (ClusterPersistenceConfig)

Optional. Persistence config (RDB, AOF) for the cluster.

redisConfigs

map (key: string, value: string)

Optional. Key/Value pairs of customer overrides for mutable Redis Configs

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

zoneDistributionConfig

object (ZoneDistributionConfig)

Optional. This config will be used to determine how the customer wants us to distribute cluster resources within the region.

crossClusterReplicationConfig

object (CrossClusterReplicationConfig)

Optional. Cross cluster replication config.

replicaCount

integer

Optional. The number of replica nodes per shard.

sizeGb

integer

Output only. Redis memory size in GB for the entire cluster rounded up to the next integer.

shardCount

integer

Optional. Number of shards for the Redis cluster.

preciseSizeGb

number

Output only. Precise value of redis memory size in GB for the entire cluster.

deletionProtectionEnabled

boolean

Optional. The delete operation will fail when the value is set to true.

maintenancePolicy

object (ClusterMaintenancePolicy)

Optional. ClusterMaintenancePolicy determines when to allow or deny updates.

maintenanceSchedule

object (ClusterMaintenanceSchedule)

Output only. ClusterMaintenanceSchedule Output only Published maintenance schedule.

State

Represents the different states of a Redis cluster.

Enums
STATE_UNSPECIFIED Not set.
CREATING Redis cluster is being created.
ACTIVE Redis cluster has been created and is fully usable.
UPDATING Redis cluster configuration is being updated.
DELETING Redis cluster is being deleted.

AuthorizationMode

Available authorization mode of a Redis cluster.

Enums
AUTH_MODE_UNSPECIFIED Not set.
AUTH_MODE_IAM_AUTH IAM basic authorization mode
AUTH_MODE_DISABLED Authorization disabled mode

TransitEncryptionMode

Available mode of in-transit encryption.

Enums
TRANSIT_ENCRYPTION_MODE_UNSPECIFIED In-transit encryption not set.
TRANSIT_ENCRYPTION_MODE_DISABLED In-transit encryption disabled.
TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION Use server managed encryption for in-transit encryption.

PscConfig

JSON representation
{
  "network": string
}
Fields
network

string

Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{networkProject}/global/networks/{network_id}.

DiscoveryEndpoint

Endpoints on each network, for Redis clients to connect to the cluster.

JSON representation
{
  "address": string,
  "port": integer,
  "pscConfig": {
    object (PscConfig)
  }
}
Fields
address

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

integer

Output only. The port number of the exposed Redis endpoint.

pscConfig

object (PscConfig)

Output only. Customer configuration for where the endpoint is created and accessed from.

PscConnection

Details of consumer resources in a PSC connection.

JSON representation
{
  "pscConnectionId": string,
  "address": string,
  "forwardingRule": string,
  "projectId": string,
  "network": string
}
Fields
pscConnectionId

string

Output only. The PSC connection id of the forwarding rule connected to the service attachment.

address

string

Output only. The IP allocated on the consumer network for the PSC forwarding rule.

forwardingRule

string

Output only. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.

projectId

string

Output only. The consumer projectId where the forwarding rule is created from.

network

string

The consumer network where the IP address resides, in the form of projects/{projectId}/global/networks/{network_id}.

StateInfo

Represents additional information about the state of the cluster.

JSON representation
{

  // Union field info can be only one of the following:
  "updateInfo": {
    object (UpdateInfo)
  }
  // End of list of possible types for union field info.
}
Fields

Union field info.

info can be only one of the following:

updateInfo

object (UpdateInfo)

Describes ongoing update on the cluster when cluster state is UPDATING.

UpdateInfo

Represents information about an updating cluster.

JSON representation
{
  "targetShardCount": integer,
  "targetReplicaCount": integer
}
Fields
targetShardCount

integer

Target number of shards for redis cluster

targetReplicaCount

integer

Target number of replica nodes per shard.

NodeType

NodeType of a redis cluster node,

Enums
NODE_TYPE_UNSPECIFIED
REDIS_SHARED_CORE_NANO Redis shared core nano nodeType.
REDIS_HIGHMEM_MEDIUM Redis highmem medium nodeType.
REDIS_HIGHMEM_XLARGE Redis highmem xlarge nodeType.
REDIS_STANDARD_SMALL Redis standard small nodeType.

ClusterPersistenceConfig

Configuration of the persistence functionality.

JSON representation
{
  "mode": enum (PersistenceMode),
  "rdbConfig": {
    object (RDBConfig)
  },
  "aofConfig": {
    object (AOFConfig)
  }
}
Fields
mode

enum (PersistenceMode)

Optional. The mode of persistence.

rdbConfig

object (RDBConfig)

Optional. RDB configuration. This field will be ignored if mode is not RDB.

aofConfig

object (AOFConfig)

Optional. AOF configuration. This field will be ignored if mode is not AOF.

PersistenceMode

Available persistence modes.

Enums
PERSISTENCE_MODE_UNSPECIFIED Not set.
DISABLED Persistence is disabled, and any snapshot data is deleted.
RDB RDB based persistence is enabled.
AOF AOF based persistence is enabled.

RDBConfig

Configuration of the RDB based persistence.

JSON representation
{
  "rdbSnapshotPeriod": enum (SnapshotPeriod),
  "rdbSnapshotStartTime": string
}
Fields
rdbSnapshotPeriod

enum (SnapshotPeriod)

Optional. Period between RDB snapshots.

rdbSnapshotStartTime

string (Timestamp format)

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.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

SnapshotPeriod

Available snapshot periods.

Enums
SNAPSHOT_PERIOD_UNSPECIFIED Not set.
ONE_HOUR One hour.
SIX_HOURS Six hours.
TWELVE_HOURS Twelve hours.
TWENTY_FOUR_HOURS Twenty four hours.

AOFConfig

Configuration of the AOF based persistence.

JSON representation
{
  "appendFsync": enum (AppendFsync)
}
Fields
appendFsync

enum (AppendFsync)

Optional. fsync configuration.

AppendFsync

Available fsync modes.

Enums
APPEND_FSYNC_UNSPECIFIED Not set. Default: EVERYSEC
NO Never fsync. Normally Linux will flush data every 30 seconds with this configuration, but it's up to the kernel's exact tuning.
EVERYSEC fsync every second. Fast enough, and you may lose 1 second of data if there is a disaster
ALWAYS fsync every time new write commands are appended to the AOF. It has the best data loss protection at the cost of performance

ZoneDistributionConfig

Zone distribution config for allocation of cluster resources.

JSON representation
{
  "mode": enum (ZoneDistributionMode),
  "zone": string
}
Fields
mode

enum (ZoneDistributionMode)

Optional. The mode of zone distribution. Defaults to MULTI_ZONE, when not specified.

zone

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.

ZoneDistributionMode

Defines various modes of zone distribution. Currently supports two modes, can be expanded in future to support more types of distribution modes.

Enums
ZONE_DISTRIBUTION_MODE_UNSPECIFIED Not Set. Default: MULTI_ZONE
MULTI_ZONE Distribute all resources across 3 zones picked at random, within the region.
SINGLE_ZONE Distribute all resources in a single zone. The zone field must be specified, when this mode is selected.

CrossClusterReplicationConfig

Cross cluster replication config.

JSON representation
{
  "clusterRole": enum (ClusterRole),
  "primaryCluster": {
    object (RemoteCluster)
  },
  "secondaryClusters": [
    {
      object (RemoteCluster)
    }
  ],
  "updateTime": string,
  "membership": {
    object (Membership)
  }
}
Fields
clusterRole

enum (ClusterRole)

The role of the cluster in cross cluster replication.

primaryCluster

object (RemoteCluster)

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.

secondaryClusters[]

object (RemoteCluster)

List of secondary clusters that are replicating from this primary cluster.

This field is only set for a primary cluster.

updateTime

string (Timestamp format)

Output only. The last time cross cluster replication config was updated.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

membership

object (Membership)

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 clusters.get request can be sent to any other member cluster and this field will list all the member clusters participating in cross cluster replication.

ClusterRole

The role of the cluster in cross cluster replication.

Enums
CLUSTER_ROLE_UNSPECIFIED Cluster role is not set. The behavior is equivalent to NONE.
NONE This cluster does not participate in cross cluster replication. It is an independent cluster and does not replicate to or from any other clusters.
PRIMARY A cluster that allows both reads and writes. Any data written to this cluster is also replicated to the attached secondary clusters.
SECONDARY A cluster that allows only reads and replicates data from a primary cluster.

RemoteCluster

Details of the remote cluster associated with this cluster in a cross cluster replication setup.

JSON representation
{
  "cluster": string,
  "uid": string
}
Fields
cluster

string

The full resource path of the remote cluster in the format: projects//locations//clusters/

uid

string

Output only. The unique identifier of the remote cluster.

Membership

An output only view of all the member clusters participating in the cross cluster replication.

JSON representation
{
  "primaryCluster": {
    object (RemoteCluster)
  },
  "secondaryClusters": [
    {
      object (RemoteCluster)
    }
  ]
}
Fields
primaryCluster

object (RemoteCluster)

Output only. The primary cluster that acts as the source of replication for the secondary clusters.

secondaryClusters[]

object (RemoteCluster)

Output only. The list of secondary clusters replicating from the primary cluster.

ClusterMaintenancePolicy

Maintenance policy per cluster.

JSON representation
{
  "createTime": string,
  "updateTime": string,
  "weeklyMaintenanceWindow": [
    {
      object (ClusterWeeklyMaintenanceWindow)
    }
  ]
}
Fields
createTime

string (Timestamp format)

Output only. The time when the policy was created i.e. Maintenance Window or Deny Period was assigned.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Output only. The time when the policy was updated i.e. Maintenance Window or Deny Period was updated.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

weeklyMaintenanceWindow[]

object (ClusterWeeklyMaintenanceWindow)

Optional. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weeklyMaintenanceWindow is expected to be one.

ClusterWeeklyMaintenanceWindow

Time window specified for weekly operations.

JSON representation
{
  "day": enum (DayOfWeek),
  "startTime": {
    object (TimeOfDay)
  },
  "duration": string
}
Fields
day

enum (DayOfWeek)

Allows to define schedule that runs specified day of the week.

startTime

object (TimeOfDay)

Start time of the window in UTC.

duration

string (Duration format)

Duration of the time window.

A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".

ClusterMaintenanceSchedule

Upcoming maitenance schedule.

JSON representation
{
  "startTime": string,
  "endTime": string,
  "scheduleDeadlineTime": string
}
Fields
startTime

string (Timestamp format)

Output only. The start time of any upcoming scheduled maintenance for this instance.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

endTime

string (Timestamp format)

Output only. The end time of any upcoming scheduled maintenance for this instance.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

scheduleDeadlineTime

string (Timestamp format)

Output only. The deadline that the maintenance schedule start time can not go beyond, including reschedule.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

Methods

create

Creates a Redis cluster based on the specified properties.

delete

Deletes a specific Redis cluster.

get

Gets the details of a specific Redis cluster.

getCertificateAuthority

Gets the details of certificate authority information for Redis cluster.

list

Lists all Redis clusters owned by a project in either the specified location (region) or all locations.

patch

Updates the metadata and configuration of a specific Redis cluster.

rescheduleClusterMaintenance

Reschedules upcoming maintenance event.