groups:
  - id: telemetry
    prefix: telemetry
    type: resource
    brief: >
      The telemetry SDK used to capture data recorded by the instrumentation libraries.
    attributes:
      - id: sdk.name
        type: string
        requirement_level: required
        brief: >
          The name of the telemetry SDK as defined above.
        note: |
          The OpenTelemetry SDK MUST set the `telemetry.sdk.name` attribute to `opentelemetry`.
          If another SDK, like a fork or a vendor-provided implementation, is used, this SDK MUST set the
          `telemetry.sdk.name` attribute to the fully-qualified class or module name of this SDK's main entry point
          or another suitable identifier depending on the language.
          The identifier `opentelemetry` is reserved and MUST NOT be used in this case.
          All custom identifiers SHOULD be stable across different versions of an implementation.
        examples: ["opentelemetry"]
      - id: sdk.language
        type:
          allow_custom_values: true
          members:
            - id: cpp
              value: "cpp"
            - id: dotnet
              value: "dotnet"
            - id: erlang
              value: "erlang"
            - id: go
              value: "go"
            - id: java
              value: "java"
            - id: nodejs
              value: "nodejs"
            - id: php
              value: "php"
            - id: python
              value: "python"
            - id: ruby
              value: "ruby"
            - id: rust
              value: "rust"
            - id: swift
              value: "swift"
            - id: webjs
              value: "webjs"
        requirement_level: required
        brief: >
          The language of the telemetry SDK.
      - id: sdk.version
        type: string
        requirement_level: required
        brief: >
          The version string of the telemetry SDK.
        examples: ["1.2.3"]
