Google Cloud Spanner C++ Client
A C++ Client Library for Google Cloud Spanner
Public Member Functions | List of all members
google::cloud::spanner::v1::CreateInstanceRequestBuilder Class Reference

CreateInstanceRequestBuilder is a builder class for google::spanner::admin::instance::v1::CreateInstanceRequest More...

#include <google/cloud/spanner/create_instance_request_builder.h>

Public Member Functions

 CreateInstanceRequestBuilder (CreateInstanceRequestBuilder const &)=default
 
 CreateInstanceRequestBuilder (CreateInstanceRequestBuilder &&)=default
 
CreateInstanceRequestBuilderoperator= (CreateInstanceRequestBuilder const &)=default
 
CreateInstanceRequestBuilderoperator= (CreateInstanceRequestBuilder &&)=default
 
 CreateInstanceRequestBuilder (Instance const &in, std::string config)
 Constructor requires Instance and Cloud Spanner instance config name. More...
 
CreateInstanceRequestBuilderSetDisplayName (std::string display_name) &
 
CreateInstanceRequestBuilder && SetDisplayName (std::string display_name) &&
 
CreateInstanceRequestBuilderSetNodeCount (int node_count) &
 
CreateInstanceRequestBuilder && SetNodeCount (int node_count) &&
 
CreateInstanceRequestBuilderSetLabels (std::map< std::string, std::string > const &labels) &
 
CreateInstanceRequestBuilder && SetLabels (std::map< std::string, std::string > const &labels) &&
 
google::spanner::admin::instance::v1::CreateInstanceRequest & Build () &
 
google::spanner::admin::instance::v1::CreateInstanceRequest && Build () &&
 

Detailed Description

CreateInstanceRequestBuilder is a builder class for google::spanner::admin::instance::v1::CreateInstanceRequest

This is useful when calling the InstanceAdminClient::CreateInstance() function.

Example
void CreateInstance(google::cloud::spanner::InstanceAdminClient client,
std::string const& project_id,
std::string const& instance_id,
std::string const& display_name) {
using ::google::cloud::future;
using ::google::cloud::StatusOr;
google::cloud::spanner::Instance in(project_id, instance_id);
// Pick instance config that matches the regex, if there's no match, pick the
// first one.
std::string instance_config = [client, project_id]() mutable {
std::string ret{};
std::regex filter = std::regex(".*us-west.*");
for (auto const& instance_config : client.ListInstanceConfigs(project_id)) {
if (!instance_config) break;
if (ret.empty()) {
// fallback to the first element.
ret = instance_config->name();
}
if (std::regex_match(instance_config->name(), filter)) {
return instance_config->name();
}
}
return ret;
}();
if (instance_config.empty()) {
throw std::runtime_error("could not pick an instance config");
}
future<StatusOr<google::spanner::admin::instance::v1::Instance>> f =
client.CreateInstance(
google::cloud::spanner::CreateInstanceRequestBuilder(in,
instance_config)
.SetDisplayName(display_name)
.SetLabels({{"label-key", "label-value"}})
.Build());
StatusOr<google::spanner::admin::instance::v1::Instance> instance = f.get();
if (!instance) {
throw std::runtime_error(instance.status().message());
}
std::cout << "Created instance [" << in << "]\n";
}

Definition at line 38 of file create_instance_request_builder.h.

Constructor & Destructor Documentation

◆ CreateInstanceRequestBuilder() [1/3]

google::cloud::spanner::v1::CreateInstanceRequestBuilder::CreateInstanceRequestBuilder ( CreateInstanceRequestBuilder const &  )
default

◆ CreateInstanceRequestBuilder() [2/3]

google::cloud::spanner::v1::CreateInstanceRequestBuilder::CreateInstanceRequestBuilder ( CreateInstanceRequestBuilder &&  )
default

◆ CreateInstanceRequestBuilder() [3/3]

google::cloud::spanner::v1::CreateInstanceRequestBuilder::CreateInstanceRequestBuilder ( Instance const &  in,
std::string  config 
)
inline

Constructor requires Instance and Cloud Spanner instance config name.

It sets node_count = 1, and display_name = instance_id as the default values.

Definition at line 52 of file create_instance_request_builder.h.

Member Function Documentation

◆ Build() [1/2]

google::spanner::admin::instance::v1::CreateInstanceRequest& google::cloud::spanner::v1::CreateInstanceRequestBuilder::Build ( ) &
inline

Definition at line 99 of file create_instance_request_builder.h.

◆ Build() [2/2]

google::spanner::admin::instance::v1::CreateInstanceRequest&& google::cloud::spanner::v1::CreateInstanceRequestBuilder::Build ( ) &&
inline

Definition at line 102 of file create_instance_request_builder.h.

◆ operator=() [1/2]

CreateInstanceRequestBuilder& google::cloud::spanner::v1::CreateInstanceRequestBuilder::operator= ( CreateInstanceRequestBuilder const &  )
default

◆ operator=() [2/2]

CreateInstanceRequestBuilder& google::cloud::spanner::v1::CreateInstanceRequestBuilder::operator= ( CreateInstanceRequestBuilder &&  )
default

◆ SetDisplayName() [1/2]

CreateInstanceRequestBuilder& google::cloud::spanner::v1::CreateInstanceRequestBuilder::SetDisplayName ( std::string  display_name) &
inline

Definition at line 61 of file create_instance_request_builder.h.

◆ SetDisplayName() [2/2]

CreateInstanceRequestBuilder&& google::cloud::spanner::v1::CreateInstanceRequestBuilder::SetDisplayName ( std::string  display_name) &&
inline

Definition at line 66 of file create_instance_request_builder.h.

◆ SetLabels() [1/2]

CreateInstanceRequestBuilder& google::cloud::spanner::v1::CreateInstanceRequestBuilder::SetLabels ( std::map< std::string, std::string > const &  labels) &
inline

Definition at line 81 of file create_instance_request_builder.h.

◆ SetLabels() [2/2]

CreateInstanceRequestBuilder&& google::cloud::spanner::v1::CreateInstanceRequestBuilder::SetLabels ( std::map< std::string, std::string > const &  labels) &&
inline

Definition at line 90 of file create_instance_request_builder.h.

◆ SetNodeCount() [1/2]

CreateInstanceRequestBuilder& google::cloud::spanner::v1::CreateInstanceRequestBuilder::SetNodeCount ( int  node_count) &
inline

Definition at line 71 of file create_instance_request_builder.h.

◆ SetNodeCount() [2/2]

CreateInstanceRequestBuilder&& google::cloud::spanner::v1::CreateInstanceRequestBuilder::SetNodeCount ( int  node_count) &&
inline

Definition at line 76 of file create_instance_request_builder.h.