A Google Cloud resource is any component that you create or use within
Google Cloud. These resources form the building blocks of your
applications and systems running on the platform.

For more information on general Google Cloud resource naming,
see [Resource names](https://google.aip.dev/122).

## Resource naming format

The following table lists the full resource name formats for Knowledge Catalog resources:

| Resource | Full resource name format |
|---|---|
| [Entry group](https://docs.cloud.google.com/knowledge-catalog/docs/ingest-custom-sources.md.txt#entry-groups) | `projects/{PROJECT_ID}/locations/{LOCATION}/entryGroups/{ENTRY_GROUP_ID}` |
| [Entry](https://docs.cloud.google.com/knowledge-catalog/docs/ingest-custom-sources.md.txt#entries) | `projects/{PROJECT_ID}/locations/{LOCATION}/entryGroups/{ENTRY_GROUP_ID}/entries/{ENTRY_ID}` |
| [Entry type](https://docs.cloud.google.com/knowledge-catalog/docs/ingest-custom-sources.md.txt#entry-types) | `projects/{PROJECT_ID}/locations/{LOCATION}/entryTypes/{ENTRY_TYPE_ID}` |
| [Aspect type](https://docs.cloud.google.com/knowledge-catalog/docs/enrich-entries-metadata.md.txt#aspect-types) | `projects/{PROJECT_ID}/locations/{LOCATION}/aspectTypes/{ASPECT_TYPE_ID}` |
| [Entry link](https://docs.cloud.google.com/knowledge-catalog/docs/metadata-overview.md.txt#entry-links) | `projects/{PROJECT_ID}/locations/{LOCATION}/entryGroups/{ENTRY_GROUP_ID}/entryLinks/{ENTRY_LINK_ID}` |
| [Metadata job](https://docs.cloud.google.com/knowledge-catalog/docs/import-metadata.md.txt#components) | `projects/{PROJECT_ID}/locations/{LOCATION}/metadataJobs/{METADATA_JOB_ID}` |
| [Metadata feed](https://docs.cloud.google.com/knowledge-catalog/docs/metadata-change-feeds-overview.md.txt#terminology) | `projects/{PROJECT_ID}/locations/{LOCATION}/metadataFeeds/{METADATA_FEED_ID}` |
| [Glossary](https://docs.cloud.google.com/knowledge-catalog/docs/manage-glossaries.md.txt#glossary) | `projects/{PROJECT_ID}/locations/{LOCATION}/glossaries/{GLOSSARY_ID}` |
| [Glossary category](https://docs.cloud.google.com/knowledge-catalog/docs/manage-glossaries.md.txt#category) | `projects/{PROJECT_ID}/locations/{LOCATION}/glossaries/{GLOSSARY_ID}/categories/{GLOSSARY_CATEGORY_ID}` |
| [Glossary term](https://docs.cloud.google.com/knowledge-catalog/docs/manage-glossaries.md.txt#term) | `projects/{PROJECT_ID}/locations/{LOCATION}/glossaries/{GLOSSARY_ID}/terms/{GLOSSARY_TERM_ID}` |
| [Data product](https://docs.cloud.google.com/knowledge-catalog/docs/data-products-overview.md.txt) | `projects/{PROJECT_ID}/locations/{LOCATION}/dataProducts/{DATA_PRODUCT_ID}` |
| [Data domain](https://docs.cloud.google.com/knowledge-catalog/docs/data-domains-overview.md.txt) | `projects/{PROJECT_ID}/locations/{LOCATION}/dataDomains/{DATA_DOMAIN_ID}` |
| [Lineage process](https://docs.cloud.google.com/knowledge-catalog/docs/about-data-lineage.md.txt#lineage-model-process) | `projects/{PROJECT_ID}/locations/{LOCATION}/processes/{PROCESS_ID}` |
| [Lineage run](https://docs.cloud.google.com/knowledge-catalog/docs/about-data-lineage.md.txt#lineage-model-run) | `projects/{PROJECT_ID}/locations/{LOCATION}/processes/{PROCESS_ID}/runs/{RUN_ID}` |
| [Lineage event](https://docs.cloud.google.com/knowledge-catalog/docs/about-data-lineage.md.txt#lineage-model-event) | `projects/{PROJECT_ID}/locations/{LOCATION}/processes/{PROCESS_ID}/runs/{RUN_ID}/lineageEvents/{LINEAGE_EVENT_ID}` |

## Resource name components

The following sections provide a breakdown of each component.

### Project ID

The value must be the [project ID or project number](https://docs.cloud.google.com/resource-manager/docs/view-update-projects.md.txt#identifying_projects), available from
the Google Cloud console. For example, `my-cool-project` is a project ID,
while `123456789123` is a project number.

### Location

The value must be one of the supported Knowledge Catalog locations.
For a list of available locations, see
[Knowledge Catalog locations](https://docs.cloud.google.com/knowledge-catalog/docs/locations.md.txt).

### Resource ID

Resource paths contain unique identifier (`ID`) segments for each resource
and its parent resources in the hierarchy. The following sections explain
the naming guidelines and formatting requirements for each type of resource ID.

#### Standard resource IDs

Except for [entry IDs](https://docs.cloud.google.com/knowledge-catalog/docs/guidelines-resources.md.txt#entry-ids) and
[data lineage resource IDs](https://docs.cloud.google.com/knowledge-catalog/docs/guidelines-resources.md.txt#data-lineage-ids), all resource ID variables,
such as <var translate="no">{ENTRY_GROUP_ID}</var> and <var translate="no">{GLOSSARY_ID}</var>, must
conform to the following guidelines:

- Start with a lowercase letter.
- Contain between 1 and 63 characters.
- Contain only lowercase letters, numbers, hyphens, and underscores.
- End with a number or a lowercase letter.

#### System entry groups

> [!NOTE]
> **Note:** System-defined entry groups start with an `@` symbol. For example, the `ENTRY_GROUP_ID` for an automatically ingested BigQuery resource is `@bigquery`.

#### Entry IDs

The naming guidelines for an <var translate="no">{ENTRY_ID}</var> are different:

- Contain up to 4000 characters.
- Use an entry ID format based on the Google Cloud
  [full resource name](https://docs.cloud.google.com/apis/design/resource_names#full_resource_name).
  The format is the full resource name of the resource without the
  prefix double slashes in the API service name part. This allows
  retrieval of entries using their associated resource name.

  For example:
  - If the full resource name of a Looker instance is `//looker.googleapis.com/projects/my-project/locations/us-central1/instances/my-instance`, then the suggested <var translate="no">{ENTRY_ID}</var> is `looker.googleapis.com/projects/my-project/locations/us-central1/instances/my-instance`.

#### Data lineage resource IDs

Data lineage resources represent a hierarchy of data transformation operations:

- **Process ID (<var translate="no">{PROCESS_ID}</var>)**: Identifies the definition of a data transformation (such as a specific SQL query or ETL pipeline).
- **Run ID (<var translate="no">{RUN_ID}</var>)**: Identifies a single execution instance of a parent process.
- **Lineage event ID (<var translate="no">{LINEAGE_EVENT_ID}</var>)**: Identifies a discrete data movement event between sources and targets that occurred during a run.

When you create custom lineage resources through the API, the variables
<var translate="no">{PROCESS_ID}</var>, <var translate="no">{RUN_ID}</var>, and <var translate="no">{LINEAGE_EVENT_ID}</var>
must conform to the following guidelines:

- Contain up to 200 characters.
- Contain only letters (case-sensitive), numbers, hyphens, underscores, colons, and dots.

For automated lineage (such as BigQuery queries, Managed Service for Apache Spark,
or OpenLineage ingestion), Knowledge Catalog generates these IDs automatically.

### BigQuery entry names

When you interact with BigQuery resources through the Dataplex API, you must use specific formatting for the entry group ID and entry ID.

- **Entry group ID** : `@bigquery`
- **Entry ID** : `bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}`

#### Example

If your BigQuery table is `projects/test-project/datasets/test_dataset/tables/test_table`, the fully qualified Knowledge Catalog entry name is the following:

`projects/{PROJECT_ID}/locations/{LOCATION}/entryGroups/@bigquery/entries/bigquery.googleapis.com/projects/test-project/datasets/test_dataset/tables/test_table`