swagger: '2.0'
info:
  description: Rozhraní pro organizace
  version: 2.0.2
  title: iFis Organizace REST API
  # put the contact info for your development or API team
  contact:
    name: BBM s.r.o.

  license:
    name: (c) BBM s.r.o.
    url: 'http://www.bbm.cz'

# host: svijany.bbm.cz:7102

# basePath: /org

schemes:
 - https

# tags are used for organizing operations
tags:
- name: admin
  description: administrace 
- name: organizace
  description: informace o organizaci
- name: subjekty
  description: informace o subjektu

securityDefinitions:
  basicAuth:
    type: basic
# To apply Basic auth to the whole API:
security:
  - basicAuth: []

parameters:
  icParam:
    in: path
    name: Ic
    required: true
    type: string
    maxLength: 20
    description: DIČ nebo IČO
  icoParam:
    in: query
    name: Ico
    type: string
    maxLength: 20
    description: IČO
  dicParam:
    in: query
    name: Dic
    type: string
    maxLength: 20
    description: DIČ
  extSysParam:
    in: query
    name: Extsys
    type: string
    maxLength: 20
    description: Externí systém
  zemeParam:
    in: query
    name: Zeme
    type: string
    maxLength: 3
    description: Kód země, pokud je zahraniční
  ekjIdParam:
    in: query
    name: EkjId
    type: integer
    format: int64
    maximum: 9999999999
    description: Identifikátor ekonomické jednotky
  zalozAdrParam:
    in: query
    name: ZalozAdr
    type: string
    maxLength: 1
    enum:
    - A
    - N
    description: >
      Založ adresu v případě neexistence ve FIS:
        * A - Ano
        * N - Ne
  
paths:
  /ping:
    get:
      tags:
      - admin
      summary: test connection
      operationId: checkWs
      description: Just test connection and correct authentication
      produces:
      - application/json
      responses:
        200:
          description: Úspěšné přihlášení
          schema:
            $ref: '#/definitions/TDataOut'
        401:
           $ref: "#/responses/UnauthorizedError"
        404:
          description: Služba je nedostupná


  /organizace:
    post:
      tags:
      - organizace
      summary: overeni/zalozeni organizace
      operationId: checkOrg
      description: Ověří existenci organizace v číselníku příp. jí doplní
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - in: body
        name: datain
        description: Vstupní parametry dotazu
        schema:
          $ref: '#/definitions/TDataIn'
      responses:
        200:
          description: Identifikatory organizace
          schema:
            $ref: '#/definitions/TDataOut'
        401:
           $ref: "#/responses/UnauthorizedError"
        404:
          description: Služba je nedostupná


  /sbj:
    parameters:
    - $ref: '#/parameters/icoParam'
    - $ref: '#/parameters/dicParam'
    - $ref: '#/parameters/ekjIdParam'
    - $ref: '#/parameters/extSysParam'

    get:
      tags:
      - subjekty
      summary: cteni informace o subjektu
      operationId: getSbjInfo
      description: Čte informace o subjektech a všech jejich součástech
      produces:
      - application/json
      responses:
        200:
          description: Detaily organizací
          schema:
            type: array
            items:
              $ref: '#/definitions/TSbjInfo'
        400:
          description: Chybný požadavek
          schema:
            $ref: '#/definitions/TDataOut'
        401:
           $ref: "#/responses/UnauthorizedError"
        404:
          description: Služba je nedostupná


responses:
  UnauthorizedError:
    description: Authentication information is missing or invalid
    headers:
      WWW_Authenticate:
        type: string


definitions:
  TDataIn:
    type: object
    properties:
      ExtModul:
        type: string
        maxLength: 50
        description: Identifikace externího systému
      EkjId:
        type: integer
        format: int64
        maximum: 9999999999
        description: Identifikátor ekonomické jednotky
      Zeme:
        type: string
        maxLength: 3
        description: Kód země, pokud je zahraniční
      ZalozAdr:
        type: string
        maxLength: 1
        enum:
        - A
        - N
        description: >
          Založ adresu:
            * A - Ano
            * N - Ne

  TDataOut:
    type: object
    required:
    - Kod
    - Popis
    properties:
      Kod:
        type: string
        maxLength: 32
        description: Kód zprávy
      Popis:
        type: string
        maxLength: 2000
        description: Popis zprávy
      VadId:
        type: integer
        format: int64
        maximum: 9999999999
        description: Identifikátor adresy organizace
      SbjId:
        type: integer
        format: int64
        maximum: 9999999999
        description: Identifikátor organizace
        
  TSbjInfo:
    type: object
    properties:
      SbjId:
        type: integer
        format: int64
        maximum: 9999999999
        description: Identifikátor organizace
      SbjNazev:
        type: string
        maxLength: 255
        description: Název organizace
      SbjIntNazev:
        type: string
        maxLength: 20
        description: Interní název organizace
      PlatceDph:
        type: string
        maxLength: 1
        description: Plátce DPH (+/-)
      Ico:
        type: string
        maxLength: 82
        description: Identifikační číslo organizace
      Dic:
        type: string
        maxLength: 20
        description: Daňové identifikační číslo
      Jazyk:
        type: string
        maxLength: 3
        description: Komunikační jazyk
      SbjTyp:
        type: string
        maxLength: 255
        description: Speciální typ organizace
      SbjKod:
        type: string
        maxLength: 20
        description: Speciální kód organizace
      MnaId:
        type: string
        maxLength: 3
        description: Hlavní měna organizace
      ZmeId:
        type: string
        maxLength: 3
        description: Kód země
      SbjIdNadriz:
        type: integer
        format: int64
        maximum: 9999999999
        description: Nadřízená organizace
      PlatnostOd:
        type: string
        format: date
        description: Začátek platnosti organizace
      PlatnostDo:
        type: string
        format: date
        description: Konec platnosti organizace
      Komentar:
        type: string
        maxLength: 2000
        description: Komentář k organizaci
      EkjId:
        type: integer
        format: int64
        maximum: 9999999999
        description: ID ekonomické jednotky
      NespolehlivyOd:
        type: string
        format: date
        description: Nespolehlivý od data
      KonsAkt:
        type: string
        maxLength: 1
        description: Účastní se subjekt konsolidace? - A / N
      KonsKod:
        type: string
        maxLength: 1
        description: Kod konsolidace
      CsuisKod:
        type: string
        maxLength: 60
        description: CSUIS_KOD
      SkupPlatceDph:
        type: string
        maxLength: 1
        description: Skupinový plátce DPH (+/-)
      ZverSml:
        type: string
        maxLength: 1
        description: Indikace zveřejňování smlouvy (A..Ano / N..Ne)
      Adresy:
        type: array
        items:
          $ref: '#/definitions/TAdrInfo'

  TAdrInfo:
    type: object
    properties:
      VadId:
        type: integer
        format: int64
        maximum: 9999999999
        description: Identifikátor adresy organizace
      TypAdr:
        type: string
        maxLength: 5
        description: BASE = poštovní adresa
      Hlavni:
        type: string
        maxLength: 1
        description: Hlavní adresa pro fakturaci (+/-)
      Sidlo:
        type: string
        maxLength: 1
        description: Adresa sídla dle rejstříku ARES (+/-)
      MnaId:
        type: string
        maxLength: 3
        description: Kód měnové jednotky části organizace
      Cast:
        type: string
        maxLength: 80
        description: Část - doplňující název organizace
      CastCiz:
        type: string
        maxLength: 80
        description: Část - doplňující název organizace - cizojazyčně
      Komentar:
        type: string
        maxLength: 2000
        description: Komentář k adrese
      PlatnostOd:
        type: string
        format: date
        description: Začátek platnosti adresy
      PlatnostDo:
        type: string
        format: date
        description: Konec platnosti adresy
      AdrNazev:
        type: string
        maxLength: 60
        description: Název adresy
      Ulice:
        type: string
        maxLength: 60
        description: Ulice a číslo popisné
      Psc:
        type: string
        maxLength: 13
        description: PSČ adresy
      MstNazev:
        type: string
        maxLength: 40
        description: Název města
      MstNazevLocal:
        type: string
        maxLength: 40
        description: Lokální název města
      ZmeId:
        type: string
        maxLength: 3
        description: Kód země


# Added by API Auto Mocking Plugin
host: virtserver.swaggerhub.com
basePath: /BBM-s.r.o8/iFis-ImpZak/1.0.0