# Class CreateInstanceRequestBuilder (3.7.0-rc)

3.7.0-rc 3.6.0 (latest) 3.5.0 3.4.0 3.3.0 3.2.0 2.48.0-rc 2.47.1 2.46.0 2.45.0 2.44.0 2.43.0 2.42.0 2.41.0 2.40.0 2.39.0 2.38.0 2.37.0 2.36.0 2.35.0 2.34.0 2.33.0 2.32.0 2.31.0 2.30.0 2.29.0 2.28.0 2.27.0 2.26.0 2.25.1 2.24.0 2.23.0 2.22.1 2.21.0 2.20.0 2.19.0 2.18.0 2.17.0 2.16.0 2.15.1 2.14.0 2.13.0 2.12.0 2.11.0 [CreateInstanceRequestBuilder](https://docs.cloud.google.com/cpp/docs/reference/spanner/latest/classgoogle_1_1cloud_1_1spanner_1_1CreateInstanceRequestBuilder) 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_admin::InstanceAdminClient client,
                        std::string const& project_id,
                        std::string const& instance_id,
                        std::string const& display_name,
                        std::string const& config_id) {
      namespace spanner = ::google::cloud::spanner;
      spanner::Instance in(project_id, instance_id);

      auto project = google::cloud::Project(project_id);
      std::string config_name =
          project.FullName() + "/instanceConfigs/" + config_id;
      auto instance =
          client
              .CreateInstance(spanner::CreateInstanceRequestBuilder(in, config_name)
                                  .SetDisplayName(display_name)
                                  .SetNodeCount(1)
                                  .SetLabels({{"cloud_spanner_samples", "true"}})
                                  .Build())
              .get();
      if (!instance) throw std::move(instance).status();
      std::cout << "Created instance [" << in << "]:\n" << instance->DebugString();
    }

## Constructors

### CreateInstanceRequestBuilder(CreateInstanceRequestBuilder const \&)

| **Parameter** ||
|---|---|
| **Name** | **Description** |
|   | `CreateInstanceRequestBuilder const &` |

### CreateInstanceRequestBuilder(CreateInstanceRequestBuilder \&\&)

| **Parameter** ||
|---|---|
| **Name** | **Description** |
|   | `CreateInstanceRequestBuilder &&` |

### CreateInstanceRequestBuilder(Instance const \&, std::string)

Constructor requires [Instance](https://docs.cloud.google.com/cpp/docs/reference/spanner/latest/classgoogle_1_1cloud_1_1spanner_1_1Instance) and Cloud Spanner instance config name.
The display_name is set to a default value of in.instance_id().

| **Parameters** ||
|---|---|
| **Name** | **Description** |
| `in` | `Instance const &` |
| `config` | `std::string` |

## Operators

### operator=(CreateInstanceRequestBuilder const \&)

| **Parameter** ||
|---|---|
| **Name** | **Description** |
|   | `CreateInstanceRequestBuilder const &` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `CreateInstanceRequestBuilder &` |   |

### operator=(CreateInstanceRequestBuilder \&\&)

| **Parameter** ||
|---|---|
| **Name** | **Description** |
|   | `CreateInstanceRequestBuilder &&` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `CreateInstanceRequestBuilder &` |   |

## Functions

### SetDisplayName(std::string) \&

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `display_name` | `std::string` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `CreateInstanceRequestBuilder &` |   |

### SetDisplayName(std::string) \&\&

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `display_name` | `std::string` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `CreateInstanceRequestBuilder &&` |   |

### SetNodeCount(int) \&

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `node_count` | `int` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `CreateInstanceRequestBuilder &` |   |

### SetNodeCount(int) \&\&

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `node_count` | `int` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `CreateInstanceRequestBuilder &&` |   |

### SetProcessingUnits(int) \&

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `processing_units` | `int` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `CreateInstanceRequestBuilder &` |   |

### SetProcessingUnits(int) \&\&

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `processing_units` | `int` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `CreateInstanceRequestBuilder &&` |   |

### SetLabels(std::map\< std::string, std::string \> const \&) \&

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `labels` | `std::map< std::string, std::string > const &` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `CreateInstanceRequestBuilder &` |   |

### SetLabels(std::map\< std::string, std::string \> const \&) \&\&

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `labels` | `std::map< std::string, std::string > const &` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `CreateInstanceRequestBuilder &&` |   |

### SetEdition(Edition) \&

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `edition` | `Edition` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `CreateInstanceRequestBuilder &` |   |

### SetEdition(Edition) \&\&

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `edition` | `Edition` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `CreateInstanceRequestBuilder &&` |   |

### Build() \&

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `google::spanner::admin::instance::v1::CreateInstanceRequest &` |   |

### Build() \&\&

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `google::spanner::admin::instance::v1::CreateInstanceRequest &&` |   |

## Enum

### google::cloud::spanner::CreateInstanceRequestBuilder::Edition