groups:
  - id: registry.client
    prefix: client
    type: attribute_group
    brief: >
      These attributes may be used to describe the client in a connection-based network interaction
      where there is one side that initiates the connection (the client is the side that initiates the connection).
      This covers all TCP network interactions since TCP is connection-based and one side initiates the
      connection (an exception is made for peer-to-peer communication over TCP where the "user-facing" surface of the
      protocol / API doesn't expose a clear notion of client and server).
      This also covers UDP network interactions where one side initiates the interaction, e.g. QUIC (HTTP/3) and DNS.
    attributes:
      - id: address
        stability: stable
        type: string
        brief: "Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name."
        note: >
          When observed from the server side, and when communicating through an intermediary, `client.address` SHOULD represent
          the client address behind any intermediaries,  for example proxies, if it's available.
        examples: ['client.example.com', '10.1.2.80', '/tmp/my.sock']
      - id: port
        stability: stable
        type: int
        brief: Client port number.
        examples: [65123]
        note: >
          When observed from the server side, and when communicating through an intermediary, `client.port` SHOULD represent
          the client port behind any intermediaries,  for example proxies, if it's available.
