openapi: 3.0.0
info:
  version: '1.0.0'
  title: '5G-EIR Equipment Identity Check'
  description: '5G-EIR Equipment Identity Check Service'
servers:
  - url: '{apiRoot}/n5g-eir-eic/v1'
    variables:
      apiRoot:
        default: https://example.com
        description: apiRoot as defined in subclause subclause 4.4 of 3GPP TS 29.501
security:
  - {}
  - oAuth2ClientCredentials:
      - n5g-eir-eic
paths:
  /equipment-status:
    get:
      summary: Retrieves the status of the UE
      operationId: GetEquipmentStatus
      tags:
        - Equipment Status (Document)
      parameters:
        - name: pei
          in: query
          description: PEI of the UE
          required: true
          schema:
            $ref: '#/components/schemas/Pei' 
        - name: supi
          in: query
          description: SUPI of the UE
          required: false
          schema:
            $ref: '#/components/schemas/Supi' 
      responses:
        '200':
          description: Expected response to a valid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EirResponseData'
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29571_CommonData.yaml#/components/responses/401'
        '404':
          description: PEI Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '414':
          $ref: 'TS29571_CommonData.yaml#/components/responses/414'
        '429':
          $ref: 'TS29571_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          description: Unexpected error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
components:
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      flows: 
        clientCredentials: 
          tokenUrl: '{nrfApiRoot}/oauth2/token'
          scopes:
            n5g-eir-eic: Access to the N5g-eir_EquipmentIdentityCheck API
  schemas:
    EirResponseData:
      type: object
      required:
        - status
      properties:
        status:
            $ref: '#/components/schemas/EquipmentStatus'
    Pei:
      type: string
      pattern: "([0-9]{14})"
    Supi:
      type: string
      pattern: "(imsi-[0-9]{5,15}|nai-.+)"
    EquipmentStatus:
      type: string
      enum:
        - WHITELISTED
        - BLACKLISTED
        - GREYLISTED
    ProblemDetails:
      description: 'https://www.rfc-editor.org/rfc/rfc7807.txt'
      type: object
      required:
        - type
      properties:
        type:
          type: string
        title:
          type: string
        status:
          type: integer
        detail:
          type: string
        instance:
          type: string
externalDocs:
  description: 3GPP TS 29.511 V15.2.0; 5G System; Equipment Identity Register Services; Stage 3
  url: 'http://www.3gpp.org/ftp/Specs/archive/29_series/29.511/'