REST Resource: projects.locations.clusters

Resource: Cluster

An Apache Kafka cluster deployed in a location.

JSON representation
{
  "name": string,
  "createTime": string,
  "updateTime": string,
  "labels": {
    string: string,
    ...
  },
  "capacityConfig": {
    object (CapacityConfig)
  },
  "rebalanceConfig": {
    object (RebalanceConfig)
  },
  "state": enum (State),
  "tlsConfig": {
    object (TlsConfig)
  },
  "updateOptions": {
    object (UpdateOptions)
  },
  "kafkaVersion": string,
  "brokerDetails": [
    {
      object (BrokerDetails)
    }
  ],

  // Union field platform_config can be only one of the following:
  "gcpConfig": {
    object (GcpConfig)
  }
  // End of list of possible types for union field platform_config.
  "satisfiesPzi": boolean,
  "satisfiesPzs": boolean
}
Fields
name

string

Identifier. The name of the cluster. Structured like: projects/{projectNumber}/locations/{location}/clusters/{clusterId}

createTime

string (Timestamp format)

Output only. The time when the cluster was created.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Output only. The time when the cluster was last updated.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

labels

map (key: string, value: string)

Optional. Labels as key value pairs.

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

capacityConfig

object (CapacityConfig)

Required. Capacity configuration for the Kafka cluster.

rebalanceConfig

object (RebalanceConfig)

Optional. Rebalance configuration for the Kafka cluster.

state

enum (State)

Output only. The current state of the cluster.

tlsConfig

object (TlsConfig)

Optional. TLS configuration for the Kafka cluster.

updateOptions

object (UpdateOptions)

Optional. UpdateOptions represents options that control how updates to the cluster are applied.

kafkaVersion

string

Output only. Only populated when FULL view is requested. The Kafka version of the cluster.

brokerDetails[]

object (BrokerDetails)

Output only. Only populated when FULL view is requested. Details of each broker in the cluster.

Union field platform_config. Platform specific configuration properties for a Kafka cluster. platform_config can be only one of the following:
gcpConfig

object (GcpConfig)

Required. Configuration properties for a Kafka cluster deployed to Google Cloud Platform.

satisfiesPzi

boolean

Output only. Reserved for future use.

satisfiesPzs

boolean

Output only. Reserved for future use.

GcpConfig

Configuration properties for a Kafka cluster deployed to Google Cloud Platform.

JSON representation
{
  "accessConfig": {
    object (AccessConfig)
  },
  "kmsKey": string
}
Fields
accessConfig

object (AccessConfig)

Required. Access configuration for the Kafka cluster.

kmsKey

string

Optional. Immutable. The Cloud KMS Key name to use for encryption. The key must be located in the same region as the cluster and cannot be changed. Structured like: projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}.

AccessConfig

The configuration of access to the Kafka cluster.

JSON representation
{
  "networkConfigs": [
    {
      object (NetworkConfig)
    }
  ]
}
Fields
networkConfigs[]

object (NetworkConfig)

Required. Virtual Private Cloud (VPC) networks that must be granted direct access to the Kafka cluster. Minimum of 1 network is required. Maximum 10 networks can be specified.

NetworkConfig

The configuration of a Virtual Private Cloud (VPC) network that can access the Kafka cluster.

JSON representation
{
  "subnet": string
}
Fields
subnet

string

Required. Name of the VPC subnet in which to create Private Service Connect (PSC) endpoints for the Kafka brokers and bootstrap address. Structured like: projects/{project}/regions/{region}/subnetworks/{subnet_id}

The subnet must be located in the same region as the Kafka cluster. The project may differ. Multiple subnets from the same parent network must not be specified.

RebalanceConfig

Defines rebalancing behavior of a Kafka cluster.

JSON representation
{
  "mode": enum (Mode)
}
Fields
mode

enum (Mode)

Optional. The rebalance behavior for the cluster. When not specified, defaults to NO_REBALANCE.

Mode

The partition rebalance mode for the cluster.

Enums
MODE_UNSPECIFIED A mode was not specified. Do not use.
NO_REBALANCE Do not rebalance automatically.
AUTO_REBALANCE_ON_SCALE_UP Automatically rebalance topic partitions among brokers when the cluster is scaled up.

State

The state of the cluster.

Enums
STATE_UNSPECIFIED A state was not specified.
CREATING The cluster is being created.
ACTIVE The cluster is active.
DELETING The cluster is being deleted.

TlsConfig

The TLS configuration for the Kafka cluster.

JSON representation
{
  "trustConfig": {
    object (TrustConfig)
  },
  "sslPrincipalMappingRules": string
}
Fields
trustConfig

object (TrustConfig)

Optional. The configuration of the broker truststore. If specified, clients can use mTLS for authentication.

sslPrincipalMappingRules

string

Optional. A list of rules for mapping from SSL principal names to short names. These are applied in order by Kafka. Refer to the Apache Kafka documentation for ssl.principal.mapping.rules for the precise formatting details and syntax. Example: "RULE:^CN=(.*?),OU=ServiceUsers.*$/$1@example.com/,DEFAULT"

This is a static Kafka broker configuration. Setting or modifying this field will trigger a rolling restart of the Kafka brokers to apply the change. An empty string means no rules are applied (Kafka default).

TrustConfig

Sources of CA certificates to install in the broker's truststore.

JSON representation
{
  "casConfigs": [
    {
      object (CertificateAuthorityServiceConfig)
    }
  ]
}
Fields
casConfigs[]

object (CertificateAuthorityServiceConfig)

Optional. Configuration for the Google Certificate Authority Service. Maximum 10.

CertificateAuthorityServiceConfig

A configuration for the Google Certificate Authority Service.

JSON representation
{
  "caPool": string
}
Fields
caPool

string

Required. The name of the CA pool to pull CA certificates from. Structured like: projects/{project}/locations/{location}/caPools/{caPool}. The CA pool does not need to be in the same project or location as the Kafka cluster.

UpdateOptions

UpdateOptions specifies options that influence how a cluster update is applied. These options control the behavior of the update process, rather than defining the desired end-state of a cluster.

JSON representation
{
  "allowBrokerDownscaleOnClusterUpscale": boolean
}
Fields
allowBrokerDownscaleOnClusterUpscale

boolean

Optional. If true, allows an update operation that increases the total vCPU and/or memory allocation of the cluster to significantly decrease the per-broker vCPU and/or memory allocation. This can result in reduced performance and availability. By default, the update operation will fail if an upscale request results in a vCPU or memory allocation for the brokers that is smaller than 90% of the current broker size.

BrokerDetails

Details of a broker in the Kafka cluster.

JSON representation
{
  "rack": string,
  "brokerIndex": string,
  "nodeId": string
}
Fields
rack

string

Output only. The rack of the broker.

brokerIndex

string (int64 format)

Output only. The index of the broker.

nodeId

string (int64 format)

Output only. The node id of the broker.

Methods

create

Creates a new cluster in a given project and location.

delete

Deletes a single cluster.

get

Returns the properties of a single cluster.

list

Lists the clusters in a given project and location.

patch

Updates the properties of a single cluster.