From af23b0ff74beecc05c55f156cc4c8cd1c9014c3a Mon Sep 17 00:00:00 2001
From: Josh Suereth <joshuasuereth@google.com>
Date: Tue, 18 Mar 2025 07:01:46 -0700
Subject: [PATCH 01/13] Add link to apphub resources.

---
 docs/attributes-registry/gcp.md            |  29 +++++-
 docs/resource/cloud-provider/gcp/README.md |   1 +
 docs/resource/cloud-provider/gcp/apphub.md | 100 +++++++++++++++++++++
 model/gcp/apphub.yaml                      |  43 +++++++++
 model/gcp/registry.yaml                    |  69 ++++++++++++++
 5 files changed, 240 insertions(+), 2 deletions(-)
 create mode 100644 docs/resource/cloud-provider/gcp/apphub.md
 create mode 100644 model/gcp/apphub.yaml

diff --git a/docs/attributes-registry/gcp.md b/docs/attributes-registry/gcp.md
index 090cfb0940..24f3b74352 100644
--- a/docs/attributes-registry/gcp.md
+++ b/docs/attributes-registry/gcp.md
@@ -3,19 +3,44 @@
 
 # GCP
 
+- [GCP - AppHub Attributes](#gcp---apphub-attributes)
 - [GCP Client Attributes](#gcp-client-attributes)
 - [GCP - Google Cloud Run Attributes](#gcp---google-cloud-run-attributes)
 - [GCP - Google Compute Engine (GCE) Attributes](#gcp---google-compute-engine-gce-attributes)
 
+## GCP - AppHub Attributes
+
+This document defines attributes AppHub will apply to resources in GCP. See [AppHub overview](https://cloud.google.com/app-hub/docs/overview).
+
+| Attribute | Type | Description | Examples | Stability |
+|---|---|---|---|---|
+| <a id="gcp-apphub-application-container" href="#gcp-apphub-application-container">`gcp.apphub.application.container`</a> | string | The container within GCP where the AppHub applciation is defined. | `projects/my-container-project` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-application-id" href="#gcp-apphub-application-id">`gcp.apphub.application.id`</a> | string | The name of the application as configured in AppHub. | `my-application` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-application-location" href="#gcp-apphub-application-location">`gcp.apphub.application.location`</a> | string | The GCP zone or region where the application is defined. | `us-central1` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-service-criticality-type" href="#gcp-apphub-service-criticality-type">`gcp.apphub.service.criticality_type`</a> | string | Criticality of an application, service, or workload indicates its importance to the business. [1] | `CRITICAL`; `HIGH`; `MEDIUM`; `LOW` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-service-environment-type" href="#gcp-apphub-service-environment-type">`gcp.apphub.service.environment_type`</a> | string | Environment of an application, service, or workload is the stage of a software lifecycle, for example, production, staging, or development. [2] | `DEVELOPMENT`; `TEST`; `STAGING`; `PRODUCTION` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-service-id" href="#gcp-apphub-service-id">`gcp.apphub.service.id`</a> | string | The name of the service as configured in AppHub. | `my-service` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-workload-criticality-type" href="#gcp-apphub-workload-criticality-type">`gcp.apphub.workload.criticality_type`</a> | string | Criticality of an application, service, or workload indicates its importance to the business. [3] | `CRITICAL`; `HIGH`; `MEDIUM`; `LOW` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-workload-environment-type" href="#gcp-apphub-workload-environment-type">`gcp.apphub.workload.environment_type`</a> | string | Environment of an application, service, or workload is the stage of a software lifecycle, for example, production, staging, or development. [4] | `DEVELOPMENT`; `TEST`; `STAGING`; `PRODUCTION` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-workload-id" href="#gcp-apphub-workload-id">`gcp.apphub.workload.id`</a> | string | The name of the workload as configured in AppHub. | `my-workload` | ![Development](https://img.shields.io/badge/-development-blue) |
+
+**[1] `gcp.apphub.service.criticality_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+
+**[2] `gcp.apphub.service.environment_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+
+**[3] `gcp.apphub.workload.criticality_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+
+**[4] `gcp.apphub.workload.environment_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+
 ## GCP Client Attributes
 
 Attributes for Google Cloud client libraries.
 
 | Attribute | Type | Description | Examples | Stability |
 |---|---|---|---|---|
-| <a id="gcp-client-service" href="#gcp-client-service">`gcp.client.service`</a> | string | Identifies the Google Cloud service for which the official client library is intended. [1] | `appengine`; `run`; `firestore`; `alloydb`; `spanner` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-client-service" href="#gcp-client-service">`gcp.client.service`</a> | string | Identifies the Google Cloud service for which the official client library is intended. [5] | `appengine`; `run`; `firestore`; `alloydb`; `spanner` | ![Development](https://img.shields.io/badge/-development-blue) |
 
-**[1] `gcp.client.service`:** Intended to be a stable identifier for Google Cloud client libraries that is uniform across implementation languages. The value should be derived from the canonical service domain for the service; for example, 'foo.googleapis.com' should result in a value of 'foo'.
+**[5] `gcp.client.service`:** Intended to be a stable identifier for Google Cloud client libraries that is uniform across implementation languages. The value should be derived from the canonical service domain for the service; for example, 'foo.googleapis.com' should result in a value of 'foo'.
 
 ## GCP - Google Cloud Run Attributes
 
diff --git a/docs/resource/cloud-provider/gcp/README.md b/docs/resource/cloud-provider/gcp/README.md
index 1e8310dac9..f071434386 100644
--- a/docs/resource/cloud-provider/gcp/README.md
+++ b/docs/resource/cloud-provider/gcp/README.md
@@ -15,5 +15,6 @@ provider (like account ID, operating system, etc), it belongs in the parent
 
 - [Cloud Run](./cloud-run.md)
 - [Compute Engine](./gce.md)
+- [AppHub](./apphub.md)
 
 [DocumentStatus]: https://opentelemetry.io/docs/specs/otel/document-status
diff --git a/docs/resource/cloud-provider/gcp/apphub.md b/docs/resource/cloud-provider/gcp/apphub.md
new file mode 100644
index 0000000000..be364efbce
--- /dev/null
+++ b/docs/resource/cloud-provider/gcp/apphub.md
@@ -0,0 +1,100 @@
+# Google Cloud AppHub
+
+**Status**: [Development][DocumentStatus]
+
+These conventions are used by Google Cloud when using AppHub. Observability
+data from Google Cloud will be annotated with these resource types, depending
+on the source of telemetry. For example, metrics coming from a Google Cloud
+service will be annotated with the appropriate `gcp.apphub.application` and
+`gcp.apphub.service` as configured in AppHub.
+
+See [Supported Resources](https://cloud.google.com/app-hub/docs/supported-resources) for what data will be annotated by Google Cloud.
+
+## Application
+
+<!-- semconv resource.gcp.apphub.application -->
+<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
+<!-- see templates/registry/markdown/snippet.md.j2 -->
+<!-- prettier-ignore-start -->
+<!-- markdownlint-capture -->
+<!-- markdownlint-disable -->
+
+
+**Status:** ![Development](https://img.shields.io/badge/-development-blue)
+
+**type:** `gcp.apphub.application`
+
+**Description:** Attributes denoting data from an Application in AppHub. See [AppHub overview](https://cloud.google.com/app-hub/docs/overview).
+
+| Attribute  | Type | Description  | Examples  | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`gcp.apphub.application.container`](/docs/attributes-registry/gcp.md) | string | The container within GCP where the AppHub applciation is defined. | `projects/my-container-project` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+| [`gcp.apphub.application.id`](/docs/attributes-registry/gcp.md) | string | The name of the application as configured in AppHub. | `my-application` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+| [`gcp.apphub.application.location`](/docs/attributes-registry/gcp.md) | string | The GCP zone or region where the application is defined. | `us-central1` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+
+<!-- markdownlint-restore -->
+<!-- prettier-ignore-end -->
+<!-- END AUTOGENERATED TEXT -->
+<!-- endsemconv -->
+
+## Service
+
+<!-- semconv resource.gcp.apphub.service -->
+<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
+<!-- see templates/registry/markdown/snippet.md.j2 -->
+<!-- prettier-ignore-start -->
+<!-- markdownlint-capture -->
+<!-- markdownlint-disable -->
+
+
+**Status:** ![Development](https://img.shields.io/badge/-development-blue)
+
+**type:** `gcp.apphub.service`
+
+**Description:** Attributes denoting data from a Service in AppHub. See [AppHub overview](https://cloud.google.com/app-hub/docs/overview).
+
+| Attribute  | Type | Description  | Examples  | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`gcp.apphub.service.criticality_type`](/docs/attributes-registry/gcp.md) | string | Criticality of an application, service, or workload indicates its importance to the business. [1] | `CRITICAL`; `HIGH`; `MEDIUM`; `LOW` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+| [`gcp.apphub.service.environment_type`](/docs/attributes-registry/gcp.md) | string | Environment of an application, service, or workload is the stage of a software lifecycle, for example, production, staging, or development. [2] | `DEVELOPMENT`; `TEST`; `STAGING`; `PRODUCTION` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+| [`gcp.apphub.service.id`](/docs/attributes-registry/gcp.md) | string | The name of the service as configured in AppHub. | `my-service` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+
+**[1] `gcp.apphub.service.criticality_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+
+**[2] `gcp.apphub.service.environment_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+
+<!-- markdownlint-restore -->
+<!-- prettier-ignore-end -->
+<!-- END AUTOGENERATED TEXT -->
+<!-- endsemconv -->
+
+## Workload
+
+<!-- semconv resource.gcp.apphub.workload -->
+<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
+<!-- see templates/registry/markdown/snippet.md.j2 -->
+<!-- prettier-ignore-start -->
+<!-- markdownlint-capture -->
+<!-- markdownlint-disable -->
+
+
+**Status:** ![Development](https://img.shields.io/badge/-development-blue)
+
+**type:** `gcp.apphub.workload`
+
+**Description:** Attributes denoting data from a Workload in AppHub. See [AppHub overview](https://cloud.google.com/app-hub/docs/overview).
+
+| Attribute  | Type | Description  | Examples  | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`gcp.apphub.workload.criticality_type`](/docs/attributes-registry/gcp.md) | string | Criticality of an application, service, or workload indicates its importance to the business. [1] | `CRITICAL`; `HIGH`; `MEDIUM`; `LOW` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+| [`gcp.apphub.workload.environment_type`](/docs/attributes-registry/gcp.md) | string | Environment of an application, service, or workload is the stage of a software lifecycle, for example, production, staging, or development. [2] | `DEVELOPMENT`; `TEST`; `STAGING`; `PRODUCTION` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+| [`gcp.apphub.workload.id`](/docs/attributes-registry/gcp.md) | string | The name of the workload as configured in AppHub. | `my-workload` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+
+**[1] `gcp.apphub.workload.criticality_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+
+**[2] `gcp.apphub.workload.environment_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+
+<!-- markdownlint-restore -->
+<!-- prettier-ignore-end -->
+<!-- END AUTOGENERATED TEXT -->
+<!-- endsemconv -->
diff --git a/model/gcp/apphub.yaml b/model/gcp/apphub.yaml
new file mode 100644
index 0000000000..0c867f2cb1
--- /dev/null
+++ b/model/gcp/apphub.yaml
@@ -0,0 +1,43 @@
+groups:
+  - id: resource.gcp.apphub.application
+    type: resource
+    stability: development
+    name: gcp.apphub.application
+    brief: >
+      Attributes denoting data from an Application in AppHub.
+      See [AppHub overview](https://cloud.google.com/app-hub/docs/overview).
+    attributes:
+      - ref: gcp.apphub.application.container
+        requirement_level: required
+      - ref: gcp.apphub.application.location
+        requirement_level: required
+      - ref: gcp.apphub.application.id
+        requirement_level: required
+  - id: resource.gcp.apphub.service
+    type: resource
+    stability: development
+    name: gcp.apphub.service
+    brief: >
+      Attributes denoting data from a Service in AppHub.
+      See [AppHub overview](https://cloud.google.com/app-hub/docs/overview).
+    attributes:
+      - ref: gcp.apphub.service.id
+        requirement_level: required
+      - ref: gcp.apphub.service.environment_type
+        requirement_level: required
+      - ref: gcp.apphub.service.criticality_type
+        requirement_level: required
+  - id: resource.gcp.apphub.workload
+    type: resource
+    stability: development
+    name: gcp.apphub.workload
+    brief: >
+      Attributes denoting data from a Workload in AppHub.
+      See [AppHub overview](https://cloud.google.com/app-hub/docs/overview).
+    attributes:
+      - ref: gcp.apphub.workload.id
+        requirement_level: required
+      - ref: gcp.apphub.workload.environment_type
+        requirement_level: required
+      - ref: gcp.apphub.workload.criticality_type
+        requirement_level: required
\ No newline at end of file
diff --git a/model/gcp/registry.yaml b/model/gcp/registry.yaml
index a66aa11dce..3b3cda6908 100644
--- a/model/gcp/registry.yaml
+++ b/model/gcp/registry.yaml
@@ -39,6 +39,75 @@ groups:
           [`CLOUD_RUN_TASK_INDEX`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars)
           environment variable.
         examples: [0, 1]
+  - id: registry.gcp.apphub
+    type: attribute_group
+    display_name: GCP - AppHub Attributes
+    brief: >
+      This document defines attributes AppHub will apply to resources in GCP.
+      See [AppHub overview](https://cloud.google.com/app-hub/docs/overview).
+    attributes:
+      - id: gcp.apphub.application.container
+        type: string
+        stability: development
+        brief: >
+          The container within GCP where the AppHub applciation is defined.
+        examples: ['projects/my-container-project']
+      - id: gcp.apphub.application.location
+        type: string
+        stability: development
+        brief: >
+          The GCP zone or region where the application is defined.
+        examples: ['us-central1']
+      - id: gcp.apphub.application.id
+        type: string
+        stability: development
+        brief: >
+          The name of the application as configured in AppHub.
+        examples: ['my-application']
+      - id: gcp.apphub.service.id
+        type: string
+        stability: development
+        brief: >
+          The name of the service as configured in AppHub.
+        examples: ['my-service']
+      - id: gcp.apphub.service.environment_type
+        type: string
+        stability: development
+        brief: >
+          Environment of an application, service, or workload is the stage of a software lifecycle, for example, production, staging, or development.
+        note: >
+          [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+        examples: ['DEVELOPMENT', 'TEST', 'STAGING', 'PRODUCTION']
+      - id: gcp.apphub.service.criticality_type
+        type: string
+        stability: development
+        brief: >
+          Criticality of an application, service, or workload indicates its importance to the business.
+        note: >
+          [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+        examples: ['CRITICAL', 'HIGH', 'MEDIUM', 'LOW']
+      - id: gcp.apphub.workload.id
+        type: string
+        stability: development
+        brief: >
+          The name of the workload as configured in AppHub.
+        examples: ['my-workload']
+      - id: gcp.apphub.workload.environment_type
+        type: string
+        stability: development
+        brief: >
+          Environment of an application, service, or workload is the stage of a software lifecycle, for example, production, staging, or development.
+        note: >
+          [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+        examples: ['DEVELOPMENT', 'TEST', 'STAGING', 'PRODUCTION']
+      - id: gcp.apphub.workload.criticality_type
+        type: string
+        stability: development
+        brief: >
+          Criticality of an application, service, or workload indicates its importance to the business.
+        note: >
+          [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+        examples: ['CRITICAL', 'HIGH', 'MEDIUM', 'LOW']
   - id: registry.gcp.gce
     type: attribute_group
     display_name: GCP - Google Compute Engine (GCE) Attributes

From 1d4e45c0589f98fc6ca1dfd05f24fb3ff18dac79 Mon Sep 17 00:00:00 2001
From: Josh Suereth <joshuasuereth@google.com>
Date: Tue, 18 Mar 2025 09:30:42 -0700
Subject: [PATCH 02/13] Add changelog.

---
 .chloggen/gcp-apphub.yaml | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
 create mode 100755 .chloggen/gcp-apphub.yaml

diff --git a/.chloggen/gcp-apphub.yaml b/.chloggen/gcp-apphub.yaml
new file mode 100755
index 0000000000..dc8cf5bc8a
--- /dev/null
+++ b/.chloggen/gcp-apphub.yaml
@@ -0,0 +1,22 @@
+# Use this changelog template to create an entry for release notes.
+#
+# If your change doesn't affect end users you should instead start
+# your pull request title with [chore] or use the "Skip Changelog" label.
+
+# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
+change_type: enhancement
+
+# The name of the area of concern in the attributes-registry, (e.g. http, cloud, db)
+component: gcp
+
+# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
+note: Adds GCP AppHub labels for resource.
+
+# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists.
+# The values here must be integers.
+issues: [2006]
+
+# (Optional) One or more lines of additional information to render under the primary note.
+# These lines will be padded with 2 spaces and then inserted directly into the document.
+# Use pipe (|) for multiline entries.
+subtext:

From d30f6b123df8cfba3d1da4df1675922f0c6ab896 Mon Sep 17 00:00:00 2001
From: Josh Suereth <joshuasuereth@google.com>
Date: Tue, 18 Mar 2025 09:36:26 -0700
Subject: [PATCH 03/13] Fix markdownlint issues.

---
 docs/resource/cloud-provider/gcp/apphub.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/docs/resource/cloud-provider/gcp/apphub.md b/docs/resource/cloud-provider/gcp/apphub.md
index be364efbce..197415f1f5 100644
--- a/docs/resource/cloud-provider/gcp/apphub.md
+++ b/docs/resource/cloud-provider/gcp/apphub.md
@@ -98,3 +98,5 @@ See [Supported Resources](https://cloud.google.com/app-hub/docs/supported-resour
 <!-- prettier-ignore-end -->
 <!-- END AUTOGENERATED TEXT -->
 <!-- endsemconv -->
+
+[DocumentStatus]: https://opentelemetry.io/docs/specs/otel/document-status

From c136b42cfd972a86ca381886e73d763d4c8fd554 Mon Sep 17 00:00:00 2001
From: Josh Suereth <joshuasuereth@google.com>
Date: Tue, 18 Mar 2025 10:07:28 -0700
Subject: [PATCH 04/13] Fix yaml lint.

---
 model/gcp/apphub.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/model/gcp/apphub.yaml b/model/gcp/apphub.yaml
index 0c867f2cb1..6a707cebe0 100644
--- a/model/gcp/apphub.yaml
+++ b/model/gcp/apphub.yaml
@@ -40,4 +40,4 @@ groups:
       - ref: gcp.apphub.workload.environment_type
         requirement_level: required
       - ref: gcp.apphub.workload.criticality_type
-        requirement_level: required
\ No newline at end of file
+        requirement_level: required

From 5e5eb01f0b23e52a51308c311c6827433169fc44 Mon Sep 17 00:00:00 2001
From: Josh Suereth <joshuasuereth@google.com>
Date: Tue, 18 Mar 2025 10:55:51 -0700
Subject: [PATCH 05/13] Fix typo.

---
 model/gcp/registry.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/model/gcp/registry.yaml b/model/gcp/registry.yaml
index 3b3cda6908..7b30ed6715 100644
--- a/model/gcp/registry.yaml
+++ b/model/gcp/registry.yaml
@@ -50,7 +50,7 @@ groups:
         type: string
         stability: development
         brief: >
-          The container within GCP where the AppHub applciation is defined.
+          The container within GCP where the AppHub application is defined.
         examples: ['projects/my-container-project']
       - id: gcp.apphub.application.location
         type: string

From 796ecd8a7b8edc4e2f24cf27686a466e8f5e60ae Mon Sep 17 00:00:00 2001
From: Josh Suereth <joshuasuereth@google.com>
Date: Tue, 18 Mar 2025 11:12:31 -0700
Subject: [PATCH 06/13] Regenerate tables.

---
 docs/attributes-registry/gcp.md            | 2 +-
 docs/resource/cloud-provider/gcp/apphub.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/attributes-registry/gcp.md b/docs/attributes-registry/gcp.md
index 24f3b74352..b80b18f16b 100644
--- a/docs/attributes-registry/gcp.md
+++ b/docs/attributes-registry/gcp.md
@@ -14,7 +14,7 @@ This document defines attributes AppHub will apply to resources in GCP. See [App
 
 | Attribute | Type | Description | Examples | Stability |
 |---|---|---|---|---|
-| <a id="gcp-apphub-application-container" href="#gcp-apphub-application-container">`gcp.apphub.application.container`</a> | string | The container within GCP where the AppHub applciation is defined. | `projects/my-container-project` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-application-container" href="#gcp-apphub-application-container">`gcp.apphub.application.container`</a> | string | The container within GCP where the AppHub application is defined. | `projects/my-container-project` | ![Development](https://img.shields.io/badge/-development-blue) |
 | <a id="gcp-apphub-application-id" href="#gcp-apphub-application-id">`gcp.apphub.application.id`</a> | string | The name of the application as configured in AppHub. | `my-application` | ![Development](https://img.shields.io/badge/-development-blue) |
 | <a id="gcp-apphub-application-location" href="#gcp-apphub-application-location">`gcp.apphub.application.location`</a> | string | The GCP zone or region where the application is defined. | `us-central1` | ![Development](https://img.shields.io/badge/-development-blue) |
 | <a id="gcp-apphub-service-criticality-type" href="#gcp-apphub-service-criticality-type">`gcp.apphub.service.criticality_type`</a> | string | Criticality of an application, service, or workload indicates its importance to the business. [1] | `CRITICAL`; `HIGH`; `MEDIUM`; `LOW` | ![Development](https://img.shields.io/badge/-development-blue) |
diff --git a/docs/resource/cloud-provider/gcp/apphub.md b/docs/resource/cloud-provider/gcp/apphub.md
index 197415f1f5..7df87663bc 100644
--- a/docs/resource/cloud-provider/gcp/apphub.md
+++ b/docs/resource/cloud-provider/gcp/apphub.md
@@ -28,7 +28,7 @@ See [Supported Resources](https://cloud.google.com/app-hub/docs/supported-resour
 
 | Attribute  | Type | Description  | Examples  | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
 |---|---|---|---|---|---|
-| [`gcp.apphub.application.container`](/docs/attributes-registry/gcp.md) | string | The container within GCP where the AppHub applciation is defined. | `projects/my-container-project` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+| [`gcp.apphub.application.container`](/docs/attributes-registry/gcp.md) | string | The container within GCP where the AppHub application is defined. | `projects/my-container-project` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
 | [`gcp.apphub.application.id`](/docs/attributes-registry/gcp.md) | string | The name of the application as configured in AppHub. | `my-application` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
 | [`gcp.apphub.application.location`](/docs/attributes-registry/gcp.md) | string | The GCP zone or region where the application is defined. | `us-central1` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
 

From 9dd00f853682ad04c6b12f6a7098b84295bcdde7 Mon Sep 17 00:00:00 2001
From: Josh Suereth <Joshua.Suereth@gmail.com>
Date: Tue, 18 Mar 2025 11:58:49 -0700
Subject: [PATCH 07/13] Update docs/resource/cloud-provider/gcp/apphub.md

Co-authored-by: Aaron Abbott <aaronabbott@google.com>
---
 docs/resource/cloud-provider/gcp/apphub.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/resource/cloud-provider/gcp/apphub.md b/docs/resource/cloud-provider/gcp/apphub.md
index 7df87663bc..5a710bd693 100644
--- a/docs/resource/cloud-provider/gcp/apphub.md
+++ b/docs/resource/cloud-provider/gcp/apphub.md
@@ -2,7 +2,7 @@
 
 **Status**: [Development][DocumentStatus]
 
-These conventions are used by Google Cloud when using AppHub. Observability
+These conventions are used by Google Cloud when using [AppHub](https://cloud.google.com/app-hub/docs/overview). Observability
 data from Google Cloud will be annotated with these resource types, depending
 on the source of telemetry. For example, metrics coming from a Google Cloud
 service will be annotated with the appropriate `gcp.apphub.application` and

From 1e936a4caa897c54d44d94e9912c9f1d83dc14e6 Mon Sep 17 00:00:00 2001
From: Josh Suereth <joshuasuereth@google.com>
Date: Thu, 20 Mar 2025 06:30:29 -0700
Subject: [PATCH 08/13] Fix descriptions as per review.

---
 docs/attributes-registry/gcp.md            | 8 ++++----
 docs/resource/cloud-provider/gcp/apphub.md | 8 ++++----
 model/gcp/registry.yaml                    | 8 ++++----
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/docs/attributes-registry/gcp.md b/docs/attributes-registry/gcp.md
index b80b18f16b..82be2ddae6 100644
--- a/docs/attributes-registry/gcp.md
+++ b/docs/attributes-registry/gcp.md
@@ -17,11 +17,11 @@ This document defines attributes AppHub will apply to resources in GCP. See [App
 | <a id="gcp-apphub-application-container" href="#gcp-apphub-application-container">`gcp.apphub.application.container`</a> | string | The container within GCP where the AppHub application is defined. | `projects/my-container-project` | ![Development](https://img.shields.io/badge/-development-blue) |
 | <a id="gcp-apphub-application-id" href="#gcp-apphub-application-id">`gcp.apphub.application.id`</a> | string | The name of the application as configured in AppHub. | `my-application` | ![Development](https://img.shields.io/badge/-development-blue) |
 | <a id="gcp-apphub-application-location" href="#gcp-apphub-application-location">`gcp.apphub.application.location`</a> | string | The GCP zone or region where the application is defined. | `us-central1` | ![Development](https://img.shields.io/badge/-development-blue) |
-| <a id="gcp-apphub-service-criticality-type" href="#gcp-apphub-service-criticality-type">`gcp.apphub.service.criticality_type`</a> | string | Criticality of an application, service, or workload indicates its importance to the business. [1] | `CRITICAL`; `HIGH`; `MEDIUM`; `LOW` | ![Development](https://img.shields.io/badge/-development-blue) |
-| <a id="gcp-apphub-service-environment-type" href="#gcp-apphub-service-environment-type">`gcp.apphub.service.environment_type`</a> | string | Environment of an application, service, or workload is the stage of a software lifecycle, for example, production, staging, or development. [2] | `DEVELOPMENT`; `TEST`; `STAGING`; `PRODUCTION` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-service-criticality-type" href="#gcp-apphub-service-criticality-type">`gcp.apphub.service.criticality_type`</a> | string | Criticality of a service indicates its importance to the business. [1] | `CRITICAL`; `HIGH`; `MEDIUM`; `LOW` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-service-environment-type" href="#gcp-apphub-service-environment-type">`gcp.apphub.service.environment_type`</a> | string | Environment of a service is the stage of a software lifecycle, for example, production, staging, or development. [2] | `DEVELOPMENT`; `TEST`; `STAGING`; `PRODUCTION` | ![Development](https://img.shields.io/badge/-development-blue) |
 | <a id="gcp-apphub-service-id" href="#gcp-apphub-service-id">`gcp.apphub.service.id`</a> | string | The name of the service as configured in AppHub. | `my-service` | ![Development](https://img.shields.io/badge/-development-blue) |
-| <a id="gcp-apphub-workload-criticality-type" href="#gcp-apphub-workload-criticality-type">`gcp.apphub.workload.criticality_type`</a> | string | Criticality of an application, service, or workload indicates its importance to the business. [3] | `CRITICAL`; `HIGH`; `MEDIUM`; `LOW` | ![Development](https://img.shields.io/badge/-development-blue) |
-| <a id="gcp-apphub-workload-environment-type" href="#gcp-apphub-workload-environment-type">`gcp.apphub.workload.environment_type`</a> | string | Environment of an application, service, or workload is the stage of a software lifecycle, for example, production, staging, or development. [4] | `DEVELOPMENT`; `TEST`; `STAGING`; `PRODUCTION` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-workload-criticality-type" href="#gcp-apphub-workload-criticality-type">`gcp.apphub.workload.criticality_type`</a> | string | Criticality of a workload indicates its importance to the business. [3] | `CRITICAL`; `HIGH`; `MEDIUM`; `LOW` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-workload-environment-type" href="#gcp-apphub-workload-environment-type">`gcp.apphub.workload.environment_type`</a> | string | Environment of a workload is the stage of a software lifecycle, for example, production, staging, or development. [4] | `DEVELOPMENT`; `TEST`; `STAGING`; `PRODUCTION` | ![Development](https://img.shields.io/badge/-development-blue) |
 | <a id="gcp-apphub-workload-id" href="#gcp-apphub-workload-id">`gcp.apphub.workload.id`</a> | string | The name of the workload as configured in AppHub. | `my-workload` | ![Development](https://img.shields.io/badge/-development-blue) |
 
 **[1] `gcp.apphub.service.criticality_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
diff --git a/docs/resource/cloud-provider/gcp/apphub.md b/docs/resource/cloud-provider/gcp/apphub.md
index 5a710bd693..613bf62e5a 100644
--- a/docs/resource/cloud-provider/gcp/apphub.md
+++ b/docs/resource/cloud-provider/gcp/apphub.md
@@ -55,8 +55,8 @@ See [Supported Resources](https://cloud.google.com/app-hub/docs/supported-resour
 
 | Attribute  | Type | Description  | Examples  | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
 |---|---|---|---|---|---|
-| [`gcp.apphub.service.criticality_type`](/docs/attributes-registry/gcp.md) | string | Criticality of an application, service, or workload indicates its importance to the business. [1] | `CRITICAL`; `HIGH`; `MEDIUM`; `LOW` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
-| [`gcp.apphub.service.environment_type`](/docs/attributes-registry/gcp.md) | string | Environment of an application, service, or workload is the stage of a software lifecycle, for example, production, staging, or development. [2] | `DEVELOPMENT`; `TEST`; `STAGING`; `PRODUCTION` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+| [`gcp.apphub.service.criticality_type`](/docs/attributes-registry/gcp.md) | string | Criticality of a service indicates its importance to the business. [1] | `CRITICAL`; `HIGH`; `MEDIUM`; `LOW` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+| [`gcp.apphub.service.environment_type`](/docs/attributes-registry/gcp.md) | string | Environment of a service is the stage of a software lifecycle, for example, production, staging, or development. [2] | `DEVELOPMENT`; `TEST`; `STAGING`; `PRODUCTION` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
 | [`gcp.apphub.service.id`](/docs/attributes-registry/gcp.md) | string | The name of the service as configured in AppHub. | `my-service` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
 
 **[1] `gcp.apphub.service.criticality_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
@@ -86,8 +86,8 @@ See [Supported Resources](https://cloud.google.com/app-hub/docs/supported-resour
 
 | Attribute  | Type | Description  | Examples  | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
 |---|---|---|---|---|---|
-| [`gcp.apphub.workload.criticality_type`](/docs/attributes-registry/gcp.md) | string | Criticality of an application, service, or workload indicates its importance to the business. [1] | `CRITICAL`; `HIGH`; `MEDIUM`; `LOW` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
-| [`gcp.apphub.workload.environment_type`](/docs/attributes-registry/gcp.md) | string | Environment of an application, service, or workload is the stage of a software lifecycle, for example, production, staging, or development. [2] | `DEVELOPMENT`; `TEST`; `STAGING`; `PRODUCTION` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+| [`gcp.apphub.workload.criticality_type`](/docs/attributes-registry/gcp.md) | string | Criticality of a workload indicates its importance to the business. [1] | `CRITICAL`; `HIGH`; `MEDIUM`; `LOW` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+| [`gcp.apphub.workload.environment_type`](/docs/attributes-registry/gcp.md) | string | Environment of a workload is the stage of a software lifecycle, for example, production, staging, or development. [2] | `DEVELOPMENT`; `TEST`; `STAGING`; `PRODUCTION` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
 | [`gcp.apphub.workload.id`](/docs/attributes-registry/gcp.md) | string | The name of the workload as configured in AppHub. | `my-workload` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
 
 **[1] `gcp.apphub.workload.criticality_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
diff --git a/model/gcp/registry.yaml b/model/gcp/registry.yaml
index 7b30ed6715..d5daa4decf 100644
--- a/model/gcp/registry.yaml
+++ b/model/gcp/registry.yaml
@@ -74,7 +74,7 @@ groups:
         type: string
         stability: development
         brief: >
-          Environment of an application, service, or workload is the stage of a software lifecycle, for example, production, staging, or development.
+          Environment of a service is the stage of a software lifecycle, for example, production, staging, or development.
         note: >
           [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
         examples: ['DEVELOPMENT', 'TEST', 'STAGING', 'PRODUCTION']
@@ -82,7 +82,7 @@ groups:
         type: string
         stability: development
         brief: >
-          Criticality of an application, service, or workload indicates its importance to the business.
+          Criticality of a service indicates its importance to the business.
         note: >
           [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
         examples: ['CRITICAL', 'HIGH', 'MEDIUM', 'LOW']
@@ -96,7 +96,7 @@ groups:
         type: string
         stability: development
         brief: >
-          Environment of an application, service, or workload is the stage of a software lifecycle, for example, production, staging, or development.
+          Environment of a workload is the stage of a software lifecycle, for example, production, staging, or development.
         note: >
           [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
         examples: ['DEVELOPMENT', 'TEST', 'STAGING', 'PRODUCTION']
@@ -104,7 +104,7 @@ groups:
         type: string
         stability: development
         brief: >
-          Criticality of an application, service, or workload indicates its importance to the business.
+          Criticality of a workload indicates its importance to the business.
         note: >
           [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
         examples: ['CRITICAL', 'HIGH', 'MEDIUM', 'LOW']

From 893920b7a63992a65c773711a2108802f260e756 Mon Sep 17 00:00:00 2001
From: Josh Suereth <joshuasuereth@google.com>
Date: Thu, 20 Mar 2025 07:24:48 -0700
Subject: [PATCH 09/13] Migrate criticality and environment to enums.

---
 docs/attributes-registry/gcp.md            | 60 +++++++++++++--
 docs/resource/cloud-provider/gcp/apphub.md | 60 +++++++++++++--
 model/gcp/registry.yaml                    | 88 +++++++++++++++++++---
 3 files changed, 180 insertions(+), 28 deletions(-)

diff --git a/docs/attributes-registry/gcp.md b/docs/attributes-registry/gcp.md
index 82be2ddae6..8d268b11ab 100644
--- a/docs/attributes-registry/gcp.md
+++ b/docs/attributes-registry/gcp.md
@@ -17,20 +17,64 @@ This document defines attributes AppHub will apply to resources in GCP. See [App
 | <a id="gcp-apphub-application-container" href="#gcp-apphub-application-container">`gcp.apphub.application.container`</a> | string | The container within GCP where the AppHub application is defined. | `projects/my-container-project` | ![Development](https://img.shields.io/badge/-development-blue) |
 | <a id="gcp-apphub-application-id" href="#gcp-apphub-application-id">`gcp.apphub.application.id`</a> | string | The name of the application as configured in AppHub. | `my-application` | ![Development](https://img.shields.io/badge/-development-blue) |
 | <a id="gcp-apphub-application-location" href="#gcp-apphub-application-location">`gcp.apphub.application.location`</a> | string | The GCP zone or region where the application is defined. | `us-central1` | ![Development](https://img.shields.io/badge/-development-blue) |
-| <a id="gcp-apphub-service-criticality-type" href="#gcp-apphub-service-criticality-type">`gcp.apphub.service.criticality_type`</a> | string | Criticality of a service indicates its importance to the business. [1] | `CRITICAL`; `HIGH`; `MEDIUM`; `LOW` | ![Development](https://img.shields.io/badge/-development-blue) |
-| <a id="gcp-apphub-service-environment-type" href="#gcp-apphub-service-environment-type">`gcp.apphub.service.environment_type`</a> | string | Environment of a service is the stage of a software lifecycle, for example, production, staging, or development. [2] | `DEVELOPMENT`; `TEST`; `STAGING`; `PRODUCTION` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-service-criticality-type" href="#gcp-apphub-service-criticality-type">`gcp.apphub.service.criticality_type`</a> | string | Criticality of a service indicates its importance to the business. [1] | `MISSION_CRITICAL`; `HIGH`; `MEDIUM` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-service-environment-type" href="#gcp-apphub-service-environment-type">`gcp.apphub.service.environment_type`</a> | string | Environment of a service is the stage of a software lifecycle, for example, production, staging, or development. [2] | `PRODUCTION`; `STAGING`; `TEST` | ![Development](https://img.shields.io/badge/-development-blue) |
 | <a id="gcp-apphub-service-id" href="#gcp-apphub-service-id">`gcp.apphub.service.id`</a> | string | The name of the service as configured in AppHub. | `my-service` | ![Development](https://img.shields.io/badge/-development-blue) |
-| <a id="gcp-apphub-workload-criticality-type" href="#gcp-apphub-workload-criticality-type">`gcp.apphub.workload.criticality_type`</a> | string | Criticality of a workload indicates its importance to the business. [3] | `CRITICAL`; `HIGH`; `MEDIUM`; `LOW` | ![Development](https://img.shields.io/badge/-development-blue) |
-| <a id="gcp-apphub-workload-environment-type" href="#gcp-apphub-workload-environment-type">`gcp.apphub.workload.environment_type`</a> | string | Environment of a workload is the stage of a software lifecycle, for example, production, staging, or development. [4] | `DEVELOPMENT`; `TEST`; `STAGING`; `PRODUCTION` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-workload-criticality-type" href="#gcp-apphub-workload-criticality-type">`gcp.apphub.workload.criticality_type`</a> | string | Criticality of a workload indicates its importance to the business. [3] | `MISSION_CRITICAL`; `HIGH`; `MEDIUM` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-workload-environment-type" href="#gcp-apphub-workload-environment-type">`gcp.apphub.workload.environment_type`</a> | string | Environment of a workload is the stage of a software lifecycle, for example, production, staging, or development. [4] | `PRODUCTION`; `STAGING`; `TEST` | ![Development](https://img.shields.io/badge/-development-blue) |
 | <a id="gcp-apphub-workload-id" href="#gcp-apphub-workload-id">`gcp.apphub.workload.id`</a> | string | The name of the workload as configured in AppHub. | `my-workload` | ![Development](https://img.shields.io/badge/-development-blue) |
 
-**[1] `gcp.apphub.service.criticality_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+**[1] `gcp.apphub.service.criticality_type`:** [See AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1alpha/Attributes#type)
 
-**[2] `gcp.apphub.service.environment_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+**[2] `gcp.apphub.service.environment_type`:** [See AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1alpha/Attributes#type_1)
 
-**[3] `gcp.apphub.workload.criticality_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+**[3] `gcp.apphub.workload.criticality_type`:** [See AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1alpha/Attributes#type)
 
-**[4] `gcp.apphub.workload.environment_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+**[4] `gcp.apphub.workload.environment_type`:** [See AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1alpha/Attributes#type_1)
+
+---
+
+`gcp.apphub.service.criticality_type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value  | Description | Stability |
+|---|---|---|
+| `HIGH` | High impact. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `LOW` | Low impact. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `MEDIUM` | Medium impact. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `MISSION_CRITICAL` | Mission critical service. | ![Development](https://img.shields.io/badge/-development-blue) |
+
+---
+
+`gcp.apphub.service.environment_type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value  | Description | Stability |
+|---|---|---|
+| `DEVELOPMENT` | Development environment. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `PRODUCTION` | Production environment. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `STAGING` | Staging environment. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `TEST` | Test environment. | ![Development](https://img.shields.io/badge/-development-blue) |
+
+---
+
+`gcp.apphub.workload.criticality_type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value  | Description | Stability |
+|---|---|---|
+| `HIGH` | High impact. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `LOW` | Low impact. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `MEDIUM` | Medium impact. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `MISSION_CRITICAL` | Mission critical service. | ![Development](https://img.shields.io/badge/-development-blue) |
+
+---
+
+`gcp.apphub.workload.environment_type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value  | Description | Stability |
+|---|---|---|
+| `DEVELOPMENT` | Development environment. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `PRODUCTION` | Production environment. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `STAGING` | Staging environment. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `TEST` | Test environment. | ![Development](https://img.shields.io/badge/-development-blue) |
 
 ## GCP Client Attributes
 
diff --git a/docs/resource/cloud-provider/gcp/apphub.md b/docs/resource/cloud-provider/gcp/apphub.md
index 613bf62e5a..8e62bee169 100644
--- a/docs/resource/cloud-provider/gcp/apphub.md
+++ b/docs/resource/cloud-provider/gcp/apphub.md
@@ -55,13 +55,35 @@ See [Supported Resources](https://cloud.google.com/app-hub/docs/supported-resour
 
 | Attribute  | Type | Description  | Examples  | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
 |---|---|---|---|---|---|
-| [`gcp.apphub.service.criticality_type`](/docs/attributes-registry/gcp.md) | string | Criticality of a service indicates its importance to the business. [1] | `CRITICAL`; `HIGH`; `MEDIUM`; `LOW` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
-| [`gcp.apphub.service.environment_type`](/docs/attributes-registry/gcp.md) | string | Environment of a service is the stage of a software lifecycle, for example, production, staging, or development. [2] | `DEVELOPMENT`; `TEST`; `STAGING`; `PRODUCTION` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+| [`gcp.apphub.service.criticality_type`](/docs/attributes-registry/gcp.md) | string | Criticality of a service indicates its importance to the business. [1] | `MISSION_CRITICAL`; `HIGH`; `MEDIUM` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+| [`gcp.apphub.service.environment_type`](/docs/attributes-registry/gcp.md) | string | Environment of a service is the stage of a software lifecycle, for example, production, staging, or development. [2] | `PRODUCTION`; `STAGING`; `TEST` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
 | [`gcp.apphub.service.id`](/docs/attributes-registry/gcp.md) | string | The name of the service as configured in AppHub. | `my-service` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
 
-**[1] `gcp.apphub.service.criticality_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+**[1] `gcp.apphub.service.criticality_type`:** [See AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1alpha/Attributes#type)
 
-**[2] `gcp.apphub.service.environment_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+**[2] `gcp.apphub.service.environment_type`:** [See AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1alpha/Attributes#type_1)
+
+---
+
+`gcp.apphub.service.criticality_type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value  | Description | Stability |
+|---|---|---|
+| `HIGH` | High impact. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `LOW` | Low impact. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `MEDIUM` | Medium impact. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `MISSION_CRITICAL` | Mission critical service. | ![Development](https://img.shields.io/badge/-development-blue) |
+
+---
+
+`gcp.apphub.service.environment_type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value  | Description | Stability |
+|---|---|---|
+| `DEVELOPMENT` | Development environment. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `PRODUCTION` | Production environment. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `STAGING` | Staging environment. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `TEST` | Test environment. | ![Development](https://img.shields.io/badge/-development-blue) |
 
 <!-- markdownlint-restore -->
 <!-- prettier-ignore-end -->
@@ -86,13 +108,35 @@ See [Supported Resources](https://cloud.google.com/app-hub/docs/supported-resour
 
 | Attribute  | Type | Description  | Examples  | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
 |---|---|---|---|---|---|
-| [`gcp.apphub.workload.criticality_type`](/docs/attributes-registry/gcp.md) | string | Criticality of a workload indicates its importance to the business. [1] | `CRITICAL`; `HIGH`; `MEDIUM`; `LOW` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
-| [`gcp.apphub.workload.environment_type`](/docs/attributes-registry/gcp.md) | string | Environment of a workload is the stage of a software lifecycle, for example, production, staging, or development. [2] | `DEVELOPMENT`; `TEST`; `STAGING`; `PRODUCTION` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+| [`gcp.apphub.workload.criticality_type`](/docs/attributes-registry/gcp.md) | string | Criticality of a workload indicates its importance to the business. [1] | `MISSION_CRITICAL`; `HIGH`; `MEDIUM` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+| [`gcp.apphub.workload.environment_type`](/docs/attributes-registry/gcp.md) | string | Environment of a workload is the stage of a software lifecycle, for example, production, staging, or development. [2] | `PRODUCTION`; `STAGING`; `TEST` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
 | [`gcp.apphub.workload.id`](/docs/attributes-registry/gcp.md) | string | The name of the workload as configured in AppHub. | `my-workload` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
 
-**[1] `gcp.apphub.workload.criticality_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+**[1] `gcp.apphub.workload.criticality_type`:** [See AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1alpha/Attributes#type)
+
+**[2] `gcp.apphub.workload.environment_type`:** [See AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1alpha/Attributes#type_1)
+
+---
+
+`gcp.apphub.workload.criticality_type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value  | Description | Stability |
+|---|---|---|
+| `HIGH` | High impact. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `LOW` | Low impact. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `MEDIUM` | Medium impact. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `MISSION_CRITICAL` | Mission critical service. | ![Development](https://img.shields.io/badge/-development-blue) |
+
+---
+
+`gcp.apphub.workload.environment_type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
 
-**[2] `gcp.apphub.workload.environment_type`:** [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
+| Value  | Description | Stability |
+|---|---|---|
+| `DEVELOPMENT` | Development environment. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `PRODUCTION` | Production environment. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `STAGING` | Staging environment. | ![Development](https://img.shields.io/badge/-development-blue) |
+| `TEST` | Test environment. | ![Development](https://img.shields.io/badge/-development-blue) |
 
 <!-- markdownlint-restore -->
 <!-- prettier-ignore-end -->
diff --git a/model/gcp/registry.yaml b/model/gcp/registry.yaml
index d5daa4decf..ec23c1a9b9 100644
--- a/model/gcp/registry.yaml
+++ b/model/gcp/registry.yaml
@@ -71,21 +71,53 @@ groups:
           The name of the service as configured in AppHub.
         examples: ['my-service']
       - id: gcp.apphub.service.environment_type
-        type: string
+        type:
+          members:
+            - id: production
+              value: "PRODUCTION"
+              brief: Production environment.
+              stability: development
+            - id: staging
+              value: "STAGING"
+              brief: Staging environment.
+              stability: development
+            - id: test
+              value: "TEST"
+              brief: Test environment.
+              stability: development
+            - id: development
+              value: "DEVELOPMENT"
+              brief: Development environment.
+              stability: development
         stability: development
         brief: >
           Environment of a service is the stage of a software lifecycle, for example, production, staging, or development.
         note: >
-          [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
-        examples: ['DEVELOPMENT', 'TEST', 'STAGING', 'PRODUCTION']
+          [See AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1alpha/Attributes#type_1)
       - id: gcp.apphub.service.criticality_type
-        type: string
+        type:
+          members:
+            - id: mission_critical
+              value: "MISSION_CRITICAL"
+              brief: Mission critical service.
+              stability: development
+            - id: high
+              value: "HIGH"
+              brief: High impact.
+              stability: development
+            - id: medium
+              value: "MEDIUM"
+              brief: Medium impact.
+              stability: development
+            - id: low
+              value: "LOW"
+              brief: Low impact.
+              stability: development
         stability: development
         brief: >
           Criticality of a service indicates its importance to the business.
         note: >
-          [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
-        examples: ['CRITICAL', 'HIGH', 'MEDIUM', 'LOW']
+          [See AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1alpha/Attributes#type)
       - id: gcp.apphub.workload.id
         type: string
         stability: development
@@ -93,21 +125,53 @@ groups:
           The name of the workload as configured in AppHub.
         examples: ['my-workload']
       - id: gcp.apphub.workload.environment_type
-        type: string
+        type:
+          members:
+            - id: production
+              value: "PRODUCTION"
+              brief: Production environment.
+              stability: development
+            - id: staging
+              value: "STAGING"
+              brief: Staging environment.
+              stability: development
+            - id: test
+              value: "TEST"
+              brief: Test environment.
+              stability: development
+            - id: development
+              value: "DEVELOPMENT"
+              brief: Development environment.
+              stability: development
         stability: development
         brief: >
           Environment of a workload is the stage of a software lifecycle, for example, production, staging, or development.
         note: >
-          [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
-        examples: ['DEVELOPMENT', 'TEST', 'STAGING', 'PRODUCTION']
+          [See AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1alpha/Attributes#type_1)
       - id: gcp.apphub.workload.criticality_type
-        type: string
+        type:
+          members:
+          - id: mission_critical
+            value: "MISSION_CRITICAL"
+            brief: Mission critical service.
+            stability: development
+          - id: high
+            value: "HIGH"
+            brief: High impact.
+            stability: development
+          - id: medium
+            value: "MEDIUM"
+            brief: Medium impact.
+            stability: development
+          - id: low
+            value: "LOW"
+            brief: Low impact.
+            stability: development
         stability: development
         brief: >
           Criticality of a workload indicates its importance to the business.
         note: >
-          [See AppHub properties and attributes](https://cloud.google.com/app-hub/docs/overview#properties-attributes)
-        examples: ['CRITICAL', 'HIGH', 'MEDIUM', 'LOW']
+          [See AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1alpha/Attributes#type)
   - id: registry.gcp.gce
     type: attribute_group
     display_name: GCP - Google Compute Engine (GCE) Attributes

From f4877d234d98b86a1f86361ef2b1e80ebdb2f89b Mon Sep 17 00:00:00 2001
From: Josh Suereth <joshuasuereth@google.com>
Date: Thu, 20 Mar 2025 07:26:29 -0700
Subject: [PATCH 10/13] Fix yamllint issue.

---
 model/gcp/registry.yaml | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/model/gcp/registry.yaml b/model/gcp/registry.yaml
index ec23c1a9b9..1d0818a158 100644
--- a/model/gcp/registry.yaml
+++ b/model/gcp/registry.yaml
@@ -151,22 +151,22 @@ groups:
       - id: gcp.apphub.workload.criticality_type
         type:
           members:
-          - id: mission_critical
-            value: "MISSION_CRITICAL"
-            brief: Mission critical service.
-            stability: development
-          - id: high
-            value: "HIGH"
-            brief: High impact.
-            stability: development
-          - id: medium
-            value: "MEDIUM"
-            brief: Medium impact.
-            stability: development
-          - id: low
-            value: "LOW"
-            brief: Low impact.
-            stability: development
+            - id: mission_critical
+              value: "MISSION_CRITICAL"
+              brief: Mission critical service.
+              stability: development
+            - id: high
+              value: "HIGH"
+              brief: High impact.
+              stability: development
+            - id: medium
+              value: "MEDIUM"
+              brief: Medium impact.
+              stability: development
+            - id: low
+              value: "LOW"
+              brief: Low impact.
+              stability: development
         stability: development
         brief: >
           Criticality of a workload indicates its importance to the business.

From af4ace10fa2dd7419cee24c3419a8bc51e38db54 Mon Sep 17 00:00:00 2001
From: Josh Suereth <Joshua.Suereth@gmail.com>
Date: Fri, 21 Mar 2025 09:22:39 -0400
Subject: [PATCH 11/13] Update model/gcp/registry.yaml

Co-authored-by: Liudmila Molkova <limolkova@microsoft.com>
---
 model/gcp/registry.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/model/gcp/registry.yaml b/model/gcp/registry.yaml
index 1d0818a158..c6fec33ec5 100644
--- a/model/gcp/registry.yaml
+++ b/model/gcp/registry.yaml
@@ -145,7 +145,7 @@ groups:
               stability: development
         stability: development
         brief: >
-          Environment of a workload is the stage of a software lifecycle, for example, production, staging, or development.
+          Environment of a workload is the stage of a software lifecycle.
         note: >
           [See AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1alpha/Attributes#type_1)
       - id: gcp.apphub.workload.criticality_type

From b61f76c5ffcbf0ba56757a2113fd02dd37ee8757 Mon Sep 17 00:00:00 2001
From: Josh Suereth <Joshua.Suereth@gmail.com>
Date: Fri, 21 Mar 2025 09:22:45 -0400
Subject: [PATCH 12/13] Update model/gcp/registry.yaml

Co-authored-by: Liudmila Molkova <limolkova@microsoft.com>
---
 model/gcp/registry.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/model/gcp/registry.yaml b/model/gcp/registry.yaml
index c6fec33ec5..10bc7b4cbf 100644
--- a/model/gcp/registry.yaml
+++ b/model/gcp/registry.yaml
@@ -91,7 +91,7 @@ groups:
               stability: development
         stability: development
         brief: >
-          Environment of a service is the stage of a software lifecycle, for example, production, staging, or development.
+          Environment of a service is the stage of a software lifecycle.
         note: >
           [See AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1alpha/Attributes#type_1)
       - id: gcp.apphub.service.criticality_type

From 78c06a40b01661dcad718841d36a049eb2bc7032 Mon Sep 17 00:00:00 2001
From: Josh Suereth <joshuasuereth@google.com>
Date: Fri, 21 Mar 2025 09:24:06 -0400
Subject: [PATCH 13/13] Regenerate markdown.

---
 docs/attributes-registry/gcp.md            | 4 ++--
 docs/resource/cloud-provider/gcp/apphub.md | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/docs/attributes-registry/gcp.md b/docs/attributes-registry/gcp.md
index 8d268b11ab..c5a7649bc6 100644
--- a/docs/attributes-registry/gcp.md
+++ b/docs/attributes-registry/gcp.md
@@ -18,10 +18,10 @@ This document defines attributes AppHub will apply to resources in GCP. See [App
 | <a id="gcp-apphub-application-id" href="#gcp-apphub-application-id">`gcp.apphub.application.id`</a> | string | The name of the application as configured in AppHub. | `my-application` | ![Development](https://img.shields.io/badge/-development-blue) |
 | <a id="gcp-apphub-application-location" href="#gcp-apphub-application-location">`gcp.apphub.application.location`</a> | string | The GCP zone or region where the application is defined. | `us-central1` | ![Development](https://img.shields.io/badge/-development-blue) |
 | <a id="gcp-apphub-service-criticality-type" href="#gcp-apphub-service-criticality-type">`gcp.apphub.service.criticality_type`</a> | string | Criticality of a service indicates its importance to the business. [1] | `MISSION_CRITICAL`; `HIGH`; `MEDIUM` | ![Development](https://img.shields.io/badge/-development-blue) |
-| <a id="gcp-apphub-service-environment-type" href="#gcp-apphub-service-environment-type">`gcp.apphub.service.environment_type`</a> | string | Environment of a service is the stage of a software lifecycle, for example, production, staging, or development. [2] | `PRODUCTION`; `STAGING`; `TEST` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-service-environment-type" href="#gcp-apphub-service-environment-type">`gcp.apphub.service.environment_type`</a> | string | Environment of a service is the stage of a software lifecycle. [2] | `PRODUCTION`; `STAGING`; `TEST` | ![Development](https://img.shields.io/badge/-development-blue) |
 | <a id="gcp-apphub-service-id" href="#gcp-apphub-service-id">`gcp.apphub.service.id`</a> | string | The name of the service as configured in AppHub. | `my-service` | ![Development](https://img.shields.io/badge/-development-blue) |
 | <a id="gcp-apphub-workload-criticality-type" href="#gcp-apphub-workload-criticality-type">`gcp.apphub.workload.criticality_type`</a> | string | Criticality of a workload indicates its importance to the business. [3] | `MISSION_CRITICAL`; `HIGH`; `MEDIUM` | ![Development](https://img.shields.io/badge/-development-blue) |
-| <a id="gcp-apphub-workload-environment-type" href="#gcp-apphub-workload-environment-type">`gcp.apphub.workload.environment_type`</a> | string | Environment of a workload is the stage of a software lifecycle, for example, production, staging, or development. [4] | `PRODUCTION`; `STAGING`; `TEST` | ![Development](https://img.shields.io/badge/-development-blue) |
+| <a id="gcp-apphub-workload-environment-type" href="#gcp-apphub-workload-environment-type">`gcp.apphub.workload.environment_type`</a> | string | Environment of a workload is the stage of a software lifecycle. [4] | `PRODUCTION`; `STAGING`; `TEST` | ![Development](https://img.shields.io/badge/-development-blue) |
 | <a id="gcp-apphub-workload-id" href="#gcp-apphub-workload-id">`gcp.apphub.workload.id`</a> | string | The name of the workload as configured in AppHub. | `my-workload` | ![Development](https://img.shields.io/badge/-development-blue) |
 
 **[1] `gcp.apphub.service.criticality_type`:** [See AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1alpha/Attributes#type)
diff --git a/docs/resource/cloud-provider/gcp/apphub.md b/docs/resource/cloud-provider/gcp/apphub.md
index 8e62bee169..0056f84ded 100644
--- a/docs/resource/cloud-provider/gcp/apphub.md
+++ b/docs/resource/cloud-provider/gcp/apphub.md
@@ -56,7 +56,7 @@ See [Supported Resources](https://cloud.google.com/app-hub/docs/supported-resour
 | Attribute  | Type | Description  | Examples  | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
 |---|---|---|---|---|---|
 | [`gcp.apphub.service.criticality_type`](/docs/attributes-registry/gcp.md) | string | Criticality of a service indicates its importance to the business. [1] | `MISSION_CRITICAL`; `HIGH`; `MEDIUM` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
-| [`gcp.apphub.service.environment_type`](/docs/attributes-registry/gcp.md) | string | Environment of a service is the stage of a software lifecycle, for example, production, staging, or development. [2] | `PRODUCTION`; `STAGING`; `TEST` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+| [`gcp.apphub.service.environment_type`](/docs/attributes-registry/gcp.md) | string | Environment of a service is the stage of a software lifecycle. [2] | `PRODUCTION`; `STAGING`; `TEST` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
 | [`gcp.apphub.service.id`](/docs/attributes-registry/gcp.md) | string | The name of the service as configured in AppHub. | `my-service` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
 
 **[1] `gcp.apphub.service.criticality_type`:** [See AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1alpha/Attributes#type)
@@ -109,7 +109,7 @@ See [Supported Resources](https://cloud.google.com/app-hub/docs/supported-resour
 | Attribute  | Type | Description  | Examples  | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
 |---|---|---|---|---|---|
 | [`gcp.apphub.workload.criticality_type`](/docs/attributes-registry/gcp.md) | string | Criticality of a workload indicates its importance to the business. [1] | `MISSION_CRITICAL`; `HIGH`; `MEDIUM` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
-| [`gcp.apphub.workload.environment_type`](/docs/attributes-registry/gcp.md) | string | Environment of a workload is the stage of a software lifecycle, for example, production, staging, or development. [2] | `PRODUCTION`; `STAGING`; `TEST` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
+| [`gcp.apphub.workload.environment_type`](/docs/attributes-registry/gcp.md) | string | Environment of a workload is the stage of a software lifecycle. [2] | `PRODUCTION`; `STAGING`; `TEST` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
 | [`gcp.apphub.workload.id`](/docs/attributes-registry/gcp.md) | string | The name of the workload as configured in AppHub. | `my-workload` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
 
 **[1] `gcp.apphub.workload.criticality_type`:** [See AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1alpha/Attributes#type)