Class CreateInstanceRequest
- java.lang.Object
-
- com.google.cloud.bigtable.admin.v2.models.CreateInstanceRequest
-
public final class CreateInstanceRequest extends Object
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.
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
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description CreateInstanceRequest
addCluster(String clusterId, String zone, int serveNodes, StorageType storageType)
Adds a cluster to the instance request with manual scaling enabled.CreateInstanceRequest
addCluster(String clusterId, String zone, ClusterAutoscalingConfig clusterAutoscalingConfig, StorageType storageType)
Adds a cluster to the instance request with autoscaling enabled.CreateInstanceRequest
addCmekCluster(String clusterId, String zone, int serveNodes, StorageType storageType, String kmsKeyName)
Adds a CMEK protected cluster using the specified KMS key name.CreateInstanceRequest
addDevelopmentCluster(String clusterId, String zone, StorageType storageType)
Adds a DEVELOPMENT cluster to the instance request.CreateInstanceRequest
addLabel(String key, String value)
Adds an arbitrary label to the instance.static CreateInstanceRequest
of(String instanceId)
Builds a new request to create a new instance with the specified id.CreateInstanceRequest
setDisplayName(String displayName)
Sets the friendly display name of the instance.CreateInstanceRequest
setType(Instance.Type type)
Sets the type of instance.CreateInstanceRequest
toProto(String projectId)
Creates the request protobuf.
-
-
-
Method Detail
-
of
public static CreateInstanceRequest of(@Nonnull String instanceId)
Builds a new request to create a new instance with the specified id.
-
setDisplayName
public CreateInstanceRequest setDisplayName(@Nonnull String displayName)
Sets the friendly display name of the instance. If left unspecified, it will default to the id
-
setType
public CreateInstanceRequest setType(@Nonnull Instance.Type type)
Sets the type of instance.Can be either DEVELOPMENT or PRODUCTION. Defaults to PRODUCTION. Please see class javadoc for details.
-
addLabel
public CreateInstanceRequest addLabel(@Nonnull String key, @Nonnull 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
-
addCluster
public CreateInstanceRequest addCluster(@Nonnull String clusterId, @Nonnull String zone, int serveNodes, @Nonnull 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:
clusterId
- the name of the cluster.zone
- the zone where the cluster will be created.serveNodes
- the number of nodes that cluster will contain. DEVELOPMENT instance clusters must have exactly one node.storageType
- the type of storage used by this cluster to serve its parent instance's tables.
-
addCluster
public CreateInstanceRequest addCluster(@Nonnull String clusterId, @Nonnull String zone, @Nonnull ClusterAutoscalingConfig clusterAutoscalingConfig, @Nonnull 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:
clusterId
- the name of the cluster.zone
- the zone where the cluster will be created.clusterAutoscalingConfig
- the autoscaling config that sets the min serve nodes, max serve nodes, and CPU utilization percentagestorageType
- the type of storage used by this cluster to serve its parent instance's tables.
-
addCmekCluster
public CreateInstanceRequest addCmekCluster(@Nonnull String clusterId, @Nonnull String zone, int serveNodes, @Nonnull StorageType storageType, @Nonnull String kmsKeyName)
Adds a CMEK protected cluster using the specified KMS key name.- Parameters:
clusterId
- the name of the cluster.zone
- the zone where the cluster will be created.serveNodes
- the number of nodes that cluster will contain. DEVELOPMENT instance clusters must have exactly one node.storageType
- the type of storage used by this cluster to serve its parent instance's tables.kmsKeyName
- 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}`
-
addDevelopmentCluster
public CreateInstanceRequest addDevelopmentCluster(@Nonnull String clusterId, @Nonnull String zone, @Nonnull StorageType storageType)
Adds a DEVELOPMENT cluster to the instance request.This instance will have exactly one node cluster.
- Parameters:
clusterId
- the name of the cluster.zone
- the zone where the cluster will be created.storageType
- the type of storage used by this cluster to serve its parent instance's tables.
-
toProto
@InternalApi 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.
-
-