openapi: 3.0.3
info:
  title: Laravel
  description: 'OpenAPI documentation for the application'
  version: 1.0.0
servers:
  -
    url: 'https://availability-stage.dataverse.gr'
paths:
  /api/personal-access-tokens:
    post:
      summary: 'Create api token'
      operationId: createApiToken
      description: "Authenticate by username and password (log-in).\nUsing the Avail API from server applications,\njust use the access token you received.\nNo need for username-password login."
      parameters: []
      responses: {  }
      tags:
        - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'Credentials: test user email. Must be a valid email address.'
                  example: sdm@dataverse.gr
                  nullable: false
                password:
                  type: string
                  description: 'Credentials: test user password.'
                  example: someHAPPYp@ssw0rd
                  nullable: false
                domain:
                  type: string
                  description: 'The domain of the user company.'
                  example: dataverse.gr
                  nullable: false
              required:
                - email
                - password
                - domain
      security: []
  /api/personal-access-tokens/current/refresh:
    post:
      summary: 'Refresh api token'
      operationId: refreshApiToken
      description: 'Create a new api token for the logged in user.'
      parameters: []
      responses: {  }
      tags:
        - Authentication
  /api/personal-access-tokens/current:
    delete:
      summary: 'Delete api token'
      operationId: deleteApiToken
      description: 'Delete token for the logged in user (log-out).'
      parameters: []
      responses: {  }
      tags:
        - Authentication
  /api/availability-calculation-sessions:
    post:
      summary: Create
      operationId: create
      description: 'Store an availability calculation session'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: d56a58bd-62ad-3706-9834-9972030133f7
                    date_from: 1704528000
                    date_from_string: '2024-01-06T08:00:00.000000Z'
                    date_until: 1704985200
                    date_until_string: '2024-01-11T15:00:00.000000Z'
                    status: SUCCESS
                    error: null
                    time_constrained_entity_groups:
                      -
                        time_constrained_entity_ids:
                          - 9b0516c6-10a5-4da0-b17d-8898b5adb0b4
                          - 9b05144b-93fd-4e53-8fe0-d690f35f7cef
                          - 9aff2f1a-9c34-40f7-9a35-ae22c309f925
                        availability_calculation_days:
                          -
                            id: c4907188-62e5-47d8-9211-e6262c7e9815
                            availabilities: []
                          -
                            id: ee146a4f-050b-45bb-86e1-c52dc4a3590f
                            availabilities: []
                          -
                            id: 509f3ac1-8c28-47da-ae8a-11d3eaae4486
                            availabilities: []
                          -
                            id: b73ae99a-bc55-4bf9-bd9d-bd26dc501d93
                            availabilities: []
                          -
                            id: 6e9910de-f27a-4aa0-85f4-d88160a6d5fd
                            availabilities:
                              -
                                start: 1704877200
                                start_str: '2024-01-10T09:00:00.000000Z'
                                end: 1704905940
                                end_str: '2024-01-10T16:59:00.000000Z'
                          -
                            id: 2b74bc10-6000-4d8f-8aea-fe8434536446
                            availabilities:
                              -
                                start: 1704956400
                                start_str: '2024-01-11T07:00:00.000000Z'
                                end: 1704985140
                                end_str: '2024-01-11T14:59:00.000000Z'
                        availabilities:
                          -
                            start: 1704877200
                            start_str: '2024-01-10T09:00:00.000000Z'
                            end: 1704905940
                            end_str: '2024-01-10T16:59:00.000000Z'
                          -
                            start: 1704956400
                            start_str: '2024-01-11T07:00:00.000000Z'
                            end: 1704985140
                            end_str: '2024-01-11T14:59:00.000000Z'
                    availabilities:
                      -
                        start: 1704877200
                        start_str: '2024-01-10T09:00:00.000000Z'
                        end: 1704905940
                        end_str: '2024-01-10T16:59:00.000000Z'
                      -
                        start: 1704956400
                        start_str: '2024-01-11T07:00:00.000000Z'
                        end: 1704985140
                        end_str: '2024-01-11T14:59:00.000000Z'
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        example: d56a58bd-62ad-3706-9834-9972030133f7
                      date_from:
                        type: integer
                        example: 1704528000
                      date_from_string:
                        type: string
                        example: '2024-01-06T08:00:00.000000Z'
                      date_until:
                        type: integer
                        example: 1704985200
                      date_until_string:
                        type: string
                        example: '2024-01-11T15:00:00.000000Z'
                      status:
                        type: string
                        example: SUCCESS
                      error:
                        type: string
                        example: null
                      time_constrained_entity_groups:
                        type: array
                        example:
                          -
                            time_constrained_entity_ids:
                              - 9b0516c6-10a5-4da0-b17d-8898b5adb0b4
                              - 9b05144b-93fd-4e53-8fe0-d690f35f7cef
                              - 9aff2f1a-9c34-40f7-9a35-ae22c309f925
                            availability_calculation_days:
                              -
                                id: c4907188-62e5-47d8-9211-e6262c7e9815
                                availabilities: []
                              -
                                id: ee146a4f-050b-45bb-86e1-c52dc4a3590f
                                availabilities: []
                              -
                                id: 509f3ac1-8c28-47da-ae8a-11d3eaae4486
                                availabilities: []
                              -
                                id: b73ae99a-bc55-4bf9-bd9d-bd26dc501d93
                                availabilities: []
                              -
                                id: 6e9910de-f27a-4aa0-85f4-d88160a6d5fd
                                availabilities:
                                  -
                                    start: 1704877200
                                    start_str: '2024-01-10T09:00:00.000000Z'
                                    end: 1704905940
                                    end_str: '2024-01-10T16:59:00.000000Z'
                              -
                                id: 2b74bc10-6000-4d8f-8aea-fe8434536446
                                availabilities:
                                  -
                                    start: 1704956400
                                    start_str: '2024-01-11T07:00:00.000000Z'
                                    end: 1704985140
                                    end_str: '2024-01-11T14:59:00.000000Z'
                            availabilities:
                              -
                                start: 1704877200
                                start_str: '2024-01-10T09:00:00.000000Z'
                                end: 1704905940
                                end_str: '2024-01-10T16:59:00.000000Z'
                              -
                                start: 1704956400
                                start_str: '2024-01-11T07:00:00.000000Z'
                                end: 1704985140
                                end_str: '2024-01-11T14:59:00.000000Z'
                        items:
                          type: object
                          properties:
                            time_constrained_entity_ids:
                              type: array
                              example:
                                - 9b0516c6-10a5-4da0-b17d-8898b5adb0b4
                                - 9b05144b-93fd-4e53-8fe0-d690f35f7cef
                                - 9aff2f1a-9c34-40f7-9a35-ae22c309f925
                              items:
                                type: string
                            availability_calculation_days:
                              type: array
                              example:
                                -
                                  id: c4907188-62e5-47d8-9211-e6262c7e9815
                                  availabilities: []
                                -
                                  id: ee146a4f-050b-45bb-86e1-c52dc4a3590f
                                  availabilities: []
                                -
                                  id: 509f3ac1-8c28-47da-ae8a-11d3eaae4486
                                  availabilities: []
                                -
                                  id: b73ae99a-bc55-4bf9-bd9d-bd26dc501d93
                                  availabilities: []
                                -
                                  id: 6e9910de-f27a-4aa0-85f4-d88160a6d5fd
                                  availabilities:
                                    -
                                      start: 1704877200
                                      start_str: '2024-01-10T09:00:00.000000Z'
                                      end: 1704905940
                                      end_str: '2024-01-10T16:59:00.000000Z'
                                -
                                  id: 2b74bc10-6000-4d8f-8aea-fe8434536446
                                  availabilities:
                                    -
                                      start: 1704956400
                                      start_str: '2024-01-11T07:00:00.000000Z'
                                      end: 1704985140
                                      end_str: '2024-01-11T14:59:00.000000Z'
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    example: c4907188-62e5-47d8-9211-e6262c7e9815
                                  availabilities:
                                    type: array
                                    example: []
                            availabilities:
                              type: array
                              example:
                                -
                                  start: 1704877200
                                  start_str: '2024-01-10T09:00:00.000000Z'
                                  end: 1704905940
                                  end_str: '2024-01-10T16:59:00.000000Z'
                                -
                                  start: 1704956400
                                  start_str: '2024-01-11T07:00:00.000000Z'
                                  end: 1704985140
                                  end_str: '2024-01-11T14:59:00.000000Z'
                              items:
                                type: object
                                properties:
                                  start:
                                    type: integer
                                    example: 1704877200
                                  start_str:
                                    type: string
                                    example: '2024-01-10T09:00:00.000000Z'
                                  end:
                                    type: integer
                                    example: 1704905940
                                  end_str:
                                    type: string
                                    example: '2024-01-10T16:59:00.000000Z'
                      availabilities:
                        type: array
                        example:
                          -
                            start: 1704877200
                            start_str: '2024-01-10T09:00:00.000000Z'
                            end: 1704905940
                            end_str: '2024-01-10T16:59:00.000000Z'
                          -
                            start: 1704956400
                            start_str: '2024-01-11T07:00:00.000000Z'
                            end: 1704985140
                            end_str: '2024-01-11T14:59:00.000000Z'
                        items:
                          type: object
                          properties:
                            start:
                              type: integer
                              example: 1704877200
                            start_str:
                              type: string
                              example: '2024-01-10T09:00:00.000000Z'
                            end:
                              type: integer
                              example: 1704905940
                            end_str:
                              type: string
                              example: '2024-01-10T16:59:00.000000Z'
      tags:
        - 'Availability calculation sessions'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                persist_result:
                  type: boolean
                  description: 'Whether to persist the availability calculation session result. If false or not provided, the result will not be stored in the database. (default false).'
                  example: true
                  nullable: true
                skip_groups_combined_availability:
                  type: boolean
                  description: "Whether to skip merging availability across time constrained entity groups. If false or not provided, apart from each group's availability, the response will include the combined availability of groups (overlaps between groups). (default false)."
                  example: false
                  nullable: true
                date_from:
                  type: integer
                  description: 'The date from to calculate availability for. Unix timestamp (seconds). The value must be a multiple of client time step in seconds.'
                  example: 1704528000
                  nullable: false
                date_until:
                  type: integer
                  description: 'The date until to calculate availability for. Unix timestamp (seconds).'
                  example: 1704639600
                  nullable: false
                time_constrained_entity_groups:
                  type: array
                  description: 'Time constrained entity groups to include in availability queries. A calculation session may contain several time constained entity groups.'
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      time_constrained_entity_ids:
                        type: array
                        description: 'Ids of the the time constrained entities consisting the group. The time constraints and the reservations of these entities will be considered to calculate availability. Must be a valid UUID.'
                        example:
                          - 2fa3c632-a645-369a-b00f-54f65e445c5a
                        items:
                          type: string
                      reservations_only_time_constrained_entity_ids:
                        type: array
                        description: 'Ids of the the time constrained entities whose reservations ONLY will be considered in availability calculations. Time constraints of these entities will NOT be considered. Must be a valid UUID.'
                        example:
                          - 65166650-e2d4-3ff5-9cc8-46e3f74a9c55
                        items:
                          type: string
                    required:
                      - time_constrained_entity_ids
                      - reservations_only_time_constrained_entity_ids
              required:
                - date_from
                - date_until
                - time_constrained_entity_groups
  '/api/availability-calculation-sessions/{id}':
    get:
      summary: Get
      operationId: get
      description: 'Get an availability calculation session by id'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 4a7a1244-4d72-3678-ae66-78a3d72b4d3a
                    date_from: 1704528000
                    date_from_string: '2024-01-06T08:00:00.000000Z'
                    date_until: 1704985200
                    date_until_string: '2024-01-11T15:00:00.000000Z'
                    status: SUCCESS
                    error: null
                    time_constrained_entity_groups:
                      -
                        time_constrained_entity_ids:
                          - 9b0516c6-10a5-4da0-b17d-8898b5adb0b4
                          - 9b05144b-93fd-4e53-8fe0-d690f35f7cef
                          - 9aff2f1a-9c34-40f7-9a35-ae22c309f925
                        availability_calculation_days:
                          -
                            id: c4907188-62e5-47d8-9211-e6262c7e9815
                            availabilities: []
                          -
                            id: ee146a4f-050b-45bb-86e1-c52dc4a3590f
                            availabilities: []
                          -
                            id: 509f3ac1-8c28-47da-ae8a-11d3eaae4486
                            availabilities: []
                          -
                            id: b73ae99a-bc55-4bf9-bd9d-bd26dc501d93
                            availabilities: []
                          -
                            id: 6e9910de-f27a-4aa0-85f4-d88160a6d5fd
                            availabilities:
                              -
                                start: 1704877200
                                start_str: '2024-01-10T09:00:00.000000Z'
                                end: 1704905940
                                end_str: '2024-01-10T16:59:00.000000Z'
                          -
                            id: 2b74bc10-6000-4d8f-8aea-fe8434536446
                            availabilities:
                              -
                                start: 1704956400
                                start_str: '2024-01-11T07:00:00.000000Z'
                                end: 1704985140
                                end_str: '2024-01-11T14:59:00.000000Z'
                        availabilities:
                          -
                            start: 1704877200
                            start_str: '2024-01-10T09:00:00.000000Z'
                            end: 1704905940
                            end_str: '2024-01-10T16:59:00.000000Z'
                          -
                            start: 1704956400
                            start_str: '2024-01-11T07:00:00.000000Z'
                            end: 1704985140
                            end_str: '2024-01-11T14:59:00.000000Z'
                    availabilities:
                      -
                        start: 1704877200
                        start_str: '2024-01-10T09:00:00.000000Z'
                        end: 1704905940
                        end_str: '2024-01-10T16:59:00.000000Z'
                      -
                        start: 1704956400
                        start_str: '2024-01-11T07:00:00.000000Z'
                        end: 1704985140
                        end_str: '2024-01-11T14:59:00.000000Z'
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        example: 4a7a1244-4d72-3678-ae66-78a3d72b4d3a
                      date_from:
                        type: integer
                        example: 1704528000
                      date_from_string:
                        type: string
                        example: '2024-01-06T08:00:00.000000Z'
                      date_until:
                        type: integer
                        example: 1704985200
                      date_until_string:
                        type: string
                        example: '2024-01-11T15:00:00.000000Z'
                      status:
                        type: string
                        example: SUCCESS
                      error:
                        type: string
                        example: null
                      time_constrained_entity_groups:
                        type: array
                        example:
                          -
                            time_constrained_entity_ids:
                              - 9b0516c6-10a5-4da0-b17d-8898b5adb0b4
                              - 9b05144b-93fd-4e53-8fe0-d690f35f7cef
                              - 9aff2f1a-9c34-40f7-9a35-ae22c309f925
                            availability_calculation_days:
                              -
                                id: c4907188-62e5-47d8-9211-e6262c7e9815
                                availabilities: []
                              -
                                id: ee146a4f-050b-45bb-86e1-c52dc4a3590f
                                availabilities: []
                              -
                                id: 509f3ac1-8c28-47da-ae8a-11d3eaae4486
                                availabilities: []
                              -
                                id: b73ae99a-bc55-4bf9-bd9d-bd26dc501d93
                                availabilities: []
                              -
                                id: 6e9910de-f27a-4aa0-85f4-d88160a6d5fd
                                availabilities:
                                  -
                                    start: 1704877200
                                    start_str: '2024-01-10T09:00:00.000000Z'
                                    end: 1704905940
                                    end_str: '2024-01-10T16:59:00.000000Z'
                              -
                                id: 2b74bc10-6000-4d8f-8aea-fe8434536446
                                availabilities:
                                  -
                                    start: 1704956400
                                    start_str: '2024-01-11T07:00:00.000000Z'
                                    end: 1704985140
                                    end_str: '2024-01-11T14:59:00.000000Z'
                            availabilities:
                              -
                                start: 1704877200
                                start_str: '2024-01-10T09:00:00.000000Z'
                                end: 1704905940
                                end_str: '2024-01-10T16:59:00.000000Z'
                              -
                                start: 1704956400
                                start_str: '2024-01-11T07:00:00.000000Z'
                                end: 1704985140
                                end_str: '2024-01-11T14:59:00.000000Z'
                        items:
                          type: object
                          properties:
                            time_constrained_entity_ids:
                              type: array
                              example:
                                - 9b0516c6-10a5-4da0-b17d-8898b5adb0b4
                                - 9b05144b-93fd-4e53-8fe0-d690f35f7cef
                                - 9aff2f1a-9c34-40f7-9a35-ae22c309f925
                              items:
                                type: string
                            availability_calculation_days:
                              type: array
                              example:
                                -
                                  id: c4907188-62e5-47d8-9211-e6262c7e9815
                                  availabilities: []
                                -
                                  id: ee146a4f-050b-45bb-86e1-c52dc4a3590f
                                  availabilities: []
                                -
                                  id: 509f3ac1-8c28-47da-ae8a-11d3eaae4486
                                  availabilities: []
                                -
                                  id: b73ae99a-bc55-4bf9-bd9d-bd26dc501d93
                                  availabilities: []
                                -
                                  id: 6e9910de-f27a-4aa0-85f4-d88160a6d5fd
                                  availabilities:
                                    -
                                      start: 1704877200
                                      start_str: '2024-01-10T09:00:00.000000Z'
                                      end: 1704905940
                                      end_str: '2024-01-10T16:59:00.000000Z'
                                -
                                  id: 2b74bc10-6000-4d8f-8aea-fe8434536446
                                  availabilities:
                                    -
                                      start: 1704956400
                                      start_str: '2024-01-11T07:00:00.000000Z'
                                      end: 1704985140
                                      end_str: '2024-01-11T14:59:00.000000Z'
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    example: c4907188-62e5-47d8-9211-e6262c7e9815
                                  availabilities:
                                    type: array
                                    example: []
                            availabilities:
                              type: array
                              example:
                                -
                                  start: 1704877200
                                  start_str: '2024-01-10T09:00:00.000000Z'
                                  end: 1704905940
                                  end_str: '2024-01-10T16:59:00.000000Z'
                                -
                                  start: 1704956400
                                  start_str: '2024-01-11T07:00:00.000000Z'
                                  end: 1704985140
                                  end_str: '2024-01-11T14:59:00.000000Z'
                              items:
                                type: object
                                properties:
                                  start:
                                    type: integer
                                    example: 1704877200
                                  start_str:
                                    type: string
                                    example: '2024-01-10T09:00:00.000000Z'
                                  end:
                                    type: integer
                                    example: 1704905940
                                  end_str:
                                    type: string
                                    example: '2024-01-10T16:59:00.000000Z'
                      availabilities:
                        type: array
                        example:
                          -
                            start: 1704877200
                            start_str: '2024-01-10T09:00:00.000000Z'
                            end: 1704905940
                            end_str: '2024-01-10T16:59:00.000000Z'
                          -
                            start: 1704956400
                            start_str: '2024-01-11T07:00:00.000000Z'
                            end: 1704985140
                            end_str: '2024-01-11T14:59:00.000000Z'
                        items:
                          type: object
                          properties:
                            start:
                              type: integer
                              example: 1704877200
                            start_str:
                              type: string
                              example: '2024-01-10T09:00:00.000000Z'
                            end:
                              type: integer
                              example: 1704905940
                            end_str:
                              type: string
                              example: '2024-01-10T16:59:00.000000Z'
      tags:
        - 'Availability calculation sessions'
    delete:
      summary: Delete
      operationId: delete
      description: 'Delete an availability calculation session by id'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: cf73cec7-d7e2-3691-b670-6afbcbbbc4ec
                    date_from: 1704528000
                    date_from_string: '2024-01-06T08:00:00.000000Z'
                    date_until: 1704985200
                    date_until_string: '2024-01-11T15:00:00.000000Z'
                    status: SUCCESS
                    error: null
                    time_constrained_entity_groups:
                      -
                        time_constrained_entity_ids:
                          - 9b0516c6-10a5-4da0-b17d-8898b5adb0b4
                          - 9b05144b-93fd-4e53-8fe0-d690f35f7cef
                          - 9aff2f1a-9c34-40f7-9a35-ae22c309f925
                        availability_calculation_days:
                          -
                            id: c4907188-62e5-47d8-9211-e6262c7e9815
                            availabilities: []
                          -
                            id: ee146a4f-050b-45bb-86e1-c52dc4a3590f
                            availabilities: []
                          -
                            id: 509f3ac1-8c28-47da-ae8a-11d3eaae4486
                            availabilities: []
                          -
                            id: b73ae99a-bc55-4bf9-bd9d-bd26dc501d93
                            availabilities: []
                          -
                            id: 6e9910de-f27a-4aa0-85f4-d88160a6d5fd
                            availabilities:
                              -
                                start: 1704877200
                                start_str: '2024-01-10T09:00:00.000000Z'
                                end: 1704905940
                                end_str: '2024-01-10T16:59:00.000000Z'
                          -
                            id: 2b74bc10-6000-4d8f-8aea-fe8434536446
                            availabilities:
                              -
                                start: 1704956400
                                start_str: '2024-01-11T07:00:00.000000Z'
                                end: 1704985140
                                end_str: '2024-01-11T14:59:00.000000Z'
                        availabilities:
                          -
                            start: 1704877200
                            start_str: '2024-01-10T09:00:00.000000Z'
                            end: 1704905940
                            end_str: '2024-01-10T16:59:00.000000Z'
                          -
                            start: 1704956400
                            start_str: '2024-01-11T07:00:00.000000Z'
                            end: 1704985140
                            end_str: '2024-01-11T14:59:00.000000Z'
                    availabilities:
                      -
                        start: 1704877200
                        start_str: '2024-01-10T09:00:00.000000Z'
                        end: 1704905940
                        end_str: '2024-01-10T16:59:00.000000Z'
                      -
                        start: 1704956400
                        start_str: '2024-01-11T07:00:00.000000Z'
                        end: 1704985140
                        end_str: '2024-01-11T14:59:00.000000Z'
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        example: cf73cec7-d7e2-3691-b670-6afbcbbbc4ec
                      date_from:
                        type: integer
                        example: 1704528000
                      date_from_string:
                        type: string
                        example: '2024-01-06T08:00:00.000000Z'
                      date_until:
                        type: integer
                        example: 1704985200
                      date_until_string:
                        type: string
                        example: '2024-01-11T15:00:00.000000Z'
                      status:
                        type: string
                        example: SUCCESS
                      error:
                        type: string
                        example: null
                      time_constrained_entity_groups:
                        type: array
                        example:
                          -
                            time_constrained_entity_ids:
                              - 9b0516c6-10a5-4da0-b17d-8898b5adb0b4
                              - 9b05144b-93fd-4e53-8fe0-d690f35f7cef
                              - 9aff2f1a-9c34-40f7-9a35-ae22c309f925
                            availability_calculation_days:
                              -
                                id: c4907188-62e5-47d8-9211-e6262c7e9815
                                availabilities: []
                              -
                                id: ee146a4f-050b-45bb-86e1-c52dc4a3590f
                                availabilities: []
                              -
                                id: 509f3ac1-8c28-47da-ae8a-11d3eaae4486
                                availabilities: []
                              -
                                id: b73ae99a-bc55-4bf9-bd9d-bd26dc501d93
                                availabilities: []
                              -
                                id: 6e9910de-f27a-4aa0-85f4-d88160a6d5fd
                                availabilities:
                                  -
                                    start: 1704877200
                                    start_str: '2024-01-10T09:00:00.000000Z'
                                    end: 1704905940
                                    end_str: '2024-01-10T16:59:00.000000Z'
                              -
                                id: 2b74bc10-6000-4d8f-8aea-fe8434536446
                                availabilities:
                                  -
                                    start: 1704956400
                                    start_str: '2024-01-11T07:00:00.000000Z'
                                    end: 1704985140
                                    end_str: '2024-01-11T14:59:00.000000Z'
                            availabilities:
                              -
                                start: 1704877200
                                start_str: '2024-01-10T09:00:00.000000Z'
                                end: 1704905940
                                end_str: '2024-01-10T16:59:00.000000Z'
                              -
                                start: 1704956400
                                start_str: '2024-01-11T07:00:00.000000Z'
                                end: 1704985140
                                end_str: '2024-01-11T14:59:00.000000Z'
                        items:
                          type: object
                          properties:
                            time_constrained_entity_ids:
                              type: array
                              example:
                                - 9b0516c6-10a5-4da0-b17d-8898b5adb0b4
                                - 9b05144b-93fd-4e53-8fe0-d690f35f7cef
                                - 9aff2f1a-9c34-40f7-9a35-ae22c309f925
                              items:
                                type: string
                            availability_calculation_days:
                              type: array
                              example:
                                -
                                  id: c4907188-62e5-47d8-9211-e6262c7e9815
                                  availabilities: []
                                -
                                  id: ee146a4f-050b-45bb-86e1-c52dc4a3590f
                                  availabilities: []
                                -
                                  id: 509f3ac1-8c28-47da-ae8a-11d3eaae4486
                                  availabilities: []
                                -
                                  id: b73ae99a-bc55-4bf9-bd9d-bd26dc501d93
                                  availabilities: []
                                -
                                  id: 6e9910de-f27a-4aa0-85f4-d88160a6d5fd
                                  availabilities:
                                    -
                                      start: 1704877200
                                      start_str: '2024-01-10T09:00:00.000000Z'
                                      end: 1704905940
                                      end_str: '2024-01-10T16:59:00.000000Z'
                                -
                                  id: 2b74bc10-6000-4d8f-8aea-fe8434536446
                                  availabilities:
                                    -
                                      start: 1704956400
                                      start_str: '2024-01-11T07:00:00.000000Z'
                                      end: 1704985140
                                      end_str: '2024-01-11T14:59:00.000000Z'
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    example: c4907188-62e5-47d8-9211-e6262c7e9815
                                  availabilities:
                                    type: array
                                    example: []
                            availabilities:
                              type: array
                              example:
                                -
                                  start: 1704877200
                                  start_str: '2024-01-10T09:00:00.000000Z'
                                  end: 1704905940
                                  end_str: '2024-01-10T16:59:00.000000Z'
                                -
                                  start: 1704956400
                                  start_str: '2024-01-11T07:00:00.000000Z'
                                  end: 1704985140
                                  end_str: '2024-01-11T14:59:00.000000Z'
                              items:
                                type: object
                                properties:
                                  start:
                                    type: integer
                                    example: 1704877200
                                  start_str:
                                    type: string
                                    example: '2024-01-10T09:00:00.000000Z'
                                  end:
                                    type: integer
                                    example: 1704905940
                                  end_str:
                                    type: string
                                    example: '2024-01-10T16:59:00.000000Z'
                      availabilities:
                        type: array
                        example:
                          -
                            start: 1704877200
                            start_str: '2024-01-10T09:00:00.000000Z'
                            end: 1704905940
                            end_str: '2024-01-10T16:59:00.000000Z'
                          -
                            start: 1704956400
                            start_str: '2024-01-11T07:00:00.000000Z'
                            end: 1704985140
                            end_str: '2024-01-11T14:59:00.000000Z'
                        items:
                          type: object
                          properties:
                            start:
                              type: integer
                              example: 1704877200
                            start_str:
                              type: string
                              example: '2024-01-10T09:00:00.000000Z'
                            end:
                              type: integer
                              example: 1704905940
                            end_str:
                              type: string
                              example: '2024-01-10T16:59:00.000000Z'
      tags:
        - 'Availability calculation sessions'
    parameters:
      -
        in: path
        name: id
        description: 'The id of the availability calculation session.'
        example: 0ce149e5-caed-4143-a3ea-4359799d53ea
        required: true
        schema:
          type: uuid
  /api/reservations:
    get:
      summary: Index
      operationId: index
      description: 'Get-search reservations.'
      parameters:
        -
          in: query
          name: time_constrained_entity_id
          description: 'Id of the time constrained entity to get reservations for. Must be a valid UUID.'
          example: 1be149e5-caed-4143-a3ea-4359799d53ea
          required: false
          schema:
            type: string
            description: 'Id of the time constrained entity to get reservations for. Must be a valid UUID.'
            example: 1be149e5-caed-4143-a3ea-4359799d53ea
            nullable: true
        -
          in: query
          name: query
          description: 'Any text-query to match definition. Must not be greater than 250 characters.'
          example: 'Mrs Adams'
          required: false
          schema:
            type: string
            description: 'Any text-query to match definition. Must not be greater than 250 characters.'
            example: 'Mrs Adams'
            nullable: true
        -
          in: query
          name: starts_after
          description: 'Unix timestamp (in seconds) UTC to filter reservations starting after the specified date.'
          example: 1706180400
          required: false
          schema:
            type: integer
            description: 'Unix timestamp (in seconds) UTC to filter reservations starting after the specified date.'
            example: 1706180400
            nullable: true
        -
          in: query
          name: ends_before
          description: 'Unix timestamp (in seconds) UTC to filter reservations ending before the specified date.'
          example: 1706180400
          required: false
          schema:
            type: integer
            description: 'Unix timestamp (in seconds) UTC to filter reservations ending before the specified date.'
            example: 1706180400
            nullable: true
        -
          in: query
          name: page_number
          description: 'Page number for pagination. First page is 1. Default: 1. Must be at least 1.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'Page number for pagination. First page is 1. Default: 1. Must be at least 1.'
            example: 1
            nullable: false
        -
          in: query
          name: page_size
          description: 'Page size for pagination. Default: 10. Must be at least 1. Must not be greater than 50.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'Page size for pagination. Default: 10. Must be at least 1. Must not be greater than 50.'
            example: 10
            nullable: false
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 741caedb-b9b3-3824-9777-1567add72ebe
                      friendly_name: 'Appointment with Mrs Adams'
                      definition:
                        business_logic_key: business_logic_value
                      multiple_reservation_definition_id: null
                      time_constrained_entity_ids:
                        - 2ddc6f22-3c2d-3084-bf6b-bb0ed803f059
                        - e217f046-1c37-3ecf-af3c-bc0154476181
                      date_from: 1671926400
                      date_until: 1990742400
                      date_from_string: '2022-12-25T00:00:00.000000Z'
                      date_until_string: '2033-01-31T00:00:00.000000Z'
                      created_at: null
                      updated_at: null
                      slots_duration: 15
                    -
                      id: 58d00f27-7e38-30e2-a45b-79c7372a9d86
                      friendly_name: 'Appointment with Mrs Adams'
                      definition:
                        business_logic_key: business_logic_value
                      multiple_reservation_definition_id: null
                      time_constrained_entity_ids:
                        - e75c2286-5323-3387-ae00-02e06c56d51e
                        - 0e4e7199-d7a3-352c-a590-00e523b60356
                      date_from: 1671926400
                      date_until: 1990742400
                      date_from_string: '2022-12-25T00:00:00.000000Z'
                      date_until_string: '2033-01-31T00:00:00.000000Z'
                      created_at: null
                      updated_at: null
                      slots_duration: 15
                  meta:
                    total: 43
                    page_number: 2
                    page_size: 10
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 741caedb-b9b3-3824-9777-1567add72ebe
                        friendly_name: 'Appointment with Mrs Adams'
                        definition:
                          business_logic_key: business_logic_value
                        multiple_reservation_definition_id: null
                        time_constrained_entity_ids:
                          - 2ddc6f22-3c2d-3084-bf6b-bb0ed803f059
                          - e217f046-1c37-3ecf-af3c-bc0154476181
                        date_from: 1671926400
                        date_until: 1990742400
                        date_from_string: '2022-12-25T00:00:00.000000Z'
                        date_until_string: '2033-01-31T00:00:00.000000Z'
                        created_at: null
                        updated_at: null
                        slots_duration: 15
                      -
                        id: 58d00f27-7e38-30e2-a45b-79c7372a9d86
                        friendly_name: 'Appointment with Mrs Adams'
                        definition:
                          business_logic_key: business_logic_value
                        multiple_reservation_definition_id: null
                        time_constrained_entity_ids:
                          - e75c2286-5323-3387-ae00-02e06c56d51e
                          - 0e4e7199-d7a3-352c-a590-00e523b60356
                        date_from: 1671926400
                        date_until: 1990742400
                        date_from_string: '2022-12-25T00:00:00.000000Z'
                        date_until_string: '2033-01-31T00:00:00.000000Z'
                        created_at: null
                        updated_at: null
                        slots_duration: 15
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          example: 741caedb-b9b3-3824-9777-1567add72ebe
                        friendly_name:
                          type: string
                          example: 'Appointment with Mrs Adams'
                        definition:
                          type: object
                          properties:
                            business_logic_key:
                              type: string
                              example: business_logic_value
                        multiple_reservation_definition_id:
                          type: string
                          example: null
                        time_constrained_entity_ids:
                          type: array
                          example:
                            - 2ddc6f22-3c2d-3084-bf6b-bb0ed803f059
                            - e217f046-1c37-3ecf-af3c-bc0154476181
                          items:
                            type: string
                        date_from:
                          type: integer
                          example: 1671926400
                        date_until:
                          type: integer
                          example: 1990742400
                        date_from_string:
                          type: string
                          example: '2022-12-25T00:00:00.000000Z'
                        date_until_string:
                          type: string
                          example: '2033-01-31T00:00:00.000000Z'
                        created_at:
                          type: string
                          example: null
                        updated_at:
                          type: string
                          example: null
                        slots_duration:
                          type: integer
                          example: 15
                  meta:
                    type: object
                    properties:
                      total:
                        type: integer
                        example: 43
                      page_number:
                        type: integer
                        example: 2
                      page_size:
                        type: integer
                        example: 10
      tags:
        - Reservations
    post:
      summary: Create
      operationId: create
      description: 'Store a reservation (recurrent or not recurrent)'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 8dae7931-1028-33ab-a25c-91e5437be01b
                    friendly_name: 'Appointment with Mrs Adams'
                    definition:
                      business_logic_key: business_logic_value
                    multiple_reservation_definition_id: null
                    time_constrained_entity_ids:
                      - 3cab99c3-638c-3537-a51c-b8a3d84fb781
                      - e087fdba-c99f-3d68-9875-72ef77fb2b97
                    date_from: 1671926400
                    date_until: 1990742400
                    date_from_string: '2022-12-25T00:00:00.000000Z'
                    date_until_string: '2033-01-31T00:00:00.000000Z'
                    created_at: null
                    updated_at: null
                    slots_duration: 15
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        example: 8dae7931-1028-33ab-a25c-91e5437be01b
                      friendly_name:
                        type: string
                        example: 'Appointment with Mrs Adams'
                      definition:
                        type: object
                        properties:
                          business_logic_key:
                            type: string
                            example: business_logic_value
                      multiple_reservation_definition_id:
                        type: string
                        example: null
                      time_constrained_entity_ids:
                        type: array
                        example:
                          - 3cab99c3-638c-3537-a51c-b8a3d84fb781
                          - e087fdba-c99f-3d68-9875-72ef77fb2b97
                        items:
                          type: string
                      date_from:
                        type: integer
                        example: 1671926400
                      date_until:
                        type: integer
                        example: 1990742400
                      date_from_string:
                        type: string
                        example: '2022-12-25T00:00:00.000000Z'
                      date_until_string:
                        type: string
                        example: '2033-01-31T00:00:00.000000Z'
                      created_at:
                        type: string
                        example: null
                      updated_at:
                        type: string
                        example: null
                      slots_duration:
                        type: integer
                        example: 15
      tags:
        - Reservations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                friendly_name:
                  type: string
                  description: 'A friendly name for the reservation. Must not be greater than 250 characters.'
                  example: 'Monday appointmentment with Mr. Evans'
                  nullable: false
                definition:
                  type: object
                  description: 'Any JSON for reservation business logic data.'
                  example: null
                  nullable: true
                  properties: {  }
                availability_time_constrained_entity_groups:
                  type: array
                  description: 'Time constrained entity groups to include in availability queries. A calculation session may contain several time constained entity groups.'
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      time_constrained_entity_ids:
                        type: array
                        description: 'Ids of the the time constrained entities consisting the group. Must be a valid UUID.'
                        example:
                          - b583fcbe-99d5-3cc8-ae6f-d3393debb491
                        items:
                          type: string
                    required:
                      - time_constrained_entity_ids
                reservation_time_constrained_entity_ids:
                  type: array
                  description: 'Ids of the time constrain entities this reservation refers to. Must be a valid UUID.'
                  example:
                    - 9185e7ec-4c4a-3f4a-98d1-9326ec40b180
                  items:
                    type: string
                minute_of_day_from:
                  type: integer
                  description: 'The minute of day the reservation starts. First minute of day is 0. For example 420 means the time constraint starts at 07:00 (the first second of 420th minute). The value must be a multiple of client time step in minutes. Must be at least 0. Must not be greater than 1439.'
                  example: 420
                  nullable: false
                minute_of_day_until:
                  type: integer
                  description: 'The minute of day the specific reservation ends. Last minute of day is 1439. For example 479 means the time constraint ends at 08:00 (the last second of 479th minute). The value plus 1, must be a multiple of client time step in minutes. Must be at least 0. Must not be greater than 1439.'
                  example: 479
                  nullable: false
                date_from:
                  type: integer
                  description: 'Unix timestamp (in seconds) UTC of the begining of the day the time constraint starts. For example start of day Tuesday, 09th of January 2024 is 1704758400.'
                  example: 1704758400
                  nullable: false
                date_until:
                  type: integer
                  description: 'Unix timestamp (in seconds) UTC of the begining of the day the time constraint ends. For example start of day Tuesday, 09th of January 2024 is 1704758400. Ignored when recurrence type is 0 (no recurrence). Required in any other case. This field is required unless <code>recurrence_type</code> is in <code>0</code>.'
                  example: 1704758400
                  nullable: true
                recurrence_type:
                  type: integer
                  description: 'No recurrence: 0, Daily: 1, Weekly: 2, Monthly: 3. Must be at least 0. Must not be greater than 3.'
                  example: 2
                  nullable: false
                recurrence_interval:
                  type: integer
                  description: 'Interval of the recurrence. Ignored when recurrence_type is 0 (No recurrence). For example Daily recurrence with interval 2, means every other day. For example Weekly recurrence with interval 1, means every week. For example Monthly recurrence with interval 12, means every year. Meaningless to have interval 0 for recurrence Daily, Weekly or Monthly. This field is required unless <code>recurrence_type</code> is in <code>0</code>. Must be at least 0.'
                  example: 2
                  nullable: false
                recurrence_days_of_month:
                  type: array
                  description: 'First day of month is 1. These values are meaningful only for Monthly recurrence type, ignored when recurrence_type is 0 (No recurrence), 1 (Daily) or 2 (Weekly). Must be at least 1. Must not be greater than 31.'
                  example:
                    - 7
                  items:
                    type: integer
                recurrence_ordinal:
                  type: array
                  description: 'Week days ordinal: first, second, third, fourth, last. These values are meaningful only for Monthly recurrence type, ignored when recurrence_type is 0 (No recurrence), 1 (Daily) or 2 (Weekly).'
                  example:
                    - second
                  items:
                    type: string
                    enum:
                      - first
                      - second
                      - third
                      - fourth
                      - last
                recurrence_week_days:
                  type: array
                  description: 'Week days: monday, tuesday, etc. These values are meaningful only for: a) Monthly recurrence type with some Ordinal or b) Weekly recurrence type. Ignored when recurrence_type is 0 (No recurrence), 1 (Daily).'
                  example:
                    - tuesday
                  items:
                    type: string
                    enum:
                      - monday
                      - tuesday
                      - wednesday
                      - thursday
                      - friday
                      - saturday
                      - sunday
              required:
                - friendly_name
                - availability_time_constrained_entity_groups
                - reservation_time_constrained_entity_ids
                - minute_of_day_from
                - minute_of_day_until
                - date_from
                - recurrence_type
  '/api/reservations/{id}':
    get:
      summary: Get
      operationId: get
      description: 'Get reservation by id'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: b7094a09-9152-3562-ba12-0f545096c1af
                    friendly_name: 'Appointment with Mrs Adams'
                    definition:
                      business_logic_key: business_logic_value
                    multiple_reservation_definition_id: null
                    time_constrained_entity_ids:
                      - f3ef24db-b59e-3600-b36a-8cbe6f6111c8
                      - 2c409dfd-b63a-3009-aabd-e32ac4f7492c
                    date_from: 1671926400
                    date_until: 1990742400
                    date_from_string: '2022-12-25T00:00:00.000000Z'
                    date_until_string: '2033-01-31T00:00:00.000000Z'
                    created_at: null
                    updated_at: null
                    slots_duration: 15
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        example: b7094a09-9152-3562-ba12-0f545096c1af
                      friendly_name:
                        type: string
                        example: 'Appointment with Mrs Adams'
                      definition:
                        type: object
                        properties:
                          business_logic_key:
                            type: string
                            example: business_logic_value
                      multiple_reservation_definition_id:
                        type: string
                        example: null
                      time_constrained_entity_ids:
                        type: array
                        example:
                          - f3ef24db-b59e-3600-b36a-8cbe6f6111c8
                          - 2c409dfd-b63a-3009-aabd-e32ac4f7492c
                        items:
                          type: string
                      date_from:
                        type: integer
                        example: 1671926400
                      date_until:
                        type: integer
                        example: 1990742400
                      date_from_string:
                        type: string
                        example: '2022-12-25T00:00:00.000000Z'
                      date_until_string:
                        type: string
                        example: '2033-01-31T00:00:00.000000Z'
                      created_at:
                        type: string
                        example: null
                      updated_at:
                        type: string
                        example: null
                      slots_duration:
                        type: integer
                        example: 15
      tags:
        - Reservations
    delete:
      summary: Delete
      operationId: delete
      description: 'Delete reservation by id'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 8c1583b1-c7ac-3be2-8535-f2ed0a56bca6
                    friendly_name: 'Appointment with Mrs Adams'
                    definition:
                      business_logic_key: business_logic_value
                    multiple_reservation_definition_id: null
                    time_constrained_entity_ids:
                      - 90d94303-1c51-3ded-98f0-e060a3e2a0a1
                      - c7bf5055-c930-3a02-95e9-c54c38ff3eb0
                    date_from: 1671926400
                    date_until: 1990742400
                    date_from_string: '2022-12-25T00:00:00.000000Z'
                    date_until_string: '2033-01-31T00:00:00.000000Z'
                    created_at: null
                    updated_at: null
                    slots_duration: 15
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        example: 8c1583b1-c7ac-3be2-8535-f2ed0a56bca6
                      friendly_name:
                        type: string
                        example: 'Appointment with Mrs Adams'
                      definition:
                        type: object
                        properties:
                          business_logic_key:
                            type: string
                            example: business_logic_value
                      multiple_reservation_definition_id:
                        type: string
                        example: null
                      time_constrained_entity_ids:
                        type: array
                        example:
                          - 90d94303-1c51-3ded-98f0-e060a3e2a0a1
                          - c7bf5055-c930-3a02-95e9-c54c38ff3eb0
                        items:
                          type: string
                      date_from:
                        type: integer
                        example: 1671926400
                      date_until:
                        type: integer
                        example: 1990742400
                      date_from_string:
                        type: string
                        example: '2022-12-25T00:00:00.000000Z'
                      date_until_string:
                        type: string
                        example: '2033-01-31T00:00:00.000000Z'
                      created_at:
                        type: string
                        example: null
                      updated_at:
                        type: string
                        example: null
                      slots_duration:
                        type: integer
                        example: 15
      tags:
        - Reservations
    parameters:
      -
        in: path
        name: id
        description: 'The id of the reservation.'
        example: 0ce149e5-caed-4143-a3ea-4359799d53ea
        required: true
        schema:
          type: uuid
  /api/reservations/batch:
    post:
      summary: 'Batch Create'
      operationId: batchCreate
      description: "Batch store reservations.\nReturns the successfully created reservations (may be empty if silence_no_availability_exceptions is true)."
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 3ea44e00-0a8f-3b14-9340-facc87c6693a
                      friendly_name: 'Appointment with Mrs Adams'
                      definition:
                        business_logic_key: business_logic_value
                      multiple_reservation_definition_id: null
                      time_constrained_entity_ids:
                        - 6e4a40ff-9f86-3222-aac4-5c12357030dd
                        - 8f890a93-8f5d-3d55-b507-952b8c6bb905
                      date_from: 1671926400
                      date_until: 1990742400
                      date_from_string: '2022-12-25T00:00:00.000000Z'
                      date_until_string: '2033-01-31T00:00:00.000000Z'
                      created_at: null
                      updated_at: null
                      slots_duration: 15
                    -
                      id: f5fddc20-1eca-3124-bc13-3c2787bd0598
                      friendly_name: 'Appointment with Mrs Adams'
                      definition:
                        business_logic_key: business_logic_value
                      multiple_reservation_definition_id: null
                      time_constrained_entity_ids:
                        - c3f3a258-91db-3c12-8d57-128787dae2e3
                        - 12d6bbac-70a2-3d3c-b623-82b7391bfc80
                      date_from: 1671926400
                      date_until: 1990742400
                      date_from_string: '2022-12-25T00:00:00.000000Z'
                      date_until_string: '2033-01-31T00:00:00.000000Z'
                      created_at: null
                      updated_at: null
                      slots_duration: 15
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 3ea44e00-0a8f-3b14-9340-facc87c6693a
                        friendly_name: 'Appointment with Mrs Adams'
                        definition:
                          business_logic_key: business_logic_value
                        multiple_reservation_definition_id: null
                        time_constrained_entity_ids:
                          - 6e4a40ff-9f86-3222-aac4-5c12357030dd
                          - 8f890a93-8f5d-3d55-b507-952b8c6bb905
                        date_from: 1671926400
                        date_until: 1990742400
                        date_from_string: '2022-12-25T00:00:00.000000Z'
                        date_until_string: '2033-01-31T00:00:00.000000Z'
                        created_at: null
                        updated_at: null
                        slots_duration: 15
                      -
                        id: f5fddc20-1eca-3124-bc13-3c2787bd0598
                        friendly_name: 'Appointment with Mrs Adams'
                        definition:
                          business_logic_key: business_logic_value
                        multiple_reservation_definition_id: null
                        time_constrained_entity_ids:
                          - c3f3a258-91db-3c12-8d57-128787dae2e3
                          - 12d6bbac-70a2-3d3c-b623-82b7391bfc80
                        date_from: 1671926400
                        date_until: 1990742400
                        date_from_string: '2022-12-25T00:00:00.000000Z'
                        date_until_string: '2033-01-31T00:00:00.000000Z'
                        created_at: null
                        updated_at: null
                        slots_duration: 15
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          example: 3ea44e00-0a8f-3b14-9340-facc87c6693a
                        friendly_name:
                          type: string
                          example: 'Appointment with Mrs Adams'
                        definition:
                          type: object
                          properties:
                            business_logic_key:
                              type: string
                              example: business_logic_value
                        multiple_reservation_definition_id:
                          type: string
                          example: null
                        time_constrained_entity_ids:
                          type: array
                          example:
                            - 6e4a40ff-9f86-3222-aac4-5c12357030dd
                            - 8f890a93-8f5d-3d55-b507-952b8c6bb905
                          items:
                            type: string
                        date_from:
                          type: integer
                          example: 1671926400
                        date_until:
                          type: integer
                          example: 1990742400
                        date_from_string:
                          type: string
                          example: '2022-12-25T00:00:00.000000Z'
                        date_until_string:
                          type: string
                          example: '2033-01-31T00:00:00.000000Z'
                        created_at:
                          type: string
                          example: null
                        updated_at:
                          type: string
                          example: null
                        slots_duration:
                          type: integer
                          example: 15
      tags:
        - Reservations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                silence_no_availability_exceptions:
                  type: boolean
                  description: 'Defines if no availability exceptions that may happen in one of the reservation creations should be ignored and just skip the creation of this particular reservation. Defaults to false.'
                  example: false
                  nullable: false
                reservations:
                  type: array
                  description: 'JSON array time constraints.'
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      friendly_name:
                        type: string
                        description: 'A friendly name for the reservation. Must not be greater than 250 characters.'
                        example: 'Monday appointment with Mr. Evans'
                        nullable: false
                      definition:
                        type: object
                        description: 'Any JSON for reservation business logic data.'
                        example: null
                        nullable: true
                        properties: {  }
                      availability_time_constrained_entity_groups:
                        type: array
                        description: 'Time constrained entity groups to include in availability queries. A calculation session may contain several time constained entity groups.'
                        example:
                          - []
                        items:
                          type: object
                          properties:
                            time_constrained_entity_ids:
                              type: array
                              description: 'Ids of the the time constrained entities consisting the group. Must be a valid UUID.'
                              example:
                                - 1bce9538-7557-3fa7-9f92-d65d4a158be4
                              items:
                                type: string
                          required:
                            - time_constrained_entity_ids
                      reservation_time_constrained_entity_ids:
                        type: array
                        description: 'Ids of the time constrain entities this reservation refers to. Must be a valid UUID.'
                        example:
                          - 2a177ece-9c2f-37dc-a4de-75613747dc64
                        items:
                          type: string
                      minute_of_day_from:
                        type: integer
                        description: 'The minute of day the reservation starts. First minute of day is 0. For example 420 means the time constraint starts at 07:00 (the first second of 420th minute). The value must be a multiple of client time step in minutes. Must be at least 0. Must not be greater than 1439.'
                        example: 420
                        nullable: false
                      minute_of_day_until:
                        type: integer
                        description: 'The minute of day the specific reservation ends. Last minute of day is 1439. For example 479 means the time constraint ends at 08:00 (the last second of 479th minute). The value plus 1, must be a multiple of client time step in minutes. Must be at least 0. Must not be greater than 1439.'
                        example: 479
                        nullable: false
                      date_from:
                        type: integer
                        description: 'Unix timestamp (in seconds) UTC of the beginning of the day the time constraint starts. For example start of day Tuesday, 09th of January 2024 is 1704758400.'
                        example: 1704758400
                        nullable: false
                      date_until:
                        type: integer
                        description: 'Unix timestamp (in seconds) UTC of the beginning of the day the time constraint ends. For example start of day Tuesday, 09th of January 2024 is 1704758400. Ignored when recurrence type is 0 (no recurrence). Required in any other case. This field is required unless <code>reservations.*.recurrence_type</code> is in <code>0</code>.'
                        example: 1704758400
                        nullable: true
                      recurrence_type:
                        type: integer
                        description: 'No recurrence: 0, Daily: 1, Weekly: 2, Monthly: 3. Must be at least 0. Must not be greater than 3.'
                        example: 2
                        nullable: false
                      recurrence_interval:
                        type: integer
                        description: 'Interval of the recurrence. Ignored when recurrence_type is 0 (No recurrence). For example Daily recurrence with interval 2, means every other day. For example Weekly recurrence with interval 1, means every week. For example Monthly recurrence with interval 12, means every year. Meaningless to have interval 0 for recurrence Daily, Weekly or Monthly. This field is required unless <code>reservations.*.recurrence_type</code> is in <code>0</code>. Must be at least 0.'
                        example: 2
                        nullable: false
                      recurrence_days_of_month:
                        type: array
                        description: 'First day of month is 1. These values are meaningful only for Monthly recurrence type, ignored when recurrence_type is 0 (No recurrence), 1 (Daily) or 2 (Weekly). Must be at least 1. Must not be greater than 31.'
                        example:
                          - 15
                        items:
                          type: integer
                      recurrence_ordinal:
                        type: array
                        description: 'Week days ordinal: first, second, third, fourth, last. These values are meaningful only for Monthly recurrence type, ignored when recurrence_type is 0 (No recurrence), 1 (Daily) or 2 (Weekly).'
                        example:
                          - fourth
                        items:
                          type: string
                          enum:
                            - first
                            - second
                            - third
                            - fourth
                            - last
                      recurrence_week_days:
                        type: array
                        description: 'Week days: monday, tuesday, etc. These values are meaningful only for: a) Monthly recurrence type with some Ordinal or b) Weekly recurrence type. Ignored when recurrence_type is 0 (No recurrence), 1 (Daily).'
                        example:
                          - thursday
                        items:
                          type: string
                          enum:
                            - monday
                            - tuesday
                            - wednesday
                            - thursday
                            - friday
                            - saturday
                            - sunday
                    required:
                      - friendly_name
                      - availability_time_constrained_entity_groups
                      - reservation_time_constrained_entity_ids
                      - minute_of_day_from
                      - minute_of_day_until
                      - date_from
                      - recurrence_type
              required:
                - reservations
    delete:
      summary: 'Batch Delete'
      operationId: batchDelete
      description: "Batch Delete reservations by id's"
      parameters:
        -
          in: query
          name: ids
          description: "ID's of the reservations to be deleted, should belong to the user's client invoking the request. Comma separated."
          example: '9cf1e85e-80d3-469e-a7e3-caee10ad29fc,9cdbaa83-4cb5-4e9f-ae1c-9dff8fe16f57'
          required: true
          schema:
            type: string
            description: "ID's of the reservations to be deleted, should belong to the user's client invoking the request. Comma separated."
            example: '9cf1e85e-80d3-469e-a7e3-caee10ad29fc,9cdbaa83-4cb5-4e9f-ae1c-9dff8fe16f57'
            nullable: false
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  number_of_reservations_deleted: 2
                properties:
                  number_of_reservations_deleted:
                    type: integer
                    example: 2
                    description: 'The number of the deleted reservations.'
                    enum: []
                required:
                  - number_of_reservations_deleted
      tags:
        - Reservations
  /api/time-constrained-entities:
    get:
      summary: Index
      operationId: index
      description: 'Get-search time constrained entities. Pagination - searching to be supported.'
      parameters:
        -
          in: query
          name: query
          description: 'Any text-query to match in name field. Must not be greater than 250 characters.'
          example: 'Mrs Adams'
          required: false
          schema:
            type: string
            description: 'Any text-query to match in name field. Must not be greater than 250 characters.'
            example: 'Mrs Adams'
            nullable: true
        -
          in: query
          name: page_number
          description: 'Page number for pagination. First page is 1. Default: 1. Must be at least 1.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'Page number for pagination. First page is 1. Default: 1. Must be at least 1.'
            example: 1
            nullable: false
        -
          in: query
          name: page_size
          description: 'Page size for pagination. Default: 10. Must be at least 1. Must not be greater than 50.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'Page size for pagination. Default: 10. Must be at least 1. Must not be greater than 50.'
            example: 10
            nullable: false
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: e792cf99-3f49-3343-941d-507acc663a44
                      name: 'Country banking holidays'
                      time_constraints:
                        -
                          id: bccb1708-a1e1-3a35-a07c-7688fc38d910
                          name: Christmas
                          date_from: 1671926400
                          date_until: 1990742400
                          is_working: false
                          minute_of_day_from: 0
                          minute_of_day_until: 1439
                          order: 1
                          recurrence_type: 3
                          recurrence_interval: 12
                          recurrence_days_of_month:
                            - 25
                            - 26
                          recurrence_ordinal: []
                          recurrence_week_days: []
                        -
                          id: 5dd7d45b-1382-3521-8d73-d32229a2da40
                          name: 'New Years day'
                          date_from: 1671926400
                          date_until: 1990742400
                          is_working: false
                          minute_of_day_from: 0
                          minute_of_day_until: 1439
                          order: 1
                          recurrence_type: 3
                          recurrence_interval: 12
                          recurrence_days_of_month:
                            - 1
                          recurrence_ordinal: []
                          recurrence_week_days: []
                      created_at: 1771912181
                      updated_at: 1771998581
                    -
                      id: 6abf1410-4a0c-36d3-86b2-ffee9681bf73
                      name: 'Country banking holidays'
                      time_constraints:
                        -
                          id: 106463b8-ec8d-3b1a-b454-d57148e3a455
                          name: Christmas
                          date_from: 1671926400
                          date_until: 1990742400
                          is_working: false
                          minute_of_day_from: 0
                          minute_of_day_until: 1439
                          order: 1
                          recurrence_type: 3
                          recurrence_interval: 12
                          recurrence_days_of_month:
                            - 25
                            - 26
                          recurrence_ordinal: []
                          recurrence_week_days: []
                        -
                          id: a1fc50a0-22da-382d-842c-68eed2a44cc5
                          name: 'New Years day'
                          date_from: 1671926400
                          date_until: 1990742400
                          is_working: false
                          minute_of_day_from: 0
                          minute_of_day_until: 1439
                          order: 1
                          recurrence_type: 3
                          recurrence_interval: 12
                          recurrence_days_of_month:
                            - 1
                          recurrence_ordinal: []
                          recurrence_week_days: []
                      created_at: 1771912181
                      updated_at: 1771998581
                  meta:
                    total: 43
                    page_number: 2
                    page_size: 10
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: e792cf99-3f49-3343-941d-507acc663a44
                        name: 'Country banking holidays'
                        time_constraints:
                          -
                            id: bccb1708-a1e1-3a35-a07c-7688fc38d910
                            name: Christmas
                            date_from: 1671926400
                            date_until: 1990742400
                            is_working: false
                            minute_of_day_from: 0
                            minute_of_day_until: 1439
                            order: 1
                            recurrence_type: 3
                            recurrence_interval: 12
                            recurrence_days_of_month:
                              - 25
                              - 26
                            recurrence_ordinal: []
                            recurrence_week_days: []
                          -
                            id: 5dd7d45b-1382-3521-8d73-d32229a2da40
                            name: 'New Years day'
                            date_from: 1671926400
                            date_until: 1990742400
                            is_working: false
                            minute_of_day_from: 0
                            minute_of_day_until: 1439
                            order: 1
                            recurrence_type: 3
                            recurrence_interval: 12
                            recurrence_days_of_month:
                              - 1
                            recurrence_ordinal: []
                            recurrence_week_days: []
                        created_at: 1771912181
                        updated_at: 1771998581
                      -
                        id: 6abf1410-4a0c-36d3-86b2-ffee9681bf73
                        name: 'Country banking holidays'
                        time_constraints:
                          -
                            id: 106463b8-ec8d-3b1a-b454-d57148e3a455
                            name: Christmas
                            date_from: 1671926400
                            date_until: 1990742400
                            is_working: false
                            minute_of_day_from: 0
                            minute_of_day_until: 1439
                            order: 1
                            recurrence_type: 3
                            recurrence_interval: 12
                            recurrence_days_of_month:
                              - 25
                              - 26
                            recurrence_ordinal: []
                            recurrence_week_days: []
                          -
                            id: a1fc50a0-22da-382d-842c-68eed2a44cc5
                            name: 'New Years day'
                            date_from: 1671926400
                            date_until: 1990742400
                            is_working: false
                            minute_of_day_from: 0
                            minute_of_day_until: 1439
                            order: 1
                            recurrence_type: 3
                            recurrence_interval: 12
                            recurrence_days_of_month:
                              - 1
                            recurrence_ordinal: []
                            recurrence_week_days: []
                        created_at: 1771912181
                        updated_at: 1771998581
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          example: e792cf99-3f49-3343-941d-507acc663a44
                        name:
                          type: string
                          example: 'Country banking holidays'
                        time_constraints:
                          type: array
                          example:
                            -
                              id: bccb1708-a1e1-3a35-a07c-7688fc38d910
                              name: Christmas
                              date_from: 1671926400
                              date_until: 1990742400
                              is_working: false
                              minute_of_day_from: 0
                              minute_of_day_until: 1439
                              order: 1
                              recurrence_type: 3
                              recurrence_interval: 12
                              recurrence_days_of_month:
                                - 25
                                - 26
                              recurrence_ordinal: []
                              recurrence_week_days: []
                            -
                              id: 5dd7d45b-1382-3521-8d73-d32229a2da40
                              name: 'New Years day'
                              date_from: 1671926400
                              date_until: 1990742400
                              is_working: false
                              minute_of_day_from: 0
                              minute_of_day_until: 1439
                              order: 1
                              recurrence_type: 3
                              recurrence_interval: 12
                              recurrence_days_of_month:
                                - 1
                              recurrence_ordinal: []
                              recurrence_week_days: []
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                example: bccb1708-a1e1-3a35-a07c-7688fc38d910
                              name:
                                type: string
                                example: Christmas
                              date_from:
                                type: integer
                                example: 1671926400
                              date_until:
                                type: integer
                                example: 1990742400
                              is_working:
                                type: boolean
                                example: false
                              minute_of_day_from:
                                type: integer
                                example: 0
                              minute_of_day_until:
                                type: integer
                                example: 1439
                              order:
                                type: integer
                                example: 1
                              recurrence_type:
                                type: integer
                                example: 3
                              recurrence_interval:
                                type: integer
                                example: 12
                              recurrence_days_of_month:
                                type: array
                                example:
                                  - 25
                                  - 26
                                items:
                                  type: integer
                              recurrence_ordinal:
                                type: array
                                example: []
                              recurrence_week_days:
                                type: array
                                example: []
                        created_at:
                          type: integer
                          example: 1771912181
                        updated_at:
                          type: integer
                          example: 1771998581
                  meta:
                    type: object
                    properties:
                      total:
                        type: integer
                        example: 43
                      page_number:
                        type: integer
                        example: 2
                      page_size:
                        type: integer
                        example: 10
      tags:
        - 'Time constrained entities'
    post:
      summary: Create
      operationId: create
      description: 'Store time constrained entity'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: f692ac8c-4c6d-3c8c-b78b-794e24c48a9c
                    name: 'Country banking holidays'
                    time_constraints:
                      -
                        id: 768fa2dc-4adf-36c5-98f4-6b03e4743c68
                        name: Christmas
                        date_from: 1671926400
                        date_until: 1990742400
                        is_working: false
                        minute_of_day_from: 0
                        minute_of_day_until: 1439
                        order: 1
                        recurrence_type: 3
                        recurrence_interval: 12
                        recurrence_days_of_month:
                          - 25
                          - 26
                        recurrence_ordinal: []
                        recurrence_week_days: []
                      -
                        id: c607ed8b-7f09-387b-b1d0-09b18f155421
                        name: 'New Years day'
                        date_from: 1671926400
                        date_until: 1990742400
                        is_working: false
                        minute_of_day_from: 0
                        minute_of_day_until: 1439
                        order: 1
                        recurrence_type: 3
                        recurrence_interval: 12
                        recurrence_days_of_month:
                          - 1
                        recurrence_ordinal: []
                        recurrence_week_days: []
                    created_at: 1771912181
                    updated_at: 1771998581
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        example: f692ac8c-4c6d-3c8c-b78b-794e24c48a9c
                      name:
                        type: string
                        example: 'Country banking holidays'
                      time_constraints:
                        type: array
                        example:
                          -
                            id: 768fa2dc-4adf-36c5-98f4-6b03e4743c68
                            name: Christmas
                            date_from: 1671926400
                            date_until: 1990742400
                            is_working: false
                            minute_of_day_from: 0
                            minute_of_day_until: 1439
                            order: 1
                            recurrence_type: 3
                            recurrence_interval: 12
                            recurrence_days_of_month:
                              - 25
                              - 26
                            recurrence_ordinal: []
                            recurrence_week_days: []
                          -
                            id: c607ed8b-7f09-387b-b1d0-09b18f155421
                            name: 'New Years day'
                            date_from: 1671926400
                            date_until: 1990742400
                            is_working: false
                            minute_of_day_from: 0
                            minute_of_day_until: 1439
                            order: 1
                            recurrence_type: 3
                            recurrence_interval: 12
                            recurrence_days_of_month:
                              - 1
                            recurrence_ordinal: []
                            recurrence_week_days: []
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              example: 768fa2dc-4adf-36c5-98f4-6b03e4743c68
                            name:
                              type: string
                              example: Christmas
                            date_from:
                              type: integer
                              example: 1671926400
                            date_until:
                              type: integer
                              example: 1990742400
                            is_working:
                              type: boolean
                              example: false
                            minute_of_day_from:
                              type: integer
                              example: 0
                            minute_of_day_until:
                              type: integer
                              example: 1439
                            order:
                              type: integer
                              example: 1
                            recurrence_type:
                              type: integer
                              example: 3
                            recurrence_interval:
                              type: integer
                              example: 12
                            recurrence_days_of_month:
                              type: array
                              example:
                                - 25
                                - 26
                              items:
                                type: integer
                            recurrence_ordinal:
                              type: array
                              example: []
                            recurrence_week_days:
                              type: array
                              example: []
                      created_at:
                        type: integer
                        example: 1771912181
                      updated_at:
                        type: integer
                        example: 1771998581
      tags:
        - 'Time constrained entities'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'A friendly name for the entity. Must not be greater than 250 characters.'
                  example: 'Country banking holidays'
                  nullable: false
                time_constraints:
                  type: array
                  description: 'JSON array time constraints. Empty arrays are allowed.'
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: 'A valid UUID for the specific time constraint. Must be a valid UUID.'
                        example: 1be149e5-caed-4143-a3ea-4359799d53ea
                        nullable: false
                      order:
                        type: integer
                        description: 'The order priority the specific time constraint is considered in availability calculation. The lower the number the higher the priority. Must be at least 1.'
                        example: 1
                        nullable: false
                      name:
                        type: string
                        description: 'The name of the time constraint.'
                        example: 'Days off between Christmas and New Years day or Afternoon shift'
                        nullable: false
                      is_working:
                        type: boolean
                        description: 'A flag indicating if the specific time constraint is considered as working or non-working.'
                        example: true
                        nullable: false
                      minute_of_day_from:
                        type: integer
                        description: 'The minute of day the specific time constraint starts. First minute of day is 0. For example 420 means the time constraint starts at 07:00 (the first second of 420th minute). The value must be a multiple of client time step in minutes. Must be at least 0. Must not be greater than 1439.'
                        example: 420
                        nullable: false
                      minute_of_day_until:
                        type: integer
                        description: 'The minute of day the specific time constraint ends. Last minute of day is 1439. For example 479 means the time constraint ends at 08:00 (the last second of 479th minute). The value plus 1, must be a multiple of client time step in minutes. Must be at least 0. Must not be greater than 1439.'
                        example: 479
                        nullable: false
                      date_from:
                        type: integer
                        description: 'Unix timestamp (in seconds) UTC of the begining of the day the time constraint starts. For example start of day Tuesday, 09th of January 2024 is 1704758400.'
                        example: 1704758400
                        nullable: false
                      date_until:
                        type: integer
                        description: 'Unix timestamp (in seconds) UTC of the begining of the day the time constraint ends. For example start of day Tuesday, 09th of January 2024 is 1704758400. Ignored when recurrence type is 0 (no recurrence). Required in any other case. This field is required unless <code>time_constraints.*.recurrence_type</code> is in <code>0</code>.'
                        example: 1704758400
                        nullable: true
                      recurrence_type:
                        type: integer
                        description: 'No recurrence: 0, Daily: 1, Weekly: 2, Monthly: 3. Must be at least 0. Must not be greater than 3.'
                        example: 2
                        nullable: false
                      recurrence_interval:
                        type: integer
                        description: 'Interval of the recurrence. Ignored when recurrence_type is 0 (No recurrence). For example Daily recurrence with interval 2, means every other day. For example Weekly recurrence with interval 1, means every week. For example Monthly recurrence with interval 12, means every year. Meaningless to have interval 0 for recurrence Daily, Weekly or Monthly. This field is required unless <code>time_constraints.*.recurrence_type</code> is in <code>0</code>. Must be at least 0.'
                        example: 2
                        nullable: false
                      recurrence_days_of_month:
                        type: array
                        description: 'First day of month is 1. These values are meaningful only for Monthly recurrence type, ignored when recurrence_type is 0 (No recurrence), 1 (Daily) or 2 (Weekly). Must be at least 1. Must not be greater than 31.'
                        example:
                          - 3
                        items:
                          type: integer
                      recurrence_ordinal:
                        type: array
                        description: 'Week days ordinal: first, second, third, fourth, last. These values are meaningful only for Monthly recurrence type, ignored when recurrence_type is 0 (No recurrence), 1 (Daily) or 2 (Weekly).'
                        example:
                          - second
                        items:
                          type: string
                          enum:
                            - first
                            - second
                            - third
                            - fourth
                            - last
                      recurrence_week_days:
                        type: array
                        description: 'Week days: monday, tuesday, etc. These values are meaningful only for: a) Monthly recurrence type with some Ordinal or b) Weekly recurrence type. Ignored when recurrence_type is 0 (No recurrence), 1 (Daily).'
                        example:
                          - wednesday
                        items:
                          type: string
                          enum:
                            - monday
                            - tuesday
                            - wednesday
                            - thursday
                            - friday
                            - saturday
                            - sunday
                    required:
                      - id
                      - order
                      - name
                      - is_working
                      - minute_of_day_from
                      - minute_of_day_until
                      - date_from
                      - recurrence_type
              required:
                - name
                - time_constraints
  '/api/time-constrained-entities/{id}':
    get:
      summary: Get
      operationId: get
      description: 'Get a time constrained entity by id'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 77afec96-62b2-30fe-960b-73277ca042cb
                    name: 'Country banking holidays'
                    time_constraints:
                      -
                        id: 4b7b2fe4-13b0-3d4a-9258-893904b49a11
                        name: Christmas
                        date_from: 1671926400
                        date_until: 1990742400
                        is_working: false
                        minute_of_day_from: 0
                        minute_of_day_until: 1439
                        order: 1
                        recurrence_type: 3
                        recurrence_interval: 12
                        recurrence_days_of_month:
                          - 25
                          - 26
                        recurrence_ordinal: []
                        recurrence_week_days: []
                      -
                        id: 3e6dcf68-e0ff-3425-b921-3c939b4d4cde
                        name: 'New Years day'
                        date_from: 1671926400
                        date_until: 1990742400
                        is_working: false
                        minute_of_day_from: 0
                        minute_of_day_until: 1439
                        order: 1
                        recurrence_type: 3
                        recurrence_interval: 12
                        recurrence_days_of_month:
                          - 1
                        recurrence_ordinal: []
                        recurrence_week_days: []
                    created_at: 1771912181
                    updated_at: 1771998581
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        example: 77afec96-62b2-30fe-960b-73277ca042cb
                      name:
                        type: string
                        example: 'Country banking holidays'
                      time_constraints:
                        type: array
                        example:
                          -
                            id: 4b7b2fe4-13b0-3d4a-9258-893904b49a11
                            name: Christmas
                            date_from: 1671926400
                            date_until: 1990742400
                            is_working: false
                            minute_of_day_from: 0
                            minute_of_day_until: 1439
                            order: 1
                            recurrence_type: 3
                            recurrence_interval: 12
                            recurrence_days_of_month:
                              - 25
                              - 26
                            recurrence_ordinal: []
                            recurrence_week_days: []
                          -
                            id: 3e6dcf68-e0ff-3425-b921-3c939b4d4cde
                            name: 'New Years day'
                            date_from: 1671926400
                            date_until: 1990742400
                            is_working: false
                            minute_of_day_from: 0
                            minute_of_day_until: 1439
                            order: 1
                            recurrence_type: 3
                            recurrence_interval: 12
                            recurrence_days_of_month:
                              - 1
                            recurrence_ordinal: []
                            recurrence_week_days: []
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              example: 4b7b2fe4-13b0-3d4a-9258-893904b49a11
                            name:
                              type: string
                              example: Christmas
                            date_from:
                              type: integer
                              example: 1671926400
                            date_until:
                              type: integer
                              example: 1990742400
                            is_working:
                              type: boolean
                              example: false
                            minute_of_day_from:
                              type: integer
                              example: 0
                            minute_of_day_until:
                              type: integer
                              example: 1439
                            order:
                              type: integer
                              example: 1
                            recurrence_type:
                              type: integer
                              example: 3
                            recurrence_interval:
                              type: integer
                              example: 12
                            recurrence_days_of_month:
                              type: array
                              example:
                                - 25
                                - 26
                              items:
                                type: integer
                            recurrence_ordinal:
                              type: array
                              example: []
                            recurrence_week_days:
                              type: array
                              example: []
                      created_at:
                        type: integer
                        example: 1771912181
                      updated_at:
                        type: integer
                        example: 1771998581
      tags:
        - 'Time constrained entities'
    put:
      summary: Update
      operationId: update
      description: 'Update a time constrained entity by id'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: a3440e05-baac-371d-946a-a8018f7e7d02
                    name: 'Country banking holidays'
                    time_constraints:
                      -
                        id: f0fd98e3-8965-3e4e-bb3a-02818767c64c
                        name: Christmas
                        date_from: 1671926400
                        date_until: 1990742400
                        is_working: false
                        minute_of_day_from: 0
                        minute_of_day_until: 1439
                        order: 1
                        recurrence_type: 3
                        recurrence_interval: 12
                        recurrence_days_of_month:
                          - 25
                          - 26
                        recurrence_ordinal: []
                        recurrence_week_days: []
                      -
                        id: e2944089-ff8a-3239-9b10-a11bc38ef406
                        name: 'New Years day'
                        date_from: 1671926400
                        date_until: 1990742400
                        is_working: false
                        minute_of_day_from: 0
                        minute_of_day_until: 1439
                        order: 1
                        recurrence_type: 3
                        recurrence_interval: 12
                        recurrence_days_of_month:
                          - 1
                        recurrence_ordinal: []
                        recurrence_week_days: []
                    created_at: 1771912181
                    updated_at: 1771998581
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        example: a3440e05-baac-371d-946a-a8018f7e7d02
                      name:
                        type: string
                        example: 'Country banking holidays'
                      time_constraints:
                        type: array
                        example:
                          -
                            id: f0fd98e3-8965-3e4e-bb3a-02818767c64c
                            name: Christmas
                            date_from: 1671926400
                            date_until: 1990742400
                            is_working: false
                            minute_of_day_from: 0
                            minute_of_day_until: 1439
                            order: 1
                            recurrence_type: 3
                            recurrence_interval: 12
                            recurrence_days_of_month:
                              - 25
                              - 26
                            recurrence_ordinal: []
                            recurrence_week_days: []
                          -
                            id: e2944089-ff8a-3239-9b10-a11bc38ef406
                            name: 'New Years day'
                            date_from: 1671926400
                            date_until: 1990742400
                            is_working: false
                            minute_of_day_from: 0
                            minute_of_day_until: 1439
                            order: 1
                            recurrence_type: 3
                            recurrence_interval: 12
                            recurrence_days_of_month:
                              - 1
                            recurrence_ordinal: []
                            recurrence_week_days: []
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              example: f0fd98e3-8965-3e4e-bb3a-02818767c64c
                            name:
                              type: string
                              example: Christmas
                            date_from:
                              type: integer
                              example: 1671926400
                            date_until:
                              type: integer
                              example: 1990742400
                            is_working:
                              type: boolean
                              example: false
                            minute_of_day_from:
                              type: integer
                              example: 0
                            minute_of_day_until:
                              type: integer
                              example: 1439
                            order:
                              type: integer
                              example: 1
                            recurrence_type:
                              type: integer
                              example: 3
                            recurrence_interval:
                              type: integer
                              example: 12
                            recurrence_days_of_month:
                              type: array
                              example:
                                - 25
                                - 26
                              items:
                                type: integer
                            recurrence_ordinal:
                              type: array
                              example: []
                            recurrence_week_days:
                              type: array
                              example: []
                      created_at:
                        type: integer
                        example: 1771912181
                      updated_at:
                        type: integer
                        example: 1771998581
      tags:
        - 'Time constrained entities'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'A friendly name for the entity. Must not be greater than 250 characters.'
                  example: 'Country banking holidays'
                  nullable: false
                time_constraints:
                  type: array
                  description: 'JSON array time constraints. Empty arrays are allowed.'
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: 'A valid UUID for the specific time constraint. Must be a valid UUID.'
                        example: 1be149e5-caed-4143-a3ea-4359799d53ea
                        nullable: false
                      order:
                        type: integer
                        description: 'The order priority the specific time constraint is considered in availability calculation. The lower the number the higher the priority. Must be at least 1.'
                        example: 1
                        nullable: false
                      name:
                        type: string
                        description: 'The name of the time constraint.'
                        example: 'Days off between Christmas and New Years day or Afternoon shift'
                        nullable: false
                      is_working:
                        type: boolean
                        description: 'A flag indicating if the specific time constraint is considered as working or non-working.'
                        example: true
                        nullable: false
                      minute_of_day_from:
                        type: integer
                        description: 'The minute of day the specific time constraint starts. First minute of day is 0. For example 420 means the time constraint starts at 07:00 (the first second of 420th minute). The value must be a multiple of client time step in minutes. Must be at least 0. Must not be greater than 1439.'
                        example: 420
                        nullable: false
                      minute_of_day_until:
                        type: integer
                        description: 'The minute of day the specific time constraint ends. Last minute of day is 1439. For example 479 means the time constraint ends at 08:00 (the last second of 479th minute). The value plus 1, must be a multiple of client time step in minutes. Must be at least 0. Must not be greater than 1439.'
                        example: 479
                        nullable: false
                      date_from:
                        type: integer
                        description: 'Unix timestamp (in seconds) UTC of the begining of the day the time constraint starts. For example start of day Tuesday, 09th of January 2024 is 1704758400.'
                        example: 1704758400
                        nullable: false
                      date_until:
                        type: integer
                        description: 'Unix timestamp (in seconds) UTC of the begining of the day the time constraint ends. For example start of day Tuesday, 09th of January 2024 is 1704758400. Ignored when recurrence type is 0 (no recurrence). Required in any other case. This field is required unless <code>time_constraints.*.recurrence_type</code> is in <code>0</code>.'
                        example: 1704758400
                        nullable: true
                      recurrence_type:
                        type: integer
                        description: 'No recurrence: 0, Daily: 1, Weekly: 2, Monthly: 3. Must be at least 0. Must not be greater than 3.'
                        example: 2
                        nullable: false
                      recurrence_interval:
                        type: integer
                        description: 'Interval of the recurrence. Ignored when recurrence_type is 0 (No recurrence). For example Daily recurrence with interval 2, means every other day. For example Weekly recurrence with interval 1, means every week. For example Monthly recurrence with interval 12, means every year. Meaningless to have interval 0 for recurrence Daily, Weekly or Monthly. This field is required unless <code>time_constraints.*.recurrence_type</code> is in <code>0</code>. Must be at least 0.'
                        example: 2
                        nullable: false
                      recurrence_days_of_month:
                        type: array
                        description: 'First day of month is 1. These values are meaningful only for Monthly recurrence type, ignored when recurrence_type is 0 (No recurrence), 1 (Daily) or 2 (Weekly). Must be at least 1. Must not be greater than 31.'
                        example:
                          - 10
                        items:
                          type: integer
                      recurrence_ordinal:
                        type: array
                        description: 'Week days ordinal: first, second, third, fourth, last. These values are meaningful only for Monthly recurrence type, ignored when recurrence_type is 0 (No recurrence), 1 (Daily) or 2 (Weekly).'
                        example:
                          - first
                        items:
                          type: string
                          enum:
                            - first
                            - second
                            - third
                            - fourth
                            - last
                      recurrence_week_days:
                        type: array
                        description: 'Week days: monday, tuesday, etc. These values are meaningful only for: a) Monthly recurrence type with some Ordinal or b) Weekly recurrence type. Ignored when recurrence_type is 0 (No recurrence), 1 (Daily).'
                        example:
                          - wednesday
                        items:
                          type: string
                          enum:
                            - monday
                            - tuesday
                            - wednesday
                            - thursday
                            - friday
                            - saturday
                            - sunday
                    required:
                      - id
                      - order
                      - name
                      - is_working
                      - minute_of_day_from
                      - minute_of_day_until
                      - date_from
                      - recurrence_type
              required:
                - name
                - time_constraints
    delete:
      summary: Delete
      operationId: delete
      description: 'Delete a time constrained entity by id'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 827ede02-38b2-3879-9b13-269957fd6cea
                    name: 'Country banking holidays'
                    time_constraints:
                      -
                        id: a3ab347d-05bc-3e05-b87d-7d274d850d02
                        name: Christmas
                        date_from: 1671926400
                        date_until: 1990742400
                        is_working: false
                        minute_of_day_from: 0
                        minute_of_day_until: 1439
                        order: 1
                        recurrence_type: 3
                        recurrence_interval: 12
                        recurrence_days_of_month:
                          - 25
                          - 26
                        recurrence_ordinal: []
                        recurrence_week_days: []
                      -
                        id: c6e9a171-3032-3cd0-afa2-4429762f4eec
                        name: 'New Years day'
                        date_from: 1671926400
                        date_until: 1990742400
                        is_working: false
                        minute_of_day_from: 0
                        minute_of_day_until: 1439
                        order: 1
                        recurrence_type: 3
                        recurrence_interval: 12
                        recurrence_days_of_month:
                          - 1
                        recurrence_ordinal: []
                        recurrence_week_days: []
                    created_at: 1771912181
                    updated_at: 1771998581
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        example: 827ede02-38b2-3879-9b13-269957fd6cea
                      name:
                        type: string
                        example: 'Country banking holidays'
                      time_constraints:
                        type: array
                        example:
                          -
                            id: a3ab347d-05bc-3e05-b87d-7d274d850d02
                            name: Christmas
                            date_from: 1671926400
                            date_until: 1990742400
                            is_working: false
                            minute_of_day_from: 0
                            minute_of_day_until: 1439
                            order: 1
                            recurrence_type: 3
                            recurrence_interval: 12
                            recurrence_days_of_month:
                              - 25
                              - 26
                            recurrence_ordinal: []
                            recurrence_week_days: []
                          -
                            id: c6e9a171-3032-3cd0-afa2-4429762f4eec
                            name: 'New Years day'
                            date_from: 1671926400
                            date_until: 1990742400
                            is_working: false
                            minute_of_day_from: 0
                            minute_of_day_until: 1439
                            order: 1
                            recurrence_type: 3
                            recurrence_interval: 12
                            recurrence_days_of_month:
                              - 1
                            recurrence_ordinal: []
                            recurrence_week_days: []
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              example: a3ab347d-05bc-3e05-b87d-7d274d850d02
                            name:
                              type: string
                              example: Christmas
                            date_from:
                              type: integer
                              example: 1671926400
                            date_until:
                              type: integer
                              example: 1990742400
                            is_working:
                              type: boolean
                              example: false
                            minute_of_day_from:
                              type: integer
                              example: 0
                            minute_of_day_until:
                              type: integer
                              example: 1439
                            order:
                              type: integer
                              example: 1
                            recurrence_type:
                              type: integer
                              example: 3
                            recurrence_interval:
                              type: integer
                              example: 12
                            recurrence_days_of_month:
                              type: array
                              example:
                                - 25
                                - 26
                              items:
                                type: integer
                            recurrence_ordinal:
                              type: array
                              example: []
                            recurrence_week_days:
                              type: array
                              example: []
                      created_at:
                        type: integer
                        example: 1771912181
                      updated_at:
                        type: integer
                        example: 1771998581
      tags:
        - 'Time constrained entities'
    parameters:
      -
        in: path
        name: id
        description: 'The id of the time constrained entity.'
        example: 0ce149e5-caed-4143-a3ea-4359799d53ea
        required: true
        schema:
          type: uuid
  /api/users/current:
    get:
      summary: Current
      operationId: current
      description: 'Get current logged in user'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: null
                    name: sdm@dataverse.gr
                    email: sdm@dataverse.gr
                    created_at: '2026-02-24T05:49:41.000000Z'
                    updated_at: '2026-02-25T05:49:41.000000Z'
                    client_id: a66275e8-1a13-44c6-bde4-40b16cf805a4
                    client: null
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        example: null
                      name:
                        type: string
                        example: sdm@dataverse.gr
                      email:
                        type: string
                        example: sdm@dataverse.gr
                      created_at:
                        type: string
                        example: '2026-02-24T05:49:41.000000Z'
                      updated_at:
                        type: string
                        example: '2026-02-25T05:49:41.000000Z'
                      client_id:
                        type: string
                        example: a66275e8-1a13-44c6-bde4-40b16cf805a4
                      client:
                        type: string
                        example: null
      tags:
        - Users
tags:
  -
    name: Authentication
    description: "\nAPIs for user authentication"
  -
    name: 'Availability calculation sessions'
    description: "\nAPIs for managing availability calculation sessions.\n\nYou can query for availability for one or more time constrained entity groups.\nA time constrained entity group, is a group of time constrained entities which form a meaningful business logic entity.\nFor example, to get the availability of a person in a location (business logic entity) you may need to include several time constrained entities:\n\na) Person's specific days off.\n\nb) Location specific holidays\n\nc) Banking holidays of the country\n\nd) Common working hours of a country\n\nAll the above time constrained entities (prioritized) combined together form a meaningful time constrained entity group.\n\n\nIn case you want to query availability of multiple business logic entities combined, ie: a PERSON with some EQUIPMENT, then you need form two time constrained entities groups:\n\na) For the person\n\nb) For the equipment"
  -
    name: Reservations
    description: "\nAPIs for managing reservations"
  -
    name: 'Time constrained entities'
    description: "\nAPIs for managing time constrained entities"
  -
    name: Users
    description: "\nAPIs for users"
components:
  securitySchemes:
    default:
      type: http
      scheme: bearer
      description: 'Your token is generated by dataverse and sent to you. Alternatively, you can use Create api token call to generate a token using your test username-password credentials and your domain.'
security:
  -
    default: []
