groups:
  - id: registry.device
    type: attribute_group
    display_name: Device Attributes
    brief: >
      Describes device attributes.
    attributes:
      - id: device.id
        type: string
        stability: development
        brief: >
          A unique identifier representing the device
        note: |
          Its value SHOULD be identical for all apps on a device and it SHOULD NOT change if an app is uninstalled and re-installed.
          However, it might be resettable by the user for all apps on a device.
          Hardware IDs (e.g. vendor-specific serial number, IMEI or MAC address) MAY be used as values.

          More information about Android identifier best practices can be found [here](https://developer.android.com/training/articles/user-data-ids).

          > [!WARNING]
          >
          > This attribute may contain sensitive (PII) information. Caution should be taken when storing personal data or anything which can identify a user. GDPR and data protection laws may apply,
          > ensure you do your own due diligence.
          >
          > Due to these reasons, this identifier is not recommended for consumer applications and will likely result in rejection from both Google Play and App Store.
          > However, it may be appropriate for specific enterprise scenarios, such as kiosk devices or enterprise-managed devices, with appropriate compliance clearance.
          > Any instrumentation providing this identifier MUST implement it as an opt-in feature.
          >
          > See [`app.installation.id`](/docs/registry/attributes/app.md#app-installation-id) for a more privacy-preserving alternative.
        examples:
          - '123456789012345'
          - 01:23:45:67:89:AB
      - id: device.manufacturer
        type: string
        stability: development
        brief: >
          The name of the device manufacturer
        note: >
          The Android OS provides this field via [Build](https://developer.android.com/reference/android/os/Build#MANUFACTURER).
          iOS apps SHOULD hardcode the value `Apple`.
        examples: ['Apple', 'Samsung']
      - id: device.model.identifier
        type: string
        stability: development
        brief: >
          The model identifier for the device
        note: >
          It's recommended this value represents a machine-readable version of
          the model identifier rather than the market or consumer-friendly name
          of the device.
        examples: ['iPhone3,4', 'SM-G920F']
      - id: device.model.name
        type: string
        stability: development
        brief: >
          The marketing name for the device model
        note: >
          It's recommended this value represents a human-readable version of the
          device model rather than a machine-readable alternative.
        examples: ['iPhone 6s Plus', 'Samsung Galaxy S6']
