swagger: '2.0'
info:
  title: MPiZW Portal - Powiadomienia
  description: >-
    Notyfikacje w formie WebHook, służące do informowania stron postępowania o
    zdarzeniach związanych z postępowaniami.
  version: '1.0'
schemes:
  - https
host: api.ezamowienia.gov.pl
basePath: /mpizw-portal/powiadomienia
consumes:
  - application/json
produces:
  - application/json
tags:
  - name: Notyfikacje
paths:
  '/otwarcie-wnioskow':
    post:
      summary: Upłynął termin składania wniosków
      description: >-
        Metoda służy do poinformowania, że upłynął termin składania
        wniosków dla danego postępowania w danym etapie.
      operationId: UplynalTermin
      tags:
        - Notyfikacje
      parameters:
        - name: body
          description: Notyfikacja
          in: body
          required: true
          schema:
            $ref: '#/definitions/UplynalTerminRequest'
      responses:
        '201':
          description: Przyjęto powiadomienie
        '400':
          description: Niepoprawne żądanie
          schema:
            $ref: '#/definitions/Blad'
        '401':
          description: Niezalogowany
          schema:
            $ref: '#/definitions/Blad'
        '403':
          description: Brak uprawnień
          schema:
            $ref: '#/definitions/Blad'
  '/gotowoscDoSkladaniaOfert':
    post:
      summary: Metoda służy do poinformowania, że jest możliwe składanie ofert w ramach etapu postępowania.
      description: >-
        Powiadomienie Portalu e-Usług, że dla danego postępowania został wygenerowany klucz i możliwe jest składanie ofert.
      operationId: GotowoscDoSkladaniaOfert
      tags:
        - Notyfikacje
      parameters:
        - name: body
          description: Notyfikacja
          in: body
          required: true
          schema:
            $ref: '#/definitions/GotowoscDoSkladaniaOfertRequest'
      responses:
        '201':
          description: Przyjęto powiadomienie
        '400':
          description: Niepoprawne żądanie
          schema:
            $ref: '#/definitions/Blad'
        '401':
          description: Niezalogowany
          schema:
            $ref: '#/definitions/Blad'
        '403':
          description: Brak uprawnień
          schema:
            $ref: '#/definitions/Blad'
  '/zaproszenieDoSkladaniaOfert':
    post:
      summary: Informacja, że można składać oferty w ramach postępowania
      description: >-
        Metoda służy do poinformowania, że można składać oferty w ramach postępowania i etapu.
      operationId: ZaproszeniDoSkladaniaOfert
      tags:
        - Notyfikacje
      parameters:
        - name: body
          description: Notyfikacja
          in: body
          required: true
          schema:
            $ref: '#/definitions/ZaproszenieDoSkladaniaOfertRequest'
      responses:
        '201':
          description: Przyjęto powiadomienie
        '400':
          description: Niepoprawne żądanie
          schema:
            $ref: '#/definitions/Blad'
        '401':
          description: Niezalogowany
          schema:
            $ref: '#/definitions/Blad'
        '403':
          description: Brak uprawnień
          schema:
            $ref: '#/definitions/Blad'
definitions:
  IdPostepowania:
    description: Identyfikator postępowania
    type: string
    format: uuid
  UplynalTerminRequest:
    type: object
    required:
      - idPostepowania
      - terminSkladaniaWnioskow
    properties:
      idPostepowania:
        $ref: '#/definitions/IdPostepowania'
      terminSkladaniaWnioskow:
        description: Znacznik czasu terminu składania wniosków
        type: string
        format: date-time  
    example:
      idPostepowania: e63bf835-224a-4b3b-a564-160640911f0a
      terminSkladaniaOfert: '2018-04-05T11:51:20.123'
  GotowoscDoSkladaniaOfertRequest:
    type: object
    required:
      - idPostepowania 
    properties:
      idPostepowania:
        $ref: '#/definitions/IdPostepowania'
  ZaproszenieDoSkladaniaOfertRequest:
    type: object
    properties:
      terminSkladaniaOfert:
        type: string
        format: date-time
      urlSiwz:
        type: string
      terminPublikacjiOgloszenia:
        type: string
        format: date-time
      adresURLPublikacjiOgloszenia:
        type: string
      adresSkladaniaOfert:
        type: string
      wymaganyJezykOferty:
        type: string
      lacznaPunktacja:
        type: number
        format: integer
      kryteriaPrzedmiotoweOfert:
        description: Wartości kryteriów przedmiotowych
        type: array
        items:
          type: object
          required:
            - nazwa
            - znaczenie
            - wartosc
          properties:
            nazwa:
              description: Nazwa kryterium
              type: string
            znaczenie:
              description: Znaczenie kryterium
              type: string
            wartosc:
              description: Wartość kryterium
              type: string
  ZaproszenieDoSkladaniaOfertResponse:
    type: object
    properties:
      dataOtrzymania:
        type: string
        format: date-time
      idPostepowania:
        $ref: '#/definitions/IdPostepowania'
  Blad:
    description: Błąd
    type: object
    required:
      - blad
    properties:
      blad:
        type: object
        required:
          - id
          - podsystem
          - kod
          - opis
          - czas
        properties:
          id:
            description: Unikalny identyfikator błędu
            type: string
            format: uuid
          podsystem:
            description: ID modułu Platformy, w ramach którego wystąpił błąd
            type: string
          kod:
            description: Kod błędu
            type: string
          opis:
            description: Opis błędu
            type: string
          czas:
            description: Znacznik czasu wystąpienia błędu
            type: string
            format: date-time
    example:
      blad:
        id: e63bf835-224a-4b3b-a564-160640911f0a
        podsystem: MPiZO Portal - Powiadomienia
        kod: 123
        opis: Szczegółowy opis błędu
        czas: '2018-04-05T11:51:20.123'
