swagger: '2.0'
info:
  description: >-
    RESTful API designed as the Message Registry Contracts of the Federated ebox
    for citizens.
  version: '1.6'
  title: Ebox Citizen REST service
  contact:
    name: Ebox Development Team
    url: 'http://www.smals.be'
    email: citizenfedbox@smals.be
  license:
    name: digitalbelgium
    url: 'http://digitalbelgium.be/'
basePath: /ebox/citizen/v2
tags:
  - name: Documentation
  - name: Ebox
  - name: Messages
  - name: ReferenceData
  - name: MetaAPI
  - name: JsonWebKey
schemes:
  - https
paths:
  /api:
    get:
      tags:
        - Documentation
      summary: List links
      description: ''
      operationId: get
      produces:
        - application/json
      parameters: []
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/HalResource'
          headers:
            Link:
              type: string
              description: RFC 5988 Link Header
    options:
      tags:
        - Documentation
      summary: List links
      description: ''
      operationId: options
      produces:
        - application/json
      parameters: []
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/HalResource'
          headers:
            Link:
              type: string
              description: RFC 5988 Link Header
  /api/doc:
    get:
      tags:
        - Documentation
      summary: Returns the API documentation in HTML format
      description: ''
      operationId: getApiDoc
      produces:
        - text/html
      parameters: []
      responses:
        '200':
          description: successful operation
          schema:
            type: string
  '/api/doc/jsonSchemas/{jsonSchema}':
    get:
      tags:
        - Documentation
      summary: Returns the JSON Schemas
      description: ''
      operationId: getJsonSchema
      produces:
        - application/json
      parameters:
        - name: jsonSchema
          in: path
          description: JSON Schema name
          required: true
          type: string
          pattern: .+
      responses:
        '200':
          description: successful operation
          schema:
            type: string
  /api/doc/swagger.json:
    get:
      tags:
        - Documentation
      summary: Returns the API documentation in JSON Swagger format
      description: ''
      operationId: getSwagger
      produces:
        - application/json
      parameters: []
      responses:
        '200':
          description: successful operation
          schema:
            type: string
  /ebox:
    get:
      tags:
        - Ebox
      summary: >-
        Get an ebox. The identification of the given (citizen) ebox is deducted
        from the OAuth2 AccessToken (via introspect call on the Authorization
        Server) used to call the REST service.
      description: ''
      operationId: getEBoxById
      produces:
        - application/json
      parameters: []
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/Ebox'
        '400':
          description: Invalid acess token
          schema:
            $ref: '#/definitions/StatusMessage'
        '401':
          description: Invalid authorization for ebox
          schema:
            $ref: '#/definitions/StatusMessage'
        '404':
          description: Ebox not found
          schema:
            $ref: '#/definitions/StatusMessage'
  /ebox/messages:
    get:
      tags:
        - Messages
      summary: >-
        Get a collection of messages. Messages are the main elements contained
        in an ebox. A message is basically composed of a set of metadata (e.g.
        subject, receipt date, etc.), one body, one or more attachments.
      description: ''
      operationId: getMessagesByEBoxId
      produces:
        - application/json
      parameters:
        - name: page
          in: query
          description: The index of the current page of items.
          required: false
          type: integer
          default: 1
          minimum: 1
          format: int32
        - name: pageSize
          in: query
          description: The maximal number of results per page.
          required: false
          type: integer
          default: 25
          maximum: 100
          minimum: 1
          format: int32
        - name: receivedBefore
          in: query
          description: >-
            Select only the messages received before the given date. e.g.
            ?receivedBefore:2017-07-01
          required: false
          type: string
          format: date
        - name: receivedAfter
          in: query
          description: >-
            Select only the messages received after the given date. e.g.
            ?receivedAfter:2017-07-01
          required: false
          type: string
          format: date
        - name: expiredBefore
          in: query
          description: >-
            Select only the messages that will expire before the given date.
            e.g. ?expiredBefore:2017-07-01
          required: false
          type: string
          format: date
        - name: expiredAfter
          in: query
          description: >-
            Select only the messages that will expire after the given date. e.g.
            ?expiredAfter:2020-01-01
          required: false
          type: string
          format: date
        - name: readStatus
          in: query
          description: Indication of the readStatus
          required: false
          type: boolean
        - name: registeredMail
          in: query
          description: Indication if the message is a registered mail item
          required: false
          type: boolean
        - name: messageTypeId
          in: query
          description: The messageTypeId linked to this message
          required: false
          type: string
        - name: senderOrganizationId
          in: query
          description: The companyId of the sender
          required: false
          type: string
        - name: senderApplicationId
          in: query
          description: The applicationId of the sender
          required: false
          type: string
        - name: subject
          in: query
          description: Subject of the message
          required: false
          type: string
        - name: sort
          in: query
          description: >-
            Indication on which properties the list needs to be sorted, using a
            comma-separated list with the property name as value for ascending
            order and the property prefixed with '-' for descending
          required: false
          type: string
          default: '-receiptDate'
          enum:
            - '-receiptDate'
            - receiptDate
            - '-expirationDate'
            - expirationDate
            - '-readStatus'
            - readStatus
            - '-subjectFr'
            - subjectFr
            - '-subjectNl'
            - subjectNl
            - '-subjectDe'
            - subjectDe
            - '-subjectEn'
            - subjectEn
          x-example: '?sort=receiptDate&sort=-expirationDate'
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/Messages'
        '400':
          description: Invalid access token supplied
          schema:
            $ref: '#/definitions/StatusMessage'
        '401':
          description: Invalid authorization for message
          schema:
            $ref: '#/definitions/StatusMessage'
        '404':
          description: Message not found
          schema:
            $ref: '#/definitions/StatusMessage'
  '/ebox/messages/{messageId}':
    get:
      tags:
        - Messages
      summary: Get a message by its messageId
      description: ''
      operationId: getMessageById
      produces:
        - application/json
      parameters:
        - name: messageId
          in: path
          description: The identifier of the message
          required: true
          type: string
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/Message'
        '400':
          description: Invalid messageId supplied
          schema:
            $ref: '#/definitions/StatusMessage'
        '401':
          description: Invalid authorization for message
          schema:
            $ref: '#/definitions/StatusMessage'
        '404':
          description: Message not found
          schema:
            $ref: '#/definitions/StatusMessage'
  '/ebox/messages/{messageId}/attachments':
    get:
      tags:
        - Messages
      summary: Get a collection of attachment metadata by the messageId
      description: ''
      operationId: getAttachmentByMessageId
      produces:
        - application/json
      parameters:
        - name: messageId
          in: path
          description: The identifier of the message
          required: true
          type: string
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/Attachments'
        '400':
          description: Invalid messageId supplied
          schema:
            $ref: '#/definitions/StatusMessage'
        '401':
          description: Invalid authorization for messageId
          schema:
            $ref: '#/definitions/StatusMessage'
        '404':
          description: messageId not found
          schema:
            $ref: '#/definitions/StatusMessage'
  '/ebox/messages/{messageId}/attachments/{attachmentId}':
    get:
      tags:
        - Messages
      summary: Get the attachment metadata by its attachmentId
      description: ''
      operationId: getAttachmentById
      produces:
        - application/json
      parameters:
        - name: messageId
          in: path
          description: The identifier of the message
          required: true
          type: string
        - name: attachmentId
          in: path
          description: The identifier of the attachment
          required: true
          type: string
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/Attachment'
        '400':
          description: Invalid attachmentId supplied
          schema:
            $ref: '#/definitions/StatusMessage'
        '401':
          description: Invalid authorization for attachment
          schema:
            $ref: '#/definitions/StatusMessage'
        '404':
          description: Attachment not found
          schema:
            $ref: '#/definitions/StatusMessage'
  '/ebox/messages/{messageId}/attachments/{attachmentId}/content':
    get:
      tags:
        - Messages
      summary: Get the attachment content by its attachmentId
      description: ''
      operationId: getAttachmentContentById
      produces:
        - application/octet-stream
      parameters:
        - name: messageId
          in: path
          description: The identifier of the message
          required: true
          type: string
        - name: attachmentId
          in: path
          description: The identifier of the attachment
          required: true
          type: string
      responses:
        '200':
          description: successful operation
          schema:
            type: string
        '400':
          description: Invalid attachmentId supplied
          schema:
            $ref: '#/definitions/StatusMessage'
        '401':
          description: Invalid authorization for attachment
          schema:
            $ref: '#/definitions/StatusMessage'
        '404':
          description: Attachment not found
          schema:
            $ref: '#/definitions/StatusMessage'
  '/ebox/messages/{messageId}/body':
    get:
      tags:
        - Messages
      summary: Get the body content
      operationId: getBodyContent
      produces:
        - application/json
      parameters:
        - name: messageId
          in: path
          description: The identifier of the message
          required: true
          type: string
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/TranslatedString'
        '400':
          description: Invalid messageId supplied
          schema:
            $ref: '#/definitions/StatusMessage'
        '401':
          description: Invalid authorization for body
          schema:
            $ref: '#/definitions/StatusMessage'
        '404':
          description: Body not found
          schema:
            $ref: '#/definitions/StatusMessage'
  '/ebox/messages/{messageId}/paymentData':
    get:
      tags:
        - Messages
      summary: Get the paymentData of a message
      description: ''
      operationId: getPaymentDataByMessageId
      produces:
        - application/json
      parameters:
        - name: messageId
          in: path
          description: The identifier of the message
          required: true
          type: string
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/PaymentData'
        '401':
          description: Invalid authorization for paymentData
          schema:
            $ref: '#/definitions/StatusMessage'
        '404':
          description: PaymentData not found
          schema:
            $ref: '#/definitions/StatusMessage'
  /publishMessage:
    post:
      tags:
        - Messages
      summary: >-
        Publish a new message, using multipart request: one JSON as the message
        description and one or more attachments. The 'originalMessageId' tag in
        the JSON-part indicates a reply in a bidirectional flow.
      operationId: postMessage
      consumes:
        - multipart/form-data
      produces:
        - application/json
      parameters:
        - in: formData
          name: messageToPublish
          type: string
          required: true
          description: >-
            JSON-description of the message to Publish. See MessageToPublish
            definition.
          x-example: See MessageToPublish definition.
        - in: formData
          name: upfile1
          type: file
          required: false
        - in: formData
          name: upfile2
          type: file
          required: false
        - in: formData
          name: upfile3
          type: file
          required: false
      responses:
        '201':
          description: Created
          schema:
            $ref: '#/definitions/MessageSummary'
  /jwk:
    get:
      tags:
        - JsonWebKey
      summary: Returns its public RSA keys as a JSON Web Key (JWK) set.
      description: ''
      operationId: getPublicKey
      produces:
        - application/json
      parameters: []
      responses:
        '200':
          description: successful operation
          schema:
            type: string
  /referenceData/messagesOperations:
    get:
      tags:
        - MetaAPI
      summary: >-
        List all messagesOperations. This indicates which operations are
        available for the Messages resource on this messageProvider
      description: ''
      operationId: findAllMessagesOperations
      produces:
        - application/json
      parameters: []
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/MessagesOperations'
        '404':
          description: messagesOperations not found
          schema:
            $ref: '#/definitions/StatusMessage'
  /referenceData/messageTypes:
    get:
      tags:
        - ReferenceData
      summary: >-
        Get a collection of messageTypeSummary. MessageTypes are the different
        types of messages defined by the senders. A messageType usually
        corresponds to a business category of a letter or document (e.g.
        attestation X., declaration Y., communication Z., etc.). 
      description: ''
      operationId: getAllMessagesTypes
      produces:
        - application/json
      parameters:
        - name: page
          in: query
          description: The index of the current page of items.
          required: false
          type: integer
          default: 1
          minimum: 1
          format: int32
        - name: pageSize
          in: query
          description: The maximal number of results per page.
          required: false
          type: integer
          default: 25
          maximum: 100
          minimum: 1
          format: int32
        - name: senderOrganizationId
          in: query
          description: The organizationId of the sender
          required: false
          type: string
        - name: senderApplicationId
          in: query
          description: The applicationId of the sender
          required: false
          type: string
        - name: name
          in: query
          description: Name of the messageType to search
          required: false
          type: string
        - name: sort
          in: query
          description: >-
            Indication on which properties the list needs to be sorted, using a
            comma-separated list with the property name as value for ascending
            order and the property prefixed with '-' for descending
          required: false
          type: string
          default: messageTypeId
          enum:
            - '-messageTypeId'
            - messageTypeId
            - '-messageTypeNameNl'
            - messageTypeNameNl
            - '-messageTypeNameFr'
            - messageTypeNameFr
            - '-messageTypeNameDe'
            - messageTypeNameDe
            - '-messageTypeNameEn'
            - messageTypeNameEn
            - '-validityPeriod'
            - validityPeriod
          x-example: '?sort=-validityPeriod&sort=messageTypeNameNl'
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/MessageTypes'
        '401':
          description: Invalid authorization
          schema:
            $ref: '#/definitions/StatusMessage'
        '404':
          description: messageTypes not found
          schema:
            $ref: '#/definitions/StatusMessage'
  '/referenceData/messageTypes/{messageTypeId}':
    get:
      tags:
        - ReferenceData
      summary: >-
        Get a messageType by its messageTypeId. A messageType usually
        corresponds to a business category of a letter or document (e.g. attest
        X., declaration Y., communication Z., etc.). A messageType gives all the
        detailed information about a type of message, such as the name or the
        description.
      description: ''
      operationId: getMessageTypeById
      produces:
        - application/json
      parameters:
        - name: messageTypeId
          in: path
          description: The identifier of the messageType
          required: true
          type: string
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/MessageType'
        '400':
          description: Invalid messageTypeId supplied
          schema:
            $ref: '#/definitions/StatusMessage'
        '404':
          description: messageTypeId not found
          schema:
            $ref: '#/definitions/StatusMessage'
  /referenceData/messageTypesOperations:
    get:
      tags:
        - MetaAPI
      summary: >-
        List all mesageTypesOperations. This indicates which operations are
        available for the messageTypes resource on this messageProvider
      description: ''
      operationId: findAllMessageTypesOperations
      produces:
        - application/json
      parameters: []
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/MessageTypesOperations'
        '404':
          description: mesageTypesOperations not found
          schema:
            $ref: '#/definitions/StatusMessage'
  /referenceData/senderApplications:
    get:
      tags:
        - ReferenceData
      summary: >-
        List all senderApplications. SenderApplications are the different
        applications (online services...) that send messages.
      description: ''
      operationId: findAllSenderApplications
      produces:
        - application/json
      parameters:
        - name: page
          in: query
          description: The index of the current page of items.
          required: false
          type: integer
          default: 1
          minimum: 1
          format: int32
        - name: pageSize
          in: query
          description: The maximal number of results per page
          required: false
          type: integer
          default: 25
          maximum: 100
          minimum: 1
          format: int32
        - name: senderOrganizationId
          in: query
          description: The organizationId of the sender
          required: false
          type: string
        - name: messageTypeId
          in: query
          description: The messageTypeId of the messageType
          required: false
          type: string
        - name: name
          in: query
          description: Name of the sender Application to search
          required: false
          type: string
        - name: sort
          in: query
          description: >-
            Indication on which properties the list needs to be sorted, using a
            comma-separated list with the property name as value for ascending
            order and the property prefixed with '-' for descending
          required: false
          type: string
          default: applicationId
          enum:
            - '-applicationId'
            - applicationId
            - '-applicationNameNl'
            - applicationNameNl
            - '-applicationNameFr'
            - applicationNameFr
            - '-applicationNameDe'
            - applicationNameDe
            - '-applicationNameEn'
            - applicationNameEn
          x-example: '?sort=-applicationNameNl'
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/SenderApplications'
        '401':
          description: Invalid authorization for senderApplications
          schema:
            $ref: '#/definitions/StatusMessage'
        '404':
          description: senderApplications not found
          schema:
            $ref: '#/definitions/StatusMessage'
  '/referenceData/senderApplications/{senderApplicationId}':
    get:
      tags:
        - ReferenceData
      summary: Get a senderApplication by its senderApplicationId
      description: ''
      operationId: getSenderApplicationById
      produces:
        - application/json
      parameters:
        - name: senderApplicationId
          in: path
          description: The applicationId of the sender
          required: true
          type: string
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/SenderApplication'
        '400':
          description: Invalid senderApplicationId supplied
          schema:
            $ref: '#/definitions/StatusMessage'
        '404':
          description: senderApplicationId not found
          schema:
            $ref: '#/definitions/StatusMessage'
  '/referenceData/senderApplications/{senderApplicationId}/images/{imageId}/{formatId}/content':
    get:
      tags:
        - ReferenceData
      summary: Get an image by its imageId
      description: ''
      operationId: getImageForSenderApplication
      produces:
        - application/octet-stream
      parameters:
        - name: imageId
          in: path
          description: The identifier of the image
          required: true
          type: string
        - name: senderApplicationId
          in: path
          description: The identifier of the application
          required: true
          type: string
        - name: formatId
          in: path
          description: The size of the image
          required: true
          type: string
      responses:
        '200':
          description: successful operation
          schema:
            type: string
        '400':
          description: Invalid imageId supplied
          schema:
            $ref: '#/definitions/StatusMessage'
        '404':
          description: Image not found
          schema:
            $ref: '#/definitions/StatusMessage'
  /referenceData/senderApplicationsOperations:
    get:
      tags:
        - MetaAPI
      summary: >-
        List all senderApplicationsOperations. This indicates which operations
        are available for the senderApplications resource on this
        messageProvider
      description: ''
      operationId: findAllSenderApplicationsOperations
      produces:
        - application/json
      parameters: []
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/SenderApplicationsOperations'
        '404':
          description: senderApplicationsOperations not found
          schema:
            $ref: '#/definitions/StatusMessage'
  /referenceData/senderOrganizations:
    get:
      tags:
        - ReferenceData
      summary: >-
        List all senderOrganizations. SenderOrganizations are the different
        organizations (Institutions, companies...) that send messages.
      description: ''
      operationId: findAllSenderOrganizations
      produces:
        - application/json
      parameters:
        - name: page
          in: query
          description: The index of the current page of items
          required: false
          type: integer
          default: 1
          minimum: 1
          format: int32
        - name: pageSize
          in: query
          description: The maximal number of results per page
          required: false
          type: integer
          default: 25
          maximum: 100
          minimum: 1
          format: int32
        - name: senderApplicationId
          in: query
          description: The applicationId of the sender
          required: false
          type: string
        - name: messageTypeId
          in: query
          description: The messageTypeId of the messageType
          required: false
          type: string
        - name: name
          in: query
          description: Name of the sender to search
          required: false
          type: string
        - name: sort
          in: query
          description: >-
            Indication on which properties the list needs to be sorted, using a
            comma-separated list with the property name as value for ascending
            order and the property prefixed with '-' for descending
          required: false
          type: string
          default: organizationId
          enum:
            - '-organizationId'
            - organizationId
            - '-organizationShortNameNl'
            - organizationShortNameNl
            - '-organizationShortNameFr'
            - organizationShortNameFr
            - '-organizationShortNameDe'
            - organizationShortNameDe
            - '-organizationShortNameEn'
            - organizationShortNameEn
          x-example: '?sort=-organizationShortNameNl'
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/SenderOrganizations'
        '401':
          description: Invalid authorization for senderOrganizations
          schema:
            $ref: '#/definitions/StatusMessage'
        '404':
          description: senderOrganizations not found
          schema:
            $ref: '#/definitions/StatusMessage'
  '/referenceData/senderOrganizations/{senderOrganizationId}':
    get:
      tags:
        - ReferenceData
      summary: Get a senderOrganization by its companyId
      description: ''
      operationId: getSenderOrganizationById
      produces:
        - application/json
      parameters:
        - name: senderOrganizationId
          in: path
          description: The organizationId of the sender
          required: true
          type: string
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/SenderOrganization'
        '400':
          description: Invalid senderOrganizationId supplied
          schema:
            $ref: '#/definitions/StatusMessage'
        '404':
          description: senderOrganizationId not found
          schema:
            $ref: '#/definitions/StatusMessage'
  '/referenceData/senderOrganizations/{senderOrganizationId}/images/{imageId}/{formatId}/content':
    get:
      tags:
        - ReferenceData
      summary: Get an image by its imageId
      description: ''
      operationId: getImageForSenderOrganization
      produces:
        - application/octet-stream
      parameters:
        - name: imageId
          in: path
          description: The identifier of the image
          required: true
          type: string
        - name: senderOrganizationId
          in: path
          description: The identifier of the institution
          required: true
          type: string
        - name: formatId
          in: path
          description: The size of the image
          required: true
          type: string
      responses:
        '200':
          description: successful operation
          schema:
            type: string
        '400':
          description: Invalid imageId supplied
          schema:
            $ref: '#/definitions/StatusMessage'
        '404':
          description: Image not found
          schema:
            $ref: '#/definitions/StatusMessage'
  /referenceData/senderOrganizationsOperations:
    get:
      tags:
        - MetaAPI
      summary: >-
        List all senderOrganizationsOperations. This indicates which operations
        are available for the senderOrganizations resource on this
        messageProvider
      description: ''
      operationId: findAllSenderOrganizationsOperations
      produces:
        - application/json
      parameters: []
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/SenderOrganizationsOperations'
        '404':
          description: senderOrganizationsOperations not found
          schema:
            $ref: '#/definitions/StatusMessage'
definitions:
  Attachment:
    type: object
    properties:
      attachmentId:
        type: string
        description: Unique identifier of the attachment
      attachmentTitle:
        description: >-
          Common type defined to provide a string value for each supported
          language among nl, fr, de, en
        $ref: '#/definitions/TranslatedString'
      mainContent:
        type: boolean
        description: >-
          Indicates the priority of this attachment: 'true' means that this
          attachment is considered as main content of the message, 'false' means
          this attachment is considered as an annex. Attention, the readStatus
          of a message will be true as soon as a 'mainContent' is consulted.
      mediaType:
        type: string
        description: Standardized identifier for file formats following RFC2046
        enum:
          - APPLICATION/PDF
          - APPLICATION/ZIP
          - TEXT/CSV
          - TEXT/HTML
          - TEXT/PLAIN
          - TEXT/XML
          - APPLICATION/VND.OASIS.OPENATTACHMENT.TEXT
          - APPLICATION/VND.OASIS.OPENATTACHMENT.SPREADSHEET
          - APPLICATION/VND.OASIS.OPENATTACHMENT.PRESENTATION
          - APPLICATION/VND.OASIS.OPENATTACHMENT.GRAPHICS
          - APPLICATION/VND.MS.EXCEL
          - APPLICATION/VND.OPENXMLFORMATS.OFFICEATTACHMENT.SPREADSHEETML.SHEET
          - APPLICATION/VND.MS.POWERPOINT
          - APPLICATION/MSWORD
          - >-
            APPLICATION/VND.OPENXMLFORMATS.OFFICEDOCUMENT.WORDPROCESSINGML.DOCUMENT
      size:
        type: number
        format: double
        example: 1800
        description: 'Size of the attachment, expressed in kB'
      digest:
        description: >-
          Object containing the digestValue and digestMethod describing the
          cryptographic hash function of an item
        $ref: '#/definitions/Digest'
      attachmentSigned:
        type: boolean
        description: Boolean used to indicate if the attachment is signed or not.
        default: false
      contentHref:
        type: string
        format: uri
        description: URL to the content of the attachment
      _links:
        description: Object of links with the rels as the keys
        $ref: '#/definitions/HalLinks'
    description: >-
      An attachment item contains all the metadata of an attachment and the link
      to the attachtment content itself
  Attachments:
    type: object
    properties:
      items:
        type: array
        items:
          $ref: '#/definitions/Attachment'
      totalItems:
        type: integer
        format: int32
      _links:
        description: Object of links with the rels as the keys
        $ref: '#/definitions/HalLinks'
    description: >-
      A paged list of attachments containing the metadata of the attachments and
      link to the attachtment itself
  Detail:
    type: object
    properties:
      kind:
        type: object
      message:
        type: object
      ref:
        type: object
      value:
        type: object
  Digest:
    type: object
    required:
      - digestMethod
      - digestValue
    properties:
      digestValue:
        type: string
        description: Digest value returned by the cryptographic hash function
      digestMethod:
        type: string
        description: Cryptographic hash function used to obtain the digest
        enum:
          - SHA_256
          - SHA_512
    description: >-
      Object containing the digestValue and digestMethod describing the
      cryptographic hash function of an item
  Ebox:
    type: object
    required:
      - numberOfMessages
    properties:
      numberOfMessages:
        type: integer
        format: int32
        example: 36
        description: Total number of messages available in this ebox.
      numberOfUnreadMessages:
        type: integer
        format: int32
        example: 2
        description: Number of unread messages in this ebox.
      lastReceiptDate:
        type: string
        format: date-time
        example: '2017-07-24T09:26:00Z'
        description: >-
          Receipt date (date-time format: yyyy-MM-dd'T'HH:mm:ssXXX) of the most
          recent message in this ebox.
      lastConsultationDate:
        type: string
        format: date-time
        example: '2017-08-01T15:34:00Z'
        description: Date-time of the last moment when the ebox was accessed
      eboxSize:
        type: number
        format: double
        example: 1800
        description: >-
          Cumulative total of attachments sizes (related to all the available
          messages in this ebox), expressed in kilobytes (1 kilobyte = 1024
          bytes).
      _links:
        description: Object of links with the rels as the keys
        $ref: '#/definitions/HalLinks'
    description: >-
      An ebox represents the electronic post-box, made available by a given
      MessageRegistry Provider.
  HalLink:
    type: object
    required:
      - href
    properties:
      href:
        type: string
        format: uri
        description: 'Its value is either a URI [RFC3986] or a URI Template [RFC6570].'
      hreflang:
        type: string
        description: >-
          When present, is a hint in RFC5646 format indicating what the language
          of the result of dereferencing the link should be.  Note that this is
          only a hint; for example, it does not override the Content-Language
          header of a HTTP response obtained by actually following the link.
        pattern: >-
          ^([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){0,2})?(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-([a-zA-Z0-9]{5,8}|[0-9][a-zA-Z0-9]{3}))*([0-9A-WY-Za-wy-z](-[a-zA-Z0-9]{2,8}){1,})*(x-[a-zA-Z0-9]{2,8})?)|(x-[a-zA-Z0-9]{2,8})|(en-GB-oed)|(i-ami)|(i-bnn)|(i-default)|(i-enochian)|(i-hak)|(i-klingon)|(i-lux)|(i-mingo)|(i-navajo)|(i-pwn)|(i-tao)|(i-tay)|(i-tsu)|(sgn-BE-FR)|(sgn-BE-NL)|(sgn-CH-DE)|(art-lojban)|(cel-gaulish)|(no-bok)|(no-nyn)|(zh-guoyu)|(zh-hakka)|(zh-min)|(zh-min-nan)|(zh-xiang)$
      templated:
        type: boolean
        description: >-
          Its value is boolean and SHOULD be true when the Link Object's href
          property is a URI Template.
        default: false
      type:
        type: string
        description: >-
          Its value is a string used as a hint to indicate the media type
          expected when dereferencing the target resource.
      deprecation:
        type: boolean
        description: >-
          Its presence indicates that the link is to be deprecated (i.e.
          removed) at a future date. Its value is a URL that SHOULD provide
          further information about the deprecation.
        default: false
      name:
        type: string
        description: >-
          Its value MAY be used as a secondary key for selecting Link Objects
          which share the same relation type.
      title:
        type: string
        description: >-
          Its value is a string and is intended for labelling the link with a
          human-readable identifier (as defined by [RFC5988]).
  HalLinks:
    type: object
    properties:
      self:
        $ref: '#/definitions/HalLink'
    description: Object of links with the rels as the keys
  HalResource:
    type: object
    properties:
      _links:
        description: Object of links with the rels as the keys
        $ref: '#/definitions/HalLinks'
    description: A resource modeled after the HAL specification
  Image:
    type: object
    required:
      - contentHref
      - format
      - size
    properties:
      imageId:
        type: string
        description: Identifier of the image
      format:
        type: string
        description: >-
          Size of the image defined in one of the available sizes: small (less
          then 100px), medium (between 100px and 500px) and large (more than
          500px)
        enum:
          - SMALL
          - MEDIUM
          - LARGE
      size:
        type: number
        format: double
        example: 1800
        description: 'Size of the image, expressed in kB'
      mediaType:
        type: string
        description: Format of the image following RFC2046
        enum:
          - IMAGE/JPG
          - IMAGE/JPEG
          - IMAGE/PNG
          - IMAGE/GIF
          - IMAGE/BMP
          - IMAGE/SVG+XML
      language:
        type: string
        description: Language of the image
      contentHref:
        type: string
        format: uri
      _links:
        description: Object of links with the rels as the keys
        $ref: '#/definitions/HalLinks'
    description: An image gives the metadata and the base64 content of the image
  Message:
    type: object
    required:
      - expirationDate
      - messageId
      - messageTypeId
      - readStatus
      - receiptDate
      - registeredMail
      - senderOrganizationId
      - subject
    properties:
      messageId:
        type: string
        description: Unique identifier of the message in the ebox.
      originalMessageId:
        type: string
        description: Id of the original message (bidirectional use case).
      subject:
        description: >-
          Common type defined to provide a string value for each supported
          language among nl, fr, de, en
        $ref: '#/definitions/TranslatedString'
      receiptDate:
        type: string
        format: date-time
        description: >-
          Date-time (yyyy-MM-dd'T'HH:mm:ssXXX) when the message was received in
          the ebox.
      expirationDate:
        type: string
        format: date-time
        description: >-
          Date-time (yyyy-MM-dd'T'HH:mm:ssXXX) when the message will expire in
          the ebox.
      readStatus:
        type: boolean
        description: Indicates whether or not the message has already been opened.
        default: false
      registeredMail:
        type: boolean
        description: >-
          Indicates whether or not the message was published as a registered
          mail in the ebox.
        default: false
      messageTypeId:
        type: string
        description: Identifier of a messageType
      senderOrganizationId:
        type: string
        example: 0406798006
        description: Enterprise number (BCE - KBO number) of the sender organisation
        pattern: '[0-1][0-9]{9}'
      senderApplicationId:
        type: string
        description: Identifier of the senderApplication
      attachments:
        $ref: '#/definitions/Attachments'
      bodyMainContent:
        type: boolean
        description: >-
          This property must be present only if there is a body. Indicates the
          priority of the bodyContent: 'true' means that the body is considered
          as main content of the message, 'false' means it is considered as an
          annex. Attention, the readStatus of a message will be true as soon as
          a 'mainContent' is consulted.
        default: false
      paymentData:
        description: Data concerning payments
        $ref: '#/definitions/PaymentData'
      _links:
        description: Object of links with the rels as the keys
        $ref: '#/definitions/HalLinks'
    description: >-
      A message is basically composed of a set of metadata (e.g. subject,
      receipt date, read status, etc.), one body, one or more attachments.
  MessageSummary:
    type: object
    required:
      - messageId
      - subject
      - messageTypeId
      - readStatus
      - receiptDate
      - registeredMail
      - senderOrganizationId
    properties:
      messageId:
        type: string
        description: Unique identifier of the message in the ebox.
      originalMessageId:
        type: string
        description: Id of the original message (bidirectional use case).
      subject:
        description: >-
          Common type defined to provide a string value for each supported
          language among nl, fr, de, en
        $ref: '#/definitions/TranslatedString'
      receiptDate:
        type: string
        format: date-time
        description: >-
          Date-time (yyyy-MM-dd'T'HH:mm:ssXXX) when the message was received in
          the ebox.
      expirationDate:
        type: string
        format: date-time
        description: >-
          Date-time (yyyy-MM-dd'T'HH:mm:ssXXX) when the message will expire in
          the ebox.
      readStatus:
        type: boolean
        description: Indicates whether or not the message has already been opened.
        default: false
      registeredMail:
        type: boolean
        description: >-
          Indicates whether or not the message was published as a registered
          mail in the ebox.
        default: false
      messageTypeId:
        type: string
        description: Identifier of a messageType
      senderOrganizationId:
        type: string
        example: 0406798006
        description: Enterprise number (BCE - KBO number) of the sender organisation
        pattern: '[0-1][0-9]{9}'
      senderApplicationId:
        type: string
        description: Identifier of the senderApplication
      _links:
        description: Object of links with the rels as the keys
        $ref: '#/definitions/HalLinks'
    description: A messageSummary contains the main attributes of a message
  MessageToPublish:
    type: object
    description: >-
      A messageToPublish is basically composed of a mandatory set of metadata
      (e.g. recipient, subject, messageTypId, etc.), optional body, optional
      attachment(s).
    required:
      - subject
      - messageTypeId
      - senderOrganizationId
      - nrn
    properties:
      originalMessageId:
        type: string
        description: Id of the original message (bidirectional use case).
      nrn:
        description: >-
          The national registry number (rijksregisternummer / numéro de registre
          national) is the identifier of the recipient ebox.
        type: string
      subject:
        description: Subject is the title of the message in each language.
        $ref: '#/definitions/TranslatedString'
      messageTypeId:
        type: string
        description: Identifier of a messageType
      senderOrganizationId:
        type: string
        example: 0406798006
        description: Enterprise number (BCE - KBO number) of the sender organization
        pattern: '[0-1][0-9]{9}'
      senderApplicationId:
        type: string
        description: Identifier of the senderApplication
      registeredMail:
        type: boolean
        description: >-
          Indicates whether or not the message was published as a registered
          mail in the ebox. Attention, publish a registeredMail to EBOX is only
          possible for EPOST service.
        default: false
      attachments:
        type: object
        description: A list of attachments
        properties:
          items:
            type: array
            items:
              $ref: '#/definitions/Attachment'
          totalItems:
            type: integer
            format: int32
          _links:
            description: Object of links with the rels as the keys
            $ref: '#/definitions/HalLinks'
      bodyMainContent:
        type: boolean
        description: >-
          This property must be present only if there is a body. Indicates the
          priority of the bodyContent: 'true' means that the body is considered
          as main content of the message, 'false' means it is considered as an
          annex. Attention, the readStatus of a message will be true as soon as
          a 'mainContent' is consulted.
        default: false
      bodyContent:
        $ref: '#/definitions/TranslatedString'
      paymentData:
        type: object
        description: The paymentData linked to the message being published
        $ref: '#/definitions/PaymentData'
  MessageType:
    type: object
    required:
      - messageTypeId
      - messageTypeName
      - senderOrganizationIds
    properties:
      messageTypeId:
        type: string
        description: Identifier of a messageType
      messageTypeName:
        description: >-
          Common type defined to provide a string value for each supported
          language among nl, fr, de, en
        $ref: '#/definitions/TranslatedString'
      messageTypeDescription:
        description: >-
          Common type defined to provide a string value for each supported
          language among nl, fr, de, en
        $ref: '#/definitions/TranslatedString'
      validityPeriod:
        description: >-
          Validity period of the messageType, indicating when messages of this
          type expire and are no longer available
        $ref: '#/definitions/ValidityPeriod'
      senderOrganizationIds:
        type: array
        description: >-
          Array of senderOrganization identifiers that can publish messages of
          this messageType
        items:
          type: string
      senderApplicationIds:
        type: array
        description: >-
          Array of senderApplication identifiers that can publish messages of
          this messageType
        items:
          type: string
      _links:
        description: Object of links with the rels as the keys
        $ref: '#/definitions/HalLinks'
    description: >-
      A MessageType corresponds to a business category of a letter or document
      (e.g. attestation X., declaration Y., communication Z., etc.). 
  MessageTypeSummary:
    type: object
    required:
      - messageTypeId
      - messageTypeName
      - senderOrganizationIds
    properties:
      messageTypeId:
        type: string
        description: Identifier of a messageType
      messageTypeName:
        description: >-
          Common type defined to provide a string value for each supported
          language among nl, fr, de, en
        $ref: '#/definitions/TranslatedString'
      senderOrganizationIds:
        type: array
        description: >-
          Array of senderOrganization identifiers that can publish messages of
          this messageType
        items:
          type: string
      senderApplicationIds:
        type: array
        description: >-
          Array of senderApplication identifiers that can publish messages of
          this messageType
        items:
          type: string
      _links:
        description: Object of links with the rels as the keys
        $ref: '#/definitions/HalLinks'
    description: A messageTypeSummary contains the main attributes of a messageType
  MessageTypes:
    type: object
    properties:
      items:
        type: array
        items:
          $ref: '#/definitions/MessageTypeSummary'
      totalItems:
        type: integer
        format: int32
      _links:
        description: Object of links with the rels as the keys
        $ref: '#/definitions/HalLinks'
    description: >-
      A paged list of messageTypeSummaries. MessageTypes are the different types
      of messages defined by the senders. A messageType usually corresponds to a
      business category of a letter or document (e.g. attestation X.,
      declaration Y., communication Z., etc.). 
  MessageTypesOperations:
    type: object
    required:
      - name
      - senderApplicationId
      - senderOrganizationId
      - sort
    properties:
      senderOrganizationId:
        type: boolean
        description: >-
          Indication if the senderOrganizationId is supported as a query
          parameter.
        default: false
      senderApplicationId:
        type: boolean
        description: >-
          Indication if the senderApplicationId is supported as a query
          parameter.
        default: false
      name:
        type: boolean
        description: Indication if searching on a name is supported as a query parameter.
        default: false
      sort:
        description: Indication on which elements sorting is possible.
        $ref: '#/definitions/MessageTypesSortOperations'
    description: >-
      The overview of operations that are available on the messageTypes resource
      for the current messageProvider.
  MessageTypesSortOperations:
    type: object
    required:
      - messageTypeId
      - messageTypeNameDe
      - messageTypeNameEn
      - messageTypeNameFr
      - messageTypeNameNl
    properties:
      messageTypeId:
        type: boolean
        description: >-
          Indication if order by messageTypeId is supported as a query
          parameter.
        default: false
      messageTypeNameNl:
        type: boolean
        description: >-
          Indication if order by messageTypeNameNl is supported as a query
          parameter.
        default: false
      messageTypeNameFr:
        type: boolean
        description: >-
          Indication if order by messageTypeNameFr is supported as a query
          parameter.
        default: false
      messageTypeNameDe:
        type: boolean
        description: >-
          Indication if order by messageTypeNameDe is supported as a query
          parameter.
        default: false
      messageTypeNameEn:
        type: boolean
        description: >-
          Indication if order by messageTypeNameEn is supported as a query
          parameter.
        default: false
    description: Indication on which elements sorting is possible.
  Messages:
    type: object
    properties:
      items:
        type: array
        items:
          $ref: '#/definitions/MessageSummary'
      totalItems:
        type: integer
        format: int32
      _links:
        description: Object of links with the rels as the keys
        $ref: '#/definitions/HalLinks'
    description: >-
      A paged list of messageSummaries. Messages are the main elements contained
      in an ebox. A message is basically composed of a set of metadata (e.g.
      subject, receipt date, etc.) and the content, being one body and/or one or
      more attachments.
  MessagesOperations:
    type: object
    required:
      - expiredAfter
      - expiredBefore
      - messageTypeId
      - readStatus
      - registeredMail
      - receivedAfter
      - receivedBefore
      - senderApplicationId
      - senderOrganizationId
      - sort
      - subject
    properties:
      receivedBefore:
        type: boolean
        description: Indication if receivedBefore is supported as a query parameter.
        default: false
      receivedAfter:
        type: boolean
        description: Indication if receivedAfter is supported as a query parameter.
        default: false
      expiredBefore:
        type: boolean
        description: Indication if expiredBefore is supported as a query parameter.
        default: false
      expiredAfter:
        type: boolean
        description: Indication if expiredAfter is supported as a query parameter.
        default: false
      readStatus:
        type: boolean
        description: Indication if the readStatus is supported as a query parameter.
        default: false
      registeredMail:
        type: boolean
        description: Indication if registeredMail is supported as a query parameter.
        default: false
      messageTypeId:
        type: boolean
        description: Indication if the messageTypeId is supported as a query parameter.
        default: false
      senderOrganizationId:
        type: boolean
        description: >-
          Indication if the senderOrganizationId is supported as a query
          parameter.
        default: false
      senderApplicationId:
        type: boolean
        description: >-
          Indication if the senderApplicationId is supported as a query
          parameter.
        default: false
      subject:
        type: boolean
        description: >-
          Indication if searching on a subject is supported as a query
          parameter.
        default: false
      sort:
        description: Indication on which elements sorting is possible.
        $ref: '#/definitions/MessagesSortOperations'
    description: >-
      The overview of operations that are available on the messages resource for
      the current messageProvider.
  MessagesSortOperations:
    type: object
    required:
      - expirationDate
      - readStatus
      - registeredMail
      - receiptDate
      - subjectDe
      - subjectEn
      - subjectFr
      - subjectNl
    properties:
      receiptDate:
        type: boolean
        description: Indication if order by receiptDate is supported as a query parameter.
        default: false
      expirationDate:
        type: boolean
        description: >-
          Indication if order by expirationDate is supported as a query
          parameter.
        default: false
      readStatus:
        type: boolean
        description: Indication if order by readStatus is supported as a query parameter.
        default: false
      registeredMail:
        type: boolean
        description: >-
          Indication if order by registeredMail is supported as a query
          parameter.
        default: false
      subjectNl:
        type: boolean
        description: Indication if order by subjectNl is supported as a query parameter.
        default: false
      subjectFr:
        type: boolean
        description: Indication if order by subjectFr is supported as a query parameter.
        default: false
      subjectDe:
        type: boolean
        description: Indication if order by subjectDe is supported as a query parameter.
        default: false
      subjectEn:
        type: boolean
        description: Indication if order by subjectEn is supported as a query parameter.
        default: false
    description: Indication on which elements sorting is possible.
  PaymentData:
    type: object
    required:
      - amount
      - currency
      - iban
      - paymentDataId
      - vatAmount
    properties:
      paymentDataId:
        type: string
        description: Identifier of the paymentData
      amount:
        type: number
        format: double
        description: 'Amount that needs to be paid, vat not included'
      vatAmount:
        type: number
        format: double
        description: 'Amount of the vat, to be added to the base amount when applicable'
      currency:
        type: string
        description: 'Currency in which the amount must be paid, following ISO 4217'
      dueDate:
        type: string
        format: date-time
        description: Date on which the payment needs to be fulfilled
      iban:
        type: string
        description: >-
          Bank account on which the amount must be paid, following ISO
          13616:2007
      reference:
        type: object
        description: Reference added to the payment
      _links:
        description: Object of links with the rels as the keys
        $ref: '#/definitions/HalLinks'
    description: Data concerning payments
  SenderApplication:
    type: object
    required:
      - applicationId
      - applicationName
    properties:
      applicationId:
        type: string
        description: Identifier of the senderApplication
      applicationName:
        description: >-
          Common type defined to provide a string value for each supported
          language among nl, fr, de, en
        $ref: '#/definitions/TranslatedString'
      applicationDescription:
        description: >-
          Common type defined to provide a string value for each supported
          language among nl, fr, de, en
        $ref: '#/definitions/TranslatedString'
      applicationLogo:
        type: array
        description: 'Logo used to represent the application, visible to the end user'
        items:
          $ref: '#/definitions/Image'
      applicationUrl:
        description: >-
          Common type defined to provide a string value for each supported
          language among nl, fr, de, en
        $ref: '#/definitions/TranslatedString'
      senderOrganizationIds:
        type: array
        description: >-
          Array of senderOrganisationIds that are allowed to publish messages
          emitted by this application
        items:
          type: string
      messageTypeIds:
        type: array
        description: Array of messageTypeIds that can be published by this application
        items:
          type: string
      contactBusiness:
        type: string
        description: >-
          Contact informations (webform, phone, email...) that an end user could
          use to ask a business question
      contactTechnical:
        type: string
        description: >-
          Contact data to join the technical team responsible for this
          application (not to used by the end users)
      _links:
        description: Object of links with the rels as the keys
        $ref: '#/definitions/HalLinks'
    description: >-
      SenderApplication represents an application (online service) that sends
      messages.
  SenderApplicationSummary:
    type: object
    required:
      - applicationId
      - applicationName
    properties:
      applicationId:
        type: string
        description: Identifier of the senderApplication
      applicationName:
        description: >-
          Common type defined to provide a string value for each supported
          language among nl, fr, de, en
        $ref: '#/definitions/TranslatedString'
      senderOrganizationIds:
        type: array
        description: >-
          Array of senderOrganisationIds that are allowed to publish messages
          emitted by this application
        items:
          type: string
      messageTypeIds:
        type: array
        description: Array of messageTypeIds that can be published by this application
        items:
          type: string
      _links:
        description: Object of links with the rels as the keys
        $ref: '#/definitions/HalLinks'
    description: >-
      A senderApplicationSummary contains the basic information of the
      senderApplication.
  SenderApplications:
    type: object
    properties:
      items:
        type: array
        items:
          $ref: '#/definitions/SenderApplicationSummary'
      totalItems:
        type: integer
        format: int32
      _links:
        description: Object of links with the rels as the keys
        $ref: '#/definitions/HalLinks'
    description: >-
      A paged list of senderApplicationsSummaries. SenderApplications are the
      different applications (online services...) that send messages.
  SenderApplicationsOperations:
    type: object
    required:
      - messageTypeId
      - name
      - sort
    properties:
      senderOrganizationId:
        type: boolean
        description: >-
          Indication if the senderOrganizationId is supported as a query
          parameter.
        default: false
      messageTypeId:
        type: boolean
        description: Indication if the messageTypeId is supported as a query parameter.
        default: false
      name:
        type: boolean
        description: Indication if searching on a name is supported as a query parameter.
        default: false
      sort:
        description: Indication on which elements sorting is possible.
        $ref: '#/definitions/SenderApplicationsSortOperations'
    description: >-
      The overview of operations that are available on the senderApplications
      resource for the current messageProvider.
  SenderApplicationsSortOperations:
    type: object
    required:
      - applicationId
      - applicationNameDe
      - applicationNameEn
      - applicationNameFr
      - applicationNameNl
    properties:
      applicationId:
        type: boolean
        description: >-
          Indication if order by applicationId is supported as a query
          parameter.
        default: false
      applicationNameNl:
        type: boolean
        description: >-
          Indication if order by applicationNameNl is supported as a query
          parameter.
        default: false
      applicationNameFr:
        type: boolean
        description: >-
          Indication if order by applicationNameFr is supported as a query
          parameter.
        default: false
      applicationNameDe:
        type: boolean
        description: >-
          Indication if order by applicationNameDe is supported as a query
          parameter.
        default: false
      applicationNameEn:
        type: boolean
        description: >-
          Indication if order by applicationNameEn is supported as a query
          parameter.
        default: false
    description: Indication on which elements sorting is possible.
  SenderOrganization:
    type: object
    required:
      - organizationId
      - organizationShortName
    properties:
      organizationId:
        type: string
        example: 0406798006
        description: Enterprise number (BCE - KBO number) of the sender organisation
        pattern: '[0-1][0-9]{9}'
      organizationShortName:
        description: >-
          Common type defined to provide a string value for each supported
          language among nl, fr, de, en
        $ref: '#/definitions/TranslatedString'
      organizationLongName:
        description: >-
          Common type defined to provide a string value for each supported
          language among nl, fr, de, en
        $ref: '#/definitions/TranslatedString'
      organizationLogo:
        type: array
        description: 'Logo used to represent the organization, visible to the end user'
        items:
          $ref: '#/definitions/Image'
      organizationUrl:
        description: >-
          Common type defined to provide a string value for each supported
          language among nl, fr, de, en
        $ref: '#/definitions/TranslatedString'
      senderApplicationIds:
        type: array
        description: >-
          Array of senderApplications for which the senderOrganization can
          publish messages
        items:
          type: string
      messageTypeIds:
        type: array
        description: >-
          Array of messageTypeIds for which the senderOrganization can publish
          messages
        items:
          type: string
      contactBusiness:
        type: string
        description: >-
          Contact informations (webform, phone, email...) that an end user could
          use to ask a business question
      contactTechnical:
        type: string
        description: >-
          Contact data to join the technical team responsible for this
          organization (not to used by the end users)
      _links:
        description: Object of links with the rels as the keys
        $ref: '#/definitions/HalLinks'
    description: >-
      SenderOrganization represents an organization (institution, company...)
      that can publish messages.
  SenderOrganizationSummary:
    type: object
    required:
      - organizationId
      - organizationLogo
      - organizationShortName
    properties:
      organizationId:
        type: string
        example: 0406798006
        description: Enterprise number (BCE - KBO number) of the sender organisation
        pattern: '[0-1][0-9]{9}'
      organizationShortName:
        description: >-
          Common type defined to provide a string value for each supported
          language among nl, fr, de, en
        $ref: '#/definitions/TranslatedString'
      organizationLogo:
        type: array
        description: 'Logo used to represent the organization, visible to the end user'
        items:
          $ref: '#/definitions/Image'
      senderApplicationIds:
        type: array
        description: >-
          Array of senderApplications for which the senderOrganization can
          publish messages
        items:
          type: string
      messageTypeIds:
        type: array
        description: >-
          Array of messageTypeIds for which the senderOrganization can publish
          messages
        items:
          type: string
      _links:
        description: Object of links with the rels as the keys
        $ref: '#/definitions/HalLinks'
    description: >-
      A senderOrganizationSummary contains basic information about the
      senderOrganization
  SenderOrganizations:
    type: object
    properties:
      items:
        type: array
        items:
          $ref: '#/definitions/SenderOrganizationSummary'
      totalItems:
        type: integer
        format: int32
      _links:
        description: Object of links with the rels as the keys
        $ref: '#/definitions/HalLinks'
    description: >-
      A paged list of senderOrganizationsSummaries. SenderOrganizations are the
      different organizations (institutions, companies...) that send messages.
  SenderOrganizationsOperations:
    type: object
    required:
      - messageTypeId
      - name
      - senderApplicationId
      - sort
    properties:
      senderApplicationId:
        type: boolean
        description: >-
          Indication if the senderOrganizationId is supported as a query
          parameter.
        default: false
      messageTypeId:
        type: boolean
        description: Indication if the messageTypeId is supported as a query parameter.
        default: false
      name:
        type: boolean
        description: Indication if searching on a name is supported as a query parameter.
        default: false
      sort:
        description: Indication on which elements sorting is possible.
        $ref: '#/definitions/SenderOrganizationsSortOperations'
    description: >-
      The overview of operations that are available on the senderOrganizations
      resource for the current messageProvider.
  SenderOrganizationsSortOperations:
    type: object
    required:
      - organizationId
      - organizationShortNameDe
      - organizationShortNameEn
      - organizationShortNameFr
      - organizationShortNameNl
    properties:
      organizationId:
        type: boolean
        description: >-
          Indication if order by organizationId is supported as a query
          parameter.
        default: false
      organizationShortNameNl:
        type: boolean
        description: >-
          Indication if order by organizationShortNameNl is supported as a query
          parameter.
        default: false
      organizationShortNameFr:
        type: boolean
        description: >-
          Indication if order by organizationShortNameFr is supported as a query
          parameter.
        default: false
      organizationShortNameDe:
        type: boolean
        description: >-
          Indication if order by organizationShortNameDe is supported as a query
          parameter.
        default: false
      organizationShortNameEn:
        type: boolean
        description: >-
          Indication if order by organizationShortNameEn is supported as a query
          parameter.
        default: false
    description: Indication on which elements sorting is possible.
  StatusMessage:
    type: object
    required:
      - code
      - id
      - message
    properties:
      id:
        type: string
        format: uuid
      code:
        type: string
      message:
        type: string
      contact:
        type: string
      environment:
        type: string
        enum:
          - DEVELOPMENT
          - TEST
          - INTEGRATION
          - ACCEPTATION
          - SIMULATION
          - PRODUCTION
      stackTrace:
        type: array
        items:
          type: array
          items:
            type: string
      details:
        type: array
        items:
          $ref: '#/definitions/Detail'
    description: A representation of a generic error message
  TranslatedString:
    type: object
    properties:
      nl:
        type: string
      fr:
        type: string
      de:
        type: string
      en:
        type: string
    description: >-
      Common type defined to provide a string value for each supported language
      among nl, fr, de, en
  ValidityPeriod:
    type: object
    required:
      - validityPeriodNumber
      - validityPeriodUnit
    properties:
      validityPeriodNumber:
        type: integer
        format: int32
        description: Number of validityPeriodUnits
      validityPeriodUnit:
        type: string
        description: Period unit used for the definition of the validationPeriod
        enum:
          - DAY
          - MONTH
          - YEAR
    description: >-
      Validity period of the messageType, indicating when messages of this type
      expire and are no longer available
