groups:
  - id: registry.aws
    prefix: aws
    type: attribute_group
    brief: >
      This document defines generic attributes for AWS services.
    attributes:
      - id: request_id
        type: string
        stability: experimental
        brief: "The AWS request ID as returned in the response headers `x-amz-request-id` or `x-amz-requestid`."
        examples:
          - 79b9da39-b7ae-508a-a6bc-864b2829c622
          - C9ER4AJX75574TDJ
  - id: registry.aws.dynamodb
    prefix: aws.dynamodb
    type: attribute_group
    brief: >
            This document defines attributes for AWS DynamoDB.
    attributes:
      - id: table_names
        type: string[]
        stability: experimental
        brief: The keys in the `RequestItems` object field.
        examples:
          - Users
          - Cats
      - id: consumed_capacity
        type: string[]
        stability: experimental
        brief: "The JSON-serialized value of each item in the `ConsumedCapacity` response field."
        examples:
          - '{
              "CapacityUnits": number,
              "GlobalSecondaryIndexes": {
                 "string" : {
                    "CapacityUnits": number,
                    "ReadCapacityUnits": number,
                    "WriteCapacityUnits": number
                 }
              },
              "LocalSecondaryIndexes": {
                 "string" : {
                    "CapacityUnits": number,
                    "ReadCapacityUnits": number,
                    "WriteCapacityUnits": number
                 }
              },
              "ReadCapacityUnits": number,
              "Table": {
                 "CapacityUnits": number,
                 "ReadCapacityUnits": number,
                 "WriteCapacityUnits": number
              },
              "TableName": "string",
              "WriteCapacityUnits": number
            }'
      - id: item_collection_metrics
        type: string
        stability: experimental
        brief: "The JSON-serialized value of the `ItemCollectionMetrics` response field."
        examples:
          - '{
              "string" : [
                 {
                    "ItemCollectionKey": {
                       "string" : {
                          "B": blob,
                          "BOOL": boolean,
                          "BS": [ blob ],
                          "L": [
                             "AttributeValue"
                          ],
                          "M": {
                             "string" : "AttributeValue"
                          },
                          "N": "string",
                          "NS": [ "string" ],
                          "NULL": boolean,
                          "S": "string",
                          "SS": [ "string" ]
                       }
                    },
                    "SizeEstimateRangeGB": [ number ]
                 }
              ]
             }'
      - id: provisioned_read_capacity
        type: double
        stability: experimental
        brief: "The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter."
        examples:
          - 1.0
          - 2.0
      - id: provisioned_write_capacity
        type: double
        stability: experimental
        brief: "The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter."
        examples:
          - 1.0
          - 2.0
      - id: consistent_read
        type: boolean
        stability: experimental
        brief: "The value of the `ConsistentRead` request parameter."
      - id: projection
        type: string
        stability: experimental
        brief: "The value of the `ProjectionExpression` request parameter."
        examples:
          - Title
          - Title, Price, Color
          - Title, Description, RelatedItems, ProductReviews
      - id: limit
        type: int
        stability: experimental
        brief: "The value of the `Limit` request parameter."
        examples:
          - 10
      - id: attributes_to_get
        type: string[]
        stability: experimental
        brief: "The value of the `AttributesToGet` request parameter."
        examples:
          - lives
          - id
      - id: index_name
        type: string
        stability: experimental
        brief: "The value of the `IndexName` request parameter."
        examples:
          - name_to_group
      - id: select
        type: string
        stability: experimental
        brief: "The value of the `Select` request parameter."
        examples:
          - ALL_ATTRIBUTES
          - COUNT
      - id: global_secondary_indexes
        type: string[]
        stability: experimental
        brief: "The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field"
        examples:
          - '{
              "IndexName": "string",
              "KeySchema": [
                {
                  "AttributeName": "string",
                  "KeyType": "string"
                }
              ],
              "Projection": {
                "NonKeyAttributes": [ "string" ],
                "ProjectionType": "string"
              },
              "ProvisionedThroughput": {
                "ReadCapacityUnits": number,
                "WriteCapacityUnits": number
              }
            }'
      - id: local_secondary_indexes
        type: string[]
        stability: experimental
        brief: "The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field."
        examples:
          - '{
              "IndexArn": "string",
              "IndexName": "string",
              "IndexSizeBytes": number,
              "ItemCount": number,
              "KeySchema": [
                {
                  "AttributeName": "string",
                  "KeyType": "string"
                }
              ],
              "Projection": {
                "NonKeyAttributes": [ "string" ],
                "ProjectionType": "string"
              }
            }'
      - id: exclusive_start_table
        type: string
        stability: experimental
        brief: "The value of the `ExclusiveStartTableName` request parameter."
        examples:
          - Users
          - CatsTable
      - id: table_count
        type: int
        stability: experimental
        brief: "The number of items in the `TableNames` response parameter."
        examples:
          - 20
      - id: scan_forward
        type: boolean
        stability: experimental
        brief: "The value of the `ScanIndexForward` request parameter."
      - id: segment
        type: int
        stability: experimental
        brief: "The value of the `Segment` request parameter."
        examples:
          - 10
      - id: total_segments
        type: int
        stability: experimental
        brief: "The value of the `TotalSegments` request parameter."
        examples:
          - 100
      - id: count
        type: int
        stability: experimental
        brief: "The value of the `Count` response parameter."
        examples:
          - 10
      - id: scanned_count
        type: int
        stability: experimental
        brief: "The value of the `ScannedCount` response parameter."
        examples:
          - 50
      - id: attribute_definitions
        type: string[]
        stability: experimental
        brief: "The JSON-serialized value of each item in the `AttributeDefinitions` request field."
        examples:
          - '{
              "AttributeName": "string",
              "AttributeType": "string"
             }'
      - id: global_secondary_index_updates
        type: string[]
        stability: experimental
        brief: "The JSON-serialized value of each item in the `GlobalSecondaryIndexUpdates` request field."
        examples:
          - '{
              "Create": {
                "IndexName": "string",
                "KeySchema": [
                  {
                    "AttributeName": "string",
                    "KeyType": "string"
                  }
                ],
                "Projection": {
                  "NonKeyAttributes": [ "string" ],
                  "ProjectionType": "string"
                },
                "ProvisionedThroughput": {
                  "ReadCapacityUnits": number,
                  "WriteCapacityUnits": number
                }
              }'
  - id: registry.aws.ecs
    prefix: aws.ecs
    type: attribute_group
    brief: >
      This document defines attributes for AWS Elastic Container Service (ECS).
    attributes:
      - id: container.arn
        type: string
        stability: experimental
        brief: >
          The Amazon Resource Name (ARN) of an [ECS container instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).
        examples: ['arn:aws:ecs:us-west-1:123456789123:container/32624152-9086-4f0e-acae-1a75b14fe4d9']
      - id: cluster.arn
        type: string
        stability: experimental
        brief: >
          The ARN of an [ECS cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html).
        examples: ['arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster']
      - id: launchtype
        type:
          allow_custom_values: true
          members:
            - id: ec2
              value: "ec2"
              stability: experimental
            - id: fargate
              value: "fargate"
              stability: experimental
        stability: experimental
        brief: >
          The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.
      - id: task.arn
        type: string
        stability: experimental
        brief: >
          The ARN of a running [ECS task](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids).
        examples: [
          'arn:aws:ecs:us-west-1:123456789123:task/10838bed-421f-43ef-870a-f43feacbbb5b',
          'arn:aws:ecs:us-west-1:123456789123:task/my-cluster/task-id/23ebb8ac-c18f-46c6-8bbe-d55d0e37cfbd'
        ]
      - id: task.family
        type: string
        stability: experimental
        brief: >
          The family name of the [ECS task definition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) used to create the ECS task.
        examples: ['opentelemetry-family']
      - id: task.id
        type: string
        stability: experimental
        brief: >
          The ID of a running ECS task. The ID MUST be extracted from `task.arn`.
        requirement_level:
          conditionally_required: If and only if `task.arn` is populated.
        examples: [ '10838bed-421f-43ef-870a-f43feacbbb5b', '23ebb8ac-c18f-46c6-8bbe-d55d0e37cfbd' ]
      - id: task.revision
        type: string
        stability: experimental
        brief: >
          The revision for the task definition used to create the ECS task.
        examples: ["8", "26"]
  - id: registry.aws.eks
    prefix: aws.eks
    type: attribute_group
    brief: >
      This document defines attributes for AWS Elastic Kubernetes Service (EKS).
    attributes:
      - id: cluster.arn
        type: string
        stability: experimental
        brief: >
          The ARN of an EKS cluster.
        examples: ['arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster']
  - id: registry.aws.log
    prefix: aws.log
    type: attribute_group
    brief: >
      This document defines attributes for AWS Logs.
    attributes:
      - id: group.names
        type: string[]
        stability: experimental
        brief: >
          The name(s) of the AWS log group(s) an application is writing to.
        examples: ['/aws/lambda/my-function', 'opentelemetry-service']
        note: >
          Multiple log groups must be supported for cases like multi-container applications,
          where a single application has sidecar containers, and each write to their own log
          group.
      - id: group.arns
        type: string[]
        stability: experimental
        brief: >
          The Amazon Resource Name(s) (ARN) of the AWS log group(s).
        examples: ['arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:*']
        note: >
          See the
          [log group ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format).
      - id: stream.names
        type: string[]
        stability: experimental
        brief: >
          The name(s) of the AWS log stream(s) an application is writing to.
        examples: ['logs/main/10838bed-421f-43ef-870a-f43feacbbb5b']
      - id: stream.arns
        type: string[]
        stability: experimental
        brief: >
          The ARN(s) of the AWS log stream(s).
        examples: ['arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:log-stream:logs/main/10838bed-421f-43ef-870a-f43feacbbb5b']
        note: >
          See the
          [log stream ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format).
          One log group can contain several log streams, so these ARNs necessarily identify both a log
          group and a log stream.

  - id: registry.aws.lambda
    prefix: aws.lambda
    type: attribute_group
    brief: >
        This document defines attributes for AWS Lambda.
    attributes:
      - id: invoked_arn
        type: string
        stability: experimental
        brief: >
          The full invoked ARN as provided on the `Context` passed to the function
          (`Lambda-Runtime-Invoked-Function-Arn` header on the `/runtime/invocation/next` applicable).
        note: This may be different from `cloud.resource_id` if an alias is involved.
        examples: ['arn:aws:lambda:us-east-1:123456:function:myfunction:myalias']
  - id: registry.aws.s3
    prefix: aws.s3
    type: attribute_group
    brief: >
      This document defines attributes for AWS S3.
    attributes:
      - id: bucket
        type: string
        stability: experimental
        brief: "The S3 bucket name the request refers to. Corresponds to the `--bucket` parameter of the [S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) operations."
        examples:
          - some-bucket-name
        note: |
            The `bucket` attribute is applicable to all S3 operations that reference a bucket, i.e. that require the bucket name as a mandatory parameter.
            This applies to almost all S3 operations except `list-buckets`.
      - id: key
        type: string
        stability: experimental
        brief: "The S3 object key the request refers to. Corresponds to the `--key` parameter of the [S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) operations."
        examples:
          - someFile.yml
        note: |
            The `key` attribute is applicable to all object-related S3 operations, i.e. that require the object key as a mandatory parameter.
            This applies in particular to the following operations:

            - [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)
            - [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html)
            - [get-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/get-object.html)
            - [head-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/head-object.html)
            - [put-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html)
            - [restore-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/restore-object.html)
            - [select-object-content](https://docs.aws.amazon.com/cli/latest/reference/s3api/select-object-content.html)
            - [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html)
            - [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html)
            - [create-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/create-multipart-upload.html)
            - [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html)
            - [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)
            - [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
      - id: copy_source
        type: string
        stability: experimental
        brief: "The source object (in the form `bucket`/`key`) for the copy operation."
        examples:
          - someFile.yml
        note: |
            The `copy_source` attribute applies to S3 copy operations and corresponds to the `--copy-source` parameter
            of the [copy-object operation within the S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html).
            This applies in particular to the following operations:

            - [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)
            - [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
      - id: upload_id
        type: string
        stability: experimental
        brief: "Upload ID that identifies the multipart upload."
        examples:
          - 'dfRtDYWFbkRONycy.Yxwh66Yjlx.cph0gtNBtJ'
        note: |
            The `upload_id` attribute applies to S3 multipart-upload operations and corresponds to the `--upload-id` parameter
            of the [S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) multipart operations.
            This applies in particular to the following operations:

            - [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html)
            - [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html)
            - [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html)
            - [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)
            - [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
      - id: delete
        type: string
        stability: experimental
        brief: "The delete request container that specifies the objects to be deleted."
        examples:
          - 'Objects=[{Key=string,VersionId=string},{Key=string,VersionId=string}],Quiet=boolean'
        note: |
            The `delete` attribute is only applicable to the [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html) operation.
            The `delete` attribute corresponds to the `--delete` parameter of the
            [delete-objects operation within the S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-objects.html).
      - id: part_number
        type: int
        stability: experimental
        brief: "The part number of the part being uploaded in a multipart-upload operation. This is a positive integer between 1 and 10,000."
        examples:
          - 3456
        note: |
            The `part_number` attribute is only applicable to the [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)
            and [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html) operations.
            The `part_number` attribute corresponds to the `--part-number` parameter of the
            [upload-part operation within the S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html).
