groups:
  - id: registry.cloud
    type: attribute_group
    display_name: Cloud Attributes
    brief: >
      A cloud environment (e.g. GCP, Azure, AWS).
    attributes:
      - id: cloud.provider
        type:
          members:
            - id: 'alibaba_cloud'
              value: 'alibaba_cloud'
              brief: 'Alibaba Cloud'
              stability: development
            - id: 'aws'
              value: 'aws'
              brief: 'Amazon Web Services'
              stability: development
            - id: 'azure'
              value: 'azure'
              brief: 'Microsoft Azure'
              stability: development
            - id: 'gcp'
              value: 'gcp'
              brief: 'Google Cloud Platform'
              stability: development
            - id: 'heroku'
              value: 'heroku'
              brief: 'Heroku Platform as a Service'
              stability: development
            - id: 'ibm_cloud'
              value: 'ibm_cloud'
              brief: 'IBM Cloud'
              stability: development
            - id: 'oracle_cloud'
              value: 'oracle_cloud'
              brief: 'Oracle Cloud Infrastructure (OCI)'
              stability: development
            - id: 'tencent_cloud'
              value: 'tencent_cloud'
              brief: 'Tencent Cloud'
              stability: development
        stability: development
        brief: >
          Name of the cloud provider.
      - id: cloud.account.id
        type: string
        stability: development
        brief: >
          The cloud account ID the resource is assigned to.
        examples: ['111111111111', 'opentelemetry']
      - id: cloud.region
        type: string
        stability: development
        brief: >
          The geographical region within a cloud provider. When associated with
          a resource, this attribute specifies the region where the resource operates.
          When calling services or APIs deployed on a cloud, this attribute identifies the region where the called destination is deployed.
        note: >
          Refer to your provider's docs to see the available regions, for example
          [Alibaba Cloud regions](https://www.alibabacloud.com/help/doc-detail/40654.htm),
          [AWS regions](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/),
          [Azure regions](https://azure.microsoft.com/global-infrastructure/geographies/),
          [Google Cloud regions](https://cloud.google.com/about/locations),
          or [Tencent Cloud regions](https://www.tencentcloud.com/document/product/213/6091).
        examples: ['us-central1', 'us-east-1']
      - id: cloud.resource_id
        type: string
        stability: development
        brief: >
          Cloud provider-specific native identifier of the monitored cloud resource
          (e.g. an [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) on AWS,
          a [fully qualified resource ID](https://learn.microsoft.com/rest/api/resources/resources/get-by-id) on Azure,
          a [full resource name](https://google.aip.dev/122#full-resource-names) on GCP)
        note: |
          On some cloud providers, it may not be possible to determine the full ID at startup,
          so it may be necessary to set `cloud.resource_id` as a span attribute instead.

          The exact value to use for `cloud.resource_id` depends on the cloud provider.
          The following well-known definitions MUST be used if you set this attribute and they apply:

          - **AWS Lambda:** The function [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
            Take care not to use the "invoked ARN" directly but replace any
            [alias suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html)
            with the resolved function version, as the same runtime instance may be invocable with
            multiple different aliases.
          - **GCP:** The [URI of the resource](https://cloud.google.com/iam/docs/full-resource-names)
          - **Azure:** The [Fully Qualified Resource ID](https://learn.microsoft.com/rest/api/resources/resources/get-by-id) of the invoked function,
            *not* the function app, having the form
            `/subscriptions/<SUBSCRIPTION_GUID>/resourceGroups/<RG>/providers/Microsoft.Web/sites/<FUNCAPP>/functions/<FUNC>`.
            This means that a span attribute MUST be used, as an Azure function app can host multiple functions that would usually share
            a TracerProvider.
        examples:
          - 'arn:aws:lambda:REGION:ACCOUNT_ID:function:my-function'
          - '//run.googleapis.com/projects/PROJECT_ID/locations/LOCATION_ID/services/SERVICE_ID'
          - '/subscriptions/<SUBSCRIPTION_GUID>/resourceGroups/<RG>/providers/Microsoft.Web/sites/<FUNCAPP>/functions/<FUNC>'
      - id: cloud.availability_zone
        type: string
        stability: development
        brief: >
          Cloud regions often have multiple, isolated locations known as zones
          to increase availability. Availability zone represents the
          zone where the resource is running.
        note: >
          Availability zones are called "zones" on Alibaba Cloud and Google Cloud.
        examples: ['us-east-1c']
      - id: cloud.platform
        type:
          members:
            - id: alibaba_cloud_ecs
              value: 'alibaba_cloud_ecs'
              brief: Alibaba Cloud Elastic Compute Service
              stability: development
            - id: alibaba_cloud_fc
              value: 'alibaba_cloud_fc'
              brief: Alibaba Cloud Function Compute
              stability: development
            - id: alibaba_cloud_openshift
              value: 'alibaba_cloud_openshift'
              brief: Red Hat OpenShift on Alibaba Cloud
              stability: development
            - id: aws_ec2
              value: 'aws_ec2'
              brief: AWS Elastic Compute Cloud
              stability: development
            - id: aws_ecs
              value: 'aws_ecs'
              brief: AWS Elastic Container Service
              stability: development
            - id: aws_eks
              value: 'aws_eks'
              brief: AWS Elastic Kubernetes Service
              stability: development
            - id: aws_lambda
              value: 'aws_lambda'
              brief: AWS Lambda
              stability: development
            - id: aws_elastic_beanstalk
              value: 'aws_elastic_beanstalk'
              brief: AWS Elastic Beanstalk
              stability: development
            - id: aws_app_runner
              value: 'aws_app_runner'
              brief: AWS App Runner
              stability: development
            - id: aws_openshift
              value: 'aws_openshift'
              brief: Red Hat OpenShift on AWS (ROSA)
              stability: development
            - id: azure.vm
              value: 'azure.vm'
              brief: Azure Virtual Machines
              stability: development
            - id: azure.container_apps
              value: 'azure.container_apps'
              brief: Azure Container Apps
              stability: development
            - id: azure.container_instances
              value: 'azure.container_instances'
              brief: Azure Container Instances
              stability: development
            - id: azure.aks
              value: 'azure.aks'
              brief: Azure Kubernetes Service
              stability: development
            - id: azure.functions
              value: 'azure.functions'
              brief: Azure Functions
              stability: development
            - id: azure.app_service
              value: 'azure.app_service'
              brief: Azure App Service
              stability: development
            - id: azure.openshift
              value: 'azure.openshift'
              brief: Azure Red Hat OpenShift
              stability: development
            - id: azure_vm
              value: 'azure_vm'
              brief: Azure Virtual Machines
              stability: development
              deprecated:
                reason: renamed
                renamed_to: "azure.vm"
              annotations:
                code_generation:
                  exclude: true
            - id: azure_container_apps
              value: 'azure_container_apps'
              brief: Azure Container Apps
              stability: development
              deprecated:
                reason: renamed
                renamed_to: "azure.container_apps"
              annotations:
                code_generation:
                  exclude: true
            - id: azure_container_instances
              value: 'azure_container_instances'
              brief: Azure Container Instances
              stability: development
              deprecated:
                reason: renamed
                renamed_to: "azure.container_instances"
              annotations:
                code_generation:
                  exclude: true
            - id: azure_aks
              value: 'azure_aks'
              brief: Azure Kubernetes Service
              stability: development
              deprecated:
                reason: renamed
                renamed_to: "azure.aks"
              annotations:
                code_generation:
                  exclude: true
            - id: azure_functions
              value: 'azure_functions'
              brief: Azure Functions
              stability: development
              deprecated:
                reason: renamed
                renamed_to: "azure.functions"
              annotations:
                code_generation:
                  exclude: true
            - id: azure_app_service
              value: 'azure_app_service'
              brief: Azure App Service
              stability: development
              deprecated:
                reason: renamed
                renamed_to: "azure.app_service"
              annotations:
                code_generation:
                  exclude: true
            - id: azure_openshift
              value: 'azure_openshift'
              brief: Azure Red Hat OpenShift
              stability: development
              deprecated:
                reason: renamed
                renamed_to: "azure.openshift"
              annotations:
                code_generation:
                  exclude: true
            - id: gcp_bare_metal_solution
              value: 'gcp_bare_metal_solution'
              brief: Google Bare Metal Solution (BMS)
              stability: development
            - id: gcp_compute_engine
              value: 'gcp_compute_engine'
              brief: Google Cloud Compute Engine (GCE)
              stability: development
            - id: gcp_cloud_run
              value: 'gcp_cloud_run'
              brief: Google Cloud Run
              stability: development
            - id: gcp_kubernetes_engine
              value: 'gcp_kubernetes_engine'
              brief: Google Cloud Kubernetes Engine (GKE)
              stability: development
            - id: gcp_cloud_functions
              value: 'gcp_cloud_functions'
              brief: Google Cloud Functions (GCF)
              stability: development
            - id: gcp_app_engine
              value: 'gcp_app_engine'
              brief: Google Cloud App Engine (GAE)
              stability: development
            - id: gcp_openshift
              value: 'gcp_openshift'
              brief: Red Hat OpenShift on Google Cloud
              stability: development
            - id: ibm_cloud_openshift
              value: 'ibm_cloud_openshift'
              brief: Red Hat OpenShift on IBM Cloud
              stability: development
            - id: oracle_cloud_compute
              value: 'oracle_cloud_compute'
              brief: Compute on Oracle Cloud Infrastructure (OCI)
              stability: development
            - id: oracle_cloud_oke
              value: 'oracle_cloud_oke'
              brief: Kubernetes Engine (OKE) on Oracle Cloud Infrastructure (OCI)
              stability: development
            - id: tencent_cloud_cvm
              value: 'tencent_cloud_cvm'
              brief: Tencent Cloud Cloud Virtual Machine (CVM)
              stability: development
            - id: tencent_cloud_eks
              value: 'tencent_cloud_eks'
              brief: Tencent Cloud Elastic Kubernetes Service (EKS)
              stability: development
            - id: tencent_cloud_scf
              value: 'tencent_cloud_scf'
              brief: Tencent Cloud Serverless Cloud Function (SCF)
              stability: development
        stability: development
        brief: >
          The cloud platform in use.
        note: >
          The prefix of the service SHOULD match the one specified in `cloud.provider`.
