openapi: 3.1.0
info:
  title: API dla systemu Krajowej Infolinii 19111
  description: Specyfikacja interfejsu umożliwiającego integrację z Krajową Infolinią 19111
  version: '1.2'

servers:
  - url: https://krajowa-infolinia-19111
tags:
  - name: call
    description: Przeprowadzona rozmowa
paths:
  /calls/{idCall}:
    get:
      tags:
        - call
      summary: Pobiera dane rozmowy na podstawie identyfikatora połączenia „idCall”
      description: Pobiera dane rozmowy na podstawie identyfikatora połączenia „idCall”
      operationId: getCallById
      parameters:
        - name: idCall
          in: path
          description: Identyfikator połączenia
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Operacja zakończyła się powodzeniem
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Call'
        '401':
          description: Brak autoryzacji, błąd uwierzytelnienia
        '404':
          description: Wskazany zasób nie istnieje np. Połączenie o wskazanym identyfikatorze
        '500':
          description: Wewnętrzny błąd serwera
components:
  schemas:
    Call:
      description: Komunikat z informacją o odebranej rozmowie przychodzącej lub wychodzącej
      required:
        - idCall
        - direction
        - phoneNumber
        - idAgent
        - answeredTimestamp
      type: object
      properties:
        idCall:
          description: Unikalny identyfikator połączenia z systemu Krajowej Infolinii 19111
          type: string
          examples: ['a961002e-41bf-49db-80e3-02406ad0391d']
        direction:
          type: string
          description: Kierunek połączenia
          $ref: "#/components/schemas/CallDirection"
          examples: ['INCOMING']
        phoneNumber:
          description: Numer telefonu rozmówcy
          type: string
          examples: ['+48123456789']
        contactName:
          description: Nazwa rozmówcy z książki kontaktowej
          type: string
          examples: ['Name from contacts']
        idAgent:
          description: Unikalny identyfikator użytkownika z systemu Krajowej Infolinii 19111, który przeprowadził rozmowę
          type: string
          examples: ['1001']
        answeredTimestamp:
          description: Data i czas rozpoczęcia rozmowy
          type: string
          format: date-time
          examples: ['2025-02-21T14:25:05+01:00']
        endTimestamp:
          description: Data i czas zakończenia rozmowy
          type: string
          format: date-time
          examples: ['2025-02-21T14:25:05+01:00']
    CallDirection:
      description: |
        Kierunek połączenia:
        - INCOMING - Połączenie przychodzące
        - OUTGOING - Połączenie wychodzące
      enum:
        - INCOMING
        - OUTGOING
  securitySchemes:
    sc_auth:
      type: http
      scheme: basic
