Class CreateInstanceRequest (2.16.0)

public final class CreateInstanceRequest

Parameters for creating a new Bigtable Instance.

A Cloud Bigtable instance is mostly just a container for your clusters and nodes, which do all of the real work. Instances come in 2 flavors:

Production
A standard instance with either 1 or 2 clusters, as well as 3 or more nodes in each cluster. You cannot downgrade a production instance to a development instance.
Development
A low-cost instance for development and testing, with performance limited to the equivalent of a 1-node cluster. Development instances only support a single 1 node cluster. At any point this can be upgraded to a production instance.

When creating an Instance, you must create at least one cluster in it.

Examples:


 // Small production instance:
 CreateInstanceRequest smallProdInstanceRequest = CreateInstanceRequest.of("my-small-instance")
   .addCluster("cluster1", "us-east1-c", 3, StorageType.SSD);

 // Development instance:
 CreateInstanceRequest smallProdInstanceRequest = CreateInstanceRequest.of("my-dev-instance")
   .setType(Type.DEVELOPMENT)
   .addDevelopmentCluster("cluster1", "us-east1-c", StorageType.SSD);

 

See Also: For more details

Inheritance

java.lang.Object > CreateInstanceRequest

Static Methods

of(String instanceId)

public static CreateInstanceRequest of(String instanceId)

Builds a new request to create a new instance with the specified id.

Parameter
NameDescription
instanceIdString
Returns
TypeDescription
CreateInstanceRequest

Methods

addCluster(String clusterId, String zone, ClusterAutoscalingConfig clusterAutoscalingConfig, StorageType storageType)

public CreateInstanceRequest addCluster(String clusterId, String zone, ClusterAutoscalingConfig clusterAutoscalingConfig, StorageType storageType)

Adds a cluster to the instance request with autoscaling enabled.

All new instances must have at least one cluster. DEVELOPMENT instances must have exactly one cluster.

Parameters
NameDescription
clusterIdString

the name of the cluster.

zoneString

the zone where the cluster will be created.

clusterAutoscalingConfigClusterAutoscalingConfig

the autoscaling config that sets the min serve nodes, max serve nodes, and CPU utilization percentage

storageTypeStorageType

the type of storage used by this cluster to serve its parent instance's tables.

Returns
TypeDescription
CreateInstanceRequest

addCluster(String clusterId, String zone, int serveNodes, StorageType storageType)

public CreateInstanceRequest addCluster(String clusterId, String zone, int serveNodes, StorageType storageType)

Adds a cluster to the instance request with manual scaling enabled.

All new instances must have at least one cluster. DEVELOPMENT instances must have exactly one cluster.

Parameters
NameDescription
clusterIdString

the name of the cluster.

zoneString

the zone where the cluster will be created.

serveNodesint

the number of nodes that cluster will contain. DEVELOPMENT instance clusters must have exactly one node.

storageTypeStorageType

the type of storage used by this cluster to serve its parent instance's tables.

Returns
TypeDescription
CreateInstanceRequest

addCmekCluster(String clusterId, String zone, int serveNodes, StorageType storageType, String kmsKeyName)

public CreateInstanceRequest addCmekCluster(String clusterId, String zone, int serveNodes, StorageType storageType, String kmsKeyName)

Adds a CMEK protected cluster using the specified KMS key name.

Parameters
NameDescription
clusterIdString

the name of the cluster.

zoneString

the zone where the cluster will be created.

serveNodesint

the number of nodes that cluster will contain. DEVELOPMENT instance clusters must have exactly one node.

storageTypeStorageType

the type of storage used by this cluster to serve its parent instance's tables.

kmsKeyNameString

the full name of the KMS key name to use in the format projects/{key_project_id}/locations/{location}/keyRings/{ring_name}/cryptoKeys/{key_name}

Returns
TypeDescription
CreateInstanceRequest

addDevelopmentCluster(String clusterId, String zone, StorageType storageType)

public CreateInstanceRequest addDevelopmentCluster(String clusterId, String zone, StorageType storageType)

Adds a DEVELOPMENT cluster to the instance request.

This instance will have exactly one node cluster.

Parameters
NameDescription
clusterIdString

the name of the cluster.

zoneString

the zone where the cluster will be created.

storageTypeStorageType

the type of storage used by this cluster to serve its parent instance's tables.

Returns
TypeDescription
CreateInstanceRequest

addLabel(String key, String value)

public CreateInstanceRequest addLabel(String key, String value)

Adds an arbitrary label to the instance.

Labels are key-value pairs that you can use to group related instances and store metadata about an instance. See Also: For more details

Parameters
NameDescription
keyString
valueString
Returns
TypeDescription
CreateInstanceRequest

setDisplayName(String displayName)

public CreateInstanceRequest setDisplayName(String displayName)

Sets the friendly display name of the instance. If left unspecified, it will default to the id

Parameter
NameDescription
displayNameString
Returns
TypeDescription
CreateInstanceRequest

setType(Instance.Type type)

public CreateInstanceRequest setType(Instance.Type type)

Sets the type of instance.

Can be either DEVELOPMENT or PRODUCTION. Defaults to PRODUCTION. Please see class javadoc for details.

Parameter
NameDescription
typeInstance.Type
Returns
TypeDescription
CreateInstanceRequest

toProto(String projectId)

public CreateInstanceRequest toProto(String projectId)

Creates the request protobuf. This method is considered an internal implementation detail and not meant to be used by applications.

Parameter
NameDescription
projectIdString
Returns
TypeDescription
CreateInstanceRequest