# API-specifikationsmall för programvaruleverantörer att använda för att ta emot pushmeddelanden gällande
# företagsregisterförändringar som påverkar de grundläggande uppgifter som Bolagverket tillhandahåller.
#
# Val av faktisk host, basePath och path görs av programvaruleverantören.
#
swagger: '2.0'
info:
  description: Bolagsverkets API för notifieringar (pushmeddelanden) om ändrade grunduppgifter för företag i Bolagsverkets företagsregister. 
  version: '1.0'
  title: API för mottagning av SSBTGO notifieringsmeddelanden
# Faktisk host bestäms av den externa parten.
host: programvaruleverantor.example.com
# Faktisk basePath bestäms av den externa parten.
basePath: /api/v1.0 
schemes:
  - http
  - https
paths:
  # Faktisk path bestäms av den externa parten.
  '/pushmeddelande':
    post:
      summary: Notifieringsmeddelande från SSBTGO
      operationId: pushmeddelande
      consumes:
        - "application/json;charset=utf-8"
      parameters:
        - name: Auth
          in: header
          type: string
          required: false
          description: Innehåller värdet för auth (auteniseringsnyckel) om det angavs vid konfiguration av den service som notifieringen avser.

        - name: pushmeddelande
          in: body
          required: true
          schema:
            $ref: '#/definitions/Notifieringshandelse'
      responses:
        '200':
          description: OK
        '204':
          description: OK
        default:
          description: Alla andra HTTP-statusar (inklusive övriga 2xx och redirects) kommer räknas som fel. Notifieringstjänsten kommer då försöka skicka samma meddelande igen om omsändningsförsök definierats.
definitions:
  Notifieringshandelse:
    type: object
    description: Notifieringsmeddelande som skickas från Bolagsverket till dem som prenumererar på händelser med typ och id.
    properties:
      typ:
        type: string
        maxLength: 20
        description: Typ av händelse. Alltid SSBTGO för SSBTGO notifieringsmeddelanden.
        example: 'SSBTGO'
      id:
        type: string
        maxLength: 40
        description: Händelsens identitet i form av idetitetsbeteckningen för organisationen.
        example: '2021005489'
      nr:
        type: integer
        format: int64
        description: Händelsens ordningsnummer. Luckor i denna sekvens betyder att det finns händelser som inte nått fram till den externa parten. Den aktuella händelsen är dock den enda som är intressant för SSBTGO notifieringsmededlanden, det finns inget behov att hämta äldre händelser.
        example: '2'
      tid:
        type: string
        format: date-time
        description: Tidpunkt då notifieringshändelsen skapades.
      data: 
        $ref: '#/definitions/Foretagsandring'
    required: ["typ", "id", "nr", "tid", "data"]
  Foretagsandring:
    type: object
    description: Information om förändringen för organisationen.
    properties:
      andringRegistreringsdatum:
        type: string
        format: date
        maxLength: 10
        description: Datum då förändringen på organisationen registrerades.