# Google Cloud project

> The Google Cloud project the gcp-* packs talk to, set up the way the Google Cloud client libraries are set up for the real services.

Source: https://axx.nimbusxr.us/references/steps/gcp-core/

The Google Cloud project the gcp-* packs talk to, set up the way the Google Cloud client libraries are set up for the real services.

Register the project once with `the {word} gcp project with the following properties:`; every gcp-* step of the scenario uses it (the first project registered is the default).

| Property | |
| --- | --- |
| `project` | required: the project ID |
| `endpoint` | where every service of the project is, instead of Google Cloud: a local emulator such as `http://localhost:4588`. The clients then connect without credentials (and without TLS for an `http://` endpoint) |
| `credentials` | a service account key file (resolved against `resources`) |

Without `credentials`, the clients use Application Default Credentials, as they always do: `GOOGLE_APPLICATION_CREDENTIALS`, the gcloud login, or the workload's service account. Values expand `${env:..}` and `${sys:..}`, so the same features run against Google Cloud and against an emulator.

## `gcp-core.project`

```gherkin
Given the {word} gcp project with the following properties:
  | ... | ... |
```

Register the Google Cloud project the gcp-* steps talk to: `project` (required), `endpoint` (an emulator), `credentials` (a service account key file). Without credentials the clients use Application Default Credentials.

**Parameters:** `{word}` (one word, no spaces)

**Example:**

```gherkin
Given the billing gcp project with the following properties:
```

_Since 0.1.0._
