# Class Instance (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 This class identifies a Cloud Spanner [Instance](https://docs.cloud.google.com/cpp/docs/reference/spanner/latest/classgoogle_1_1cloud_1_1spanner_1_1Instance).
A Cloud Spanner instance is identified by its `project_id` and `instance_id`.

<br />

> [!NOTE]
> **Note:** This class makes no effort to validate the components of the database name. It is the application's responsibility to provide valid project, and instance ids. Passing invalid values will not be checked until the instance name is used in a RPC to spanner.

For more info about the `instance_id` format, see <https://cloud.google.com/spanner/docs/reference/rpc/google.spanner.admin.instance.v1#createinstancerequest>

<br />

## Constructors

### Instance(Instance const \&)

Copy and move

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

### Instance(Instance \&\&)

Copy and move

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

### Instance(Project, std::string)

Constructs an [Instance](https://docs.cloud.google.com/cpp/docs/reference/spanner/latest/classgoogle_1_1cloud_1_1spanner_1_1Instance) object identified by the given `project` and `instance_id`.

| **Parameters** ||
|---|---|
| **Name** | **Description** |
| `project` | `Project` |
| `instance_id` | `std::string` |

### Instance(std::string, std::string)

Constructs an [Instance](https://docs.cloud.google.com/cpp/docs/reference/spanner/latest/classgoogle_1_1cloud_1_1spanner_1_1Instance) object identified by the given IDs.
This is equivalent to first constructing a [`Project`](https://docs.cloud.google.com/cpp/docs/reference/common/latest/classgoogle_1_1cloud_1_1Project.html) from the given `project_id` and then calling the [`Instance(Project, std::string)`](https://docs.cloud.google.com/cpp/docs/reference/spanner/latest/classgoogle_1_1cloud_1_1spanner_1_1Instance#classgoogle_1_1cloud_1_1spanner_1_1Instance_1a0069927423cdb6c880a0f05ee965049f) constructor.

| **Parameters** ||
|---|---|
| **Name** | **Description** |
| `project_id` | `std::string` |
| `instance_id` | `std::string` |

## Operators

### operator=(Instance const \&)

Copy and move

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

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

### operator=(Instance \&\&)

Copy and move

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

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

## Functions

### project() const

Returns the [`Project`](https://docs.cloud.google.com/cpp/docs/reference/common/latest/classgoogle_1_1cloud_1_1Project.html) containing this instance.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `Project const &` |   |

### project_id() const

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `std::string const &` |   |

### instance_id() const

Returns the [Instance](https://docs.cloud.google.com/cpp/docs/reference/spanner/latest/classgoogle_1_1cloud_1_1spanner_1_1Instance) ID.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `std::string const &` |   |

### FullName() const

Returns the fully qualified instance name as a string of the form: "projects/


| **Returns** ||
|---|---|
| **Type** | **Description** |
| `std::string` |   |