{
  "openapi": "3.1.0",
  "info": {
    "title": "Quinyx API",
    "version": "v2",
    "x-service": "absence-schedule",
    "description": null
  },
  "tags": [
    {
      "name": "Authentication",
      "x-displayName": "Authentication"
    },
    {
      "name": "Absence Schedules",
      "x-displayName": "Absence Schedules"
    },
    {
      "name": "Absence Types",
      "x-displayName": "Absence Types"
    },
    {
      "name": "Absences",
      "x-displayName": "Absences"
    },
    {
      "name": "Agreements",
      "x-displayName": "Agreements"
    },
    {
      "name": "AI Scheduled Headcount",
      "x-displayName": "AI Scheduled Headcount"
    },
    {
      "name": "Collaboration Groups",
      "x-displayName": "Collaboration Groups"
    },
    {
      "name": "Collaboration Groups Labels",
      "x-displayName": "Collaboration Groups Labels"
    },
    {
      "name": "Employees",
      "x-displayName": "Employees"
    },
    {
      "name": "Forecast Data",
      "x-displayName": "Forecast Data"
    },
    {
      "name": "Forecast Dynamic Rules",
      "x-displayName": "Forecast Dynamic Rules"
    },
    {
      "name": "Forecast Event Categories",
      "x-displayName": "Forecast Event Categories"
    },
    {
      "name": "Forecast Event Effects",
      "x-displayName": "Forecast Event Effects"
    },
    {
      "name": "Forecast Events",
      "x-displayName": "Forecast Events"
    },
    {
      "name": "Forecast Optimal Headcounts",
      "x-displayName": "Forecast Optimal Headcounts"
    },
    {
      "name": "Forecast Static Rules",
      "x-displayName": "Forecast Static Rules"
    },
    {
      "name": "Forecast Target Data",
      "x-displayName": "Forecast Target Data"
    },
    {
      "name": "Group Locations",
      "x-displayName": "Group Locations"
    },
    {
      "name": "Groups",
      "x-displayName": "Groups"
    },
    {
      "name": "Labor Standards",
      "x-displayName": "Labor Standards"
    },
    {
      "name": "Mappings",
      "x-displayName": "Mappings"
    },
    {
      "name": "Opening Hours",
      "x-displayName": "Opening Hours"
    },
    {
      "name": "Pay Schedules",
      "x-displayName": "Pay Schedules"
    },
    {
      "name": "Schedule Availability",
      "x-displayName": "Schedule Availability"
    },
    {
      "name": "Standard Variables",
      "x-displayName": "Standard Variables"
    },
    {
      "name": "Tags",
      "x-displayName": "Tags"
    }
  ],
  "paths": {
    "/v2/absence-schedule/groups/{groupId}": {
      "get": {
        "tags": [
          "Absence Schedules"
        ],
        "summary": "List absence schedules for group",
        "operationId": "getAbsenceSchedules",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Response where you see the absence schedules for group",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/absence-schedule_IntegrationAbsenceSchedule"
                  }
                }
              }
            }
          },
          "400": {
            "description": "In case you send groupId which is not domain groupId.\nOr if groupId is invalid.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/absence-schedule_ValidationError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "integration.absence:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/absence-types/groups/{groupId}/employees/{employeeId}": {
      "get": {
        "tags": [
          "Absence Types"
        ],
        "summary": "List absence types for group and employee in period",
        "operationId": "getAbsenceTypesForEmployee",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "description": "ID of the domain group. Any other group type (e.g. district, unit or section) is rejected with a 400 error.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 170300
          },
          {
            "name": "employeeId",
            "in": "path",
            "description": "ID of the employee",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 608414
          },
          {
            "name": "start",
            "in": "query",
            "description": "Start date of the period (yyyy-MM-dd)",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "example": "2026-07-01"
          },
          {
            "name": "end",
            "in": "query",
            "description": "End date of the period (yyyy-MM-dd)",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "example": "2026-07-31"
          }
        ],
        "responses": {
          "200": {
            "description": "Response where you see the absence types for group and employee in period",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/absence-types_IntegrationAbsenceType"
                  }
                }
              }
            }
          },
          "400": {
            "description": "In case you send groupId which is not domain groupId.\nOr if any of groupId, employeeId, start, end is invalid.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/absence-types_ValidationError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "integration.absence:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/labels/{labelId}": {
      "get": {
        "tags": [
          "Collaboration Groups Labels"
        ],
        "summary": "Get label by id",
        "operationId": "getLabelsById",
        "parameters": [
          {
            "name": "labelId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/collaboration-groups_Label"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "put": {
        "tags": [
          "Collaboration Groups Labels"
        ],
        "summary": "Update label",
        "operationId": "updateLabel",
        "parameters": [
          {
            "name": "labelId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/collaboration-groups_LabelUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/collaboration-groups_Label"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:update"
            ]
          }
        ],
        "x-audience": "public"
      },
      "delete": {
        "tags": [
          "Collaboration Groups Labels"
        ],
        "summary": "Delete label",
        "operationId": "deleteLabel",
        "parameters": [
          {
            "name": "labelId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:delete"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/groups/{collaborationGroupId}": {
      "get": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "Get collaboration group by id",
        "operationId": "getCollaborationGroupsById",
        "parameters": [
          {
            "name": "collaborationGroupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "includeArchived",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/collaboration-groups_CollaborationGroupDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "put": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "Update collaboration group",
        "operationId": "editCollaborationGroups",
        "parameters": [
          {
            "name": "collaborationGroupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/collaboration-groups_CollaborationGroupUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/collaboration-groups_CollaborationGroup"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:update"
            ]
          }
        ],
        "x-audience": "public"
      },
      "delete": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "Delete collaboration group with its children",
        "operationId": "deleteCollaborationGroupsWithChildren",
        "parameters": [
          {
            "name": "collaborationGroupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "includeArchived",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:delete"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/groups/{collaborationGroupId}/unarchive": {
      "put": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "Unarchive collaboration group",
        "operationId": "unArchiveCollaborationGroup",
        "parameters": [
          {
            "name": "collaborationGroupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:update"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/groups/{collaborationGroupId}/move": {
      "put": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "Move a collaboration group to a new parent",
        "operationId": "moveCollaborationGroup",
        "parameters": [
          {
            "name": "collaborationGroupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/collaboration-groups_CollaborationGroupMove"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/collaboration-groups_CollaborationGroup"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:delete"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/groups/{collaborationGroupId}/archive": {
      "put": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "Archive collaboration group",
        "operationId": "archiveCollaborationGroup",
        "parameters": [
          {
            "name": "collaborationGroupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:update"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/labels": {
      "post": {
        "tags": [
          "Collaboration Groups Labels"
        ],
        "summary": "Create label for domain",
        "operationId": "createLabel",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/collaboration-groups_LabelCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/collaboration-groups_Label"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:create"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/groups": {
      "post": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "Create collaboration group for domain",
        "operationId": "createCollaborationGroups",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/collaboration-groups_CollaborationGroupCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/collaboration-groups_CollaborationGroup"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:create"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/associate-groups": {
      "post": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "Associate groups to a collaboration group",
        "operationId": "associateGroupsToCollaborationGroup",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/collaboration-groups_CollaborationGroupGroupDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/collaboration-groups_CollaborationGroupGroup"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:create"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/associate-employees": {
      "post": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "Associate employees to a collaboration group",
        "operationId": "associateEmployeesToCollaborationGroup",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/collaboration-groups_CollaborationGroupEmployeeDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/collaboration-groups_CollaborationGroupEmployee"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:create"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/root-by-domain/{domainId}": {
      "get": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "Get root collaboration group by domain id",
        "operationId": "getRootCollaborationGroupsByDomain",
        "parameters": [
          {
            "name": "domainId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/collaboration-groups_CollaborationGroupDetails"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/labels/domain/{domainId}": {
      "get": {
        "tags": [
          "Collaboration Groups Labels"
        ],
        "summary": "List labels by domain",
        "operationId": "getLabelsByDomain",
        "parameters": [
          {
            "name": "domainId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/collaboration-groups_Label"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/groups/{rootGroupId}/all-under-root": {
      "get": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "List collaboration groups under root",
        "operationId": "getAllCollaborationGroupsUnderRoot",
        "parameters": [
          {
            "name": "rootGroupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "includeArchived",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/collaboration-groups_CollaborationGroupDetails"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/groups/{parentId}/children": {
      "get": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "List child collaboration groups",
        "operationId": "getChildrenGroups",
        "parameters": [
          {
            "name": "parentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/collaboration-groups_CollaborationGroupDetails"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/groups/{collaborationGroupId}/employees": {
      "get": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "List employee ids in collaboration group",
        "operationId": "getCollaborationGroupEmployeeIds",
        "parameters": [
          {
            "name": "collaborationGroupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "includeArchived",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "integer",
                    "format": "int32"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/groups/{collaborationGroupId}/eligible-parents": {
      "get": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "List eligible parent collaboration groups",
        "operationId": "getEligibleParentCollaborationGroups",
        "parameters": [
          {
            "name": "collaborationGroupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/collaboration-groups_CollaborationGroup"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/groups/group/{groupId}": {
      "get": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "List collaboration groups for group",
        "operationId": "getCollaborationGroupsByEmployeeGroupId",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/collaboration-groups_CollaborationGroupDetails"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/groups/employee/{employeeId}": {
      "get": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "List collaboration groups for employee",
        "operationId": "getCollaborationGroupsByEmployeeId",
        "parameters": [
          {
            "name": "employeeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/collaboration-groups_CollaborationGroupDetails"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/by-root/{rootCollaborationGroupId}/employee/{employeeId}": {
      "get": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "Get collaboration group by root id and employee id",
        "operationId": "getCollaborationGroupByRootIdAndEmployeeId",
        "parameters": [
          {
            "name": "rootCollaborationGroupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "employeeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/collaboration-groups_CollaborationGroupDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/delete-groups": {
      "delete": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "Remove groups from a collaboration group, optionally including archived collaboration groups",
        "operationId": "deleteGroupsFromCollaborationGroup",
        "parameters": [
          {
            "name": "includeArchived",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/collaboration-groups_CollaborationGroupGroupDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:delete"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/collaboration-groups/delete-employees": {
      "delete": {
        "tags": [
          "Collaboration Groups"
        ],
        "summary": "Remove employees from a collaboration group, optionally including archived collaboration groups",
        "operationId": "deleteEmployeesFromCollaborationGroup",
        "parameters": [
          {
            "name": "includeArchived",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/collaboration-groups_CollaborationGroupEmployeeDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "collaboration_groups:delete"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/employee/agreements/{id}": {
      "patch": {
        "tags": [
          "Agreements"
        ],
        "summary": "Partially update an existing agreement",
        "operationId": "patchAgreement",
        "parameters": [
          {
            "name": "agreementRestId",
            "in": "query",
            "description": "Agreement identifier",
            "required": true,
            "schema": {
              "description": "An identifier that can be either a Quinyx ID or a prefixed external ID string.",
              "oneOf": [
                {
                  "type": "string",
                  "description": "The Quinyx ID of the resource.",
                  "pattern": "^[0-9]+$"
                },
                {
                  "type": "string",
                  "description": "The external string ID, which must start with 'xrefId:'.",
                  "example": "xrefId:1234",
                  "pattern": "^xrefId:[a-zA-Z0-9._-]{1,64}$"
                }
              ]
            },
            "examples": {
              "internal-id": {
                "summary": "Internal ID",
                "description": "Internal ID (Integer)",
                "value": 9
              },
              "external-id": {
                "summary": "External ID",
                "description": "External ID prefixed with 'xrefId:', 1-64 characters long, consisting of alphanumerics and . _ -",
                "value": "xrefId:my-external-id"
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/employee_AgreementPatchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Agreement details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/employee_AgreementResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. Missing Bearer token."
          },
          "403": {
            "description": "Forbidden. Missing permission: agreement:update"
          },
          "404": {
            "description": "Agreement or credential's customer are not found."
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "agreement:update"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/employee/pay-schedules/{id}/periods/{periodDate}": {
      "get": {
        "tags": [
          "Pay Schedules"
        ],
        "summary": "Get most recent pay period ending before date",
        "operationId": "getPayPeriod",
        "parameters": [
          {
            "name": "payScheduleRestId",
            "in": "query",
            "description": "Pay Schedule identifier",
            "required": true,
            "schema": {
              "type": "string"
            },
            "examples": {
              "internal-id": {
                "summary": "Internal ID",
                "description": "Internal ID (Integer)",
                "value": 9
              },
              "external-id": {
                "summary": "External ID",
                "description": "External ID prefixed with 'xrefId:', 1-64 characters long, consisting of alphanumerics and . _ -",
                "value": "xrefId:my-external-id"
              }
            }
          },
          {
            "name": "periodDate",
            "in": "path",
            "description": "Returned period will be the most recent one that ended before this date. Usually: current date. Format: YYYY-MM-DD.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "example": "2026-02-10"
          }
        ],
        "responses": {
          "200": {
            "description": "Previous pay period along with list of allowed employees and unit IDs",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/employee_IntegrationPayPeriodResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. Missing Bearer token."
          },
          "403": {
            "description": "Forbidden. Missing permission: pay_schedules:read"
          },
          "404": {
            "description": "Pay schedule, or credential's customer is not found"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "pay_schedules:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/employee/badgeNo/{badgeNo}": {
      "get": {
        "tags": [
          "Employees"
        ],
        "summary": "Get List of employee information by badge number",
        "operationId": "findEmployeesByBadgeNumber",
        "parameters": [
          {
            "name": "badgeNo",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Response employee details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/employee_EmployeeIntegrationResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "integration.people:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecast-calculation/groups/{groupId}/optimal-headcounts/{optimalHeadcountId}": {
      "post": {
        "tags": [
          "Forecast Optimal Headcounts"
        ],
        "summary": "Calculate optimal headcount by id",
        "operationId": "calculateOptimalHeadcountsById",
        "parameters": [
          {
            "name": "optimalHeadcountId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-calculation_OptimalHeadcountDatasetIntegrationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/forecast-calculation_CalculatedDatasetResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecast-calculation/customer/{customerId}/events": {
      "post": {
        "tags": [
          "Forecast Event Effects"
        ],
        "summary": "Calculate event effects for a customer",
        "operationId": "getEvents",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-calculation_CalculateEventEffectsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-calculation_Event"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecast-calculation/groups/{groupId}/optimal-headcounts": {
      "get": {
        "tags": [
          "Forecast Optimal Headcounts"
        ],
        "summary": "Calculate optimal headcounts for group, excluding limit rules",
        "operationId": "calculateOptimalHeadcounts",
        "parameters": [
          {
            "name": "startTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-calculation_OptimalHeadcountDatasetByGroupResponse"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/static-rules": {
      "get": {
        "tags": [
          "Forecast Static Rules"
        ],
        "summary": "List static rules",
        "operationId": "getStaticRulesByGroup",
        "parameters": [
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1,
              "maximum": 5000,
              "minimum": 1
            }
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20,
              "maximum": 200,
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/forecast-data-ingestion_PaginatedResultListExternalStaticRule"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/forecast-data-ingestion_PaginatedResultListExternalStaticRule"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "put": {
        "tags": [
          "Forecast Static Rules"
        ],
        "summary": "Update a static rule",
        "operationId": "updateStaticRule",
        "parameters": [
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-data-ingestion_ExternalStaticRule"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/forecast-data-ingestion_ExternalStaticRule"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/forecast-data-ingestion_ExternalStaticRule"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:write"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:update"
            ]
          }
        ],
        "x-audience": "public"
      },
      "post": {
        "tags": [
          "Forecast Static Rules"
        ],
        "summary": "Create a new static rule",
        "operationId": "createStaticRule",
        "parameters": [
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-data-ingestion_ExternalStaticRule"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/forecast-data-ingestion_ExternalStaticRule"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/forecast-data-ingestion_ExternalStaticRule"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:write"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:create"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/dynamic-rules": {
      "get": {
        "tags": [
          "Forecast Dynamic Rules"
        ],
        "summary": "List dynamic rules",
        "operationId": "getDynamicRulesByGroup",
        "parameters": [
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-data-ingestion_ExternalDynamicRule"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-data-ingestion_ExternalDynamicRule"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "put": {
        "tags": [
          "Forecast Dynamic Rules"
        ],
        "summary": "Update a dynamic rule",
        "operationId": "updateDynamicRule",
        "parameters": [
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-data-ingestion_ExternalDynamicRule"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:write"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:update"
            ]
          }
        ],
        "x-audience": "public"
      },
      "post": {
        "tags": [
          "Forecast Dynamic Rules"
        ],
        "summary": "Create a new dynamic rule",
        "operationId": "createDynamicRule",
        "parameters": [
          {
            "name": "externalUnitId",
            "in": "query",
            "description": "External Group Id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "unitId"
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "description": "External Section Id",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "sectionId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-data-ingestion_ExternalDynamicRule"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/forecast-data-ingestion_ExternalDynamicRule"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:write"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:create"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/target-data": {
      "post": {
        "tags": [
          "Forecast Target Data"
        ],
        "summary": "Upload daily target data with maximum 366 rows",
        "description": "Operation used to upload target data for daily basic. The total amount of data rows must not exceed 366.",
        "operationId": "postTargetData",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-data-ingestion_TargetDataInputList"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Data successfully uploaded",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Unexpected input.",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:create"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:update"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/raw-data": {
      "post": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Upload actual data with maximum 366 rows",
        "description": "Operation used to upload actual data. The total amount of data rows must not exceed 366. Deprecated. Use /actual-data instead.",
        "operationId": "postRawData",
        "parameters": [
          {
            "name": "appendData",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-data-ingestion_DataProviderInputList"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Data successfully uploaded",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:create"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:update"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:write"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/predicted-data": {
      "post": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Upload prediction data with maximum 366 rows at the variable resolution",
        "description": "Operation used to upload generated prediction data. Resolution of datapoints must match expected resolution of variable. The total amount of data rows must not exceed 366.",
        "operationId": "postPredictedData",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-data-ingestion_ForecastPredictionIntegrationList"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Data successfully uploaded",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Unexpected input.",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast.external.prediction:write"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast.external.prediction:update"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast.external.prediction:create"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/forecast-variables/{externalForecastVariableId}/forecast-configurations/{externalForecastConfigurationId}/edit-forecast": {
      "post": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Update forecast configuration and related data",
        "description": "Operation used to edit forecast configurations and update related forecast data.",
        "operationId": "editCalculatedForecast",
        "parameters": [
          {
            "name": "externalForecastVariableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalForecastConfigurationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-data-ingestion_ForecastDataModifier"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Forecast successfully updated",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Unexpected input.",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:write"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:update"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:create"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/forecast-data": {
      "post": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Upload forecast data with maximum 366 rows",
        "description": "Operation used to upload forecast data. The total amount of data rows must not exceed 366. Deprecated. Use /budget-data instead.",
        "operationId": "postForecastData",
        "parameters": [
          {
            "name": "appendData",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-data-ingestion_DataProviderInputList"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Data successfully uploaded",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:write"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:create"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:update"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/budget-data": {
      "post": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Upload budget data with maximum 366 rows",
        "description": "Operation used to upload budget data. The total amount of data rows must not exceed 366.",
        "operationId": "postBudgetData",
        "parameters": [
          {
            "name": "appendData",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-data-ingestion_DataProviderInputList"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Data successfully uploaded",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:write"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:create"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:update"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/aggregated-data": {
      "post": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Upload pre-aggregated data with maximum 366 rows",
        "description": "Operation used to upload data already grouped at input data resolution. The total amount of data rows must not exceed 366.",
        "operationId": "postAggregatedData",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-data-ingestion_DataProviderInputList"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Data successfully uploaded",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:create"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:update"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:write"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/actual-data": {
      "post": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Upload actual data with maximum 366 rows",
        "description": "Operation used to upload actual data. The total amount of data rows must not exceed 366.",
        "operationId": "postActualData",
        "parameters": [
          {
            "name": "appendData",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-data-ingestion_DataProviderInputList"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Data successfully uploaded",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:create"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:update"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:write"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/target-data/{externalId}": {
      "get": {
        "tags": [
          "Forecast Target Data"
        ],
        "summary": "Get target data for a target configuration, up to 360 days",
        "description": "Getting the Target data for the given target configuration. The range between these two dates can not exceed 360 days.",
        "operationId": "getTargetData",
        "parameters": [
          {
            "name": "externalId",
            "in": "path",
            "description": "External ID of the target configuration",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/forecast-data-ingestion_TargetDataOutput"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/forecast-data-ingestion_TargetDataOutput"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "delete": {
        "tags": [
          "Forecast Target Data"
        ],
        "summary": "Delete target data for a target configuration, up to 360 days",
        "description": "Delete the Target data for the given target configuration. The range between these two dates can not exceed 360 days.",
        "operationId": "deleteTargetData",
        "parameters": [
          {
            "name": "externalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:delete"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/forecast-variables/{externalForecastVariableId}/raw-data": {
      "get": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Get uploaded raw data for forecast variable, up to 120 days",
        "description": "Getting the actual data previously uploaded for the given forecast variable. The range between these two dates can not exceed 120 days. Deprecated. Use ../actual-data instead.",
        "operationId": "getRawData",
        "parameters": [
          {
            "name": "externalForecastVariableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-data-ingestion_DataIngestionOutput"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-data-ingestion_DataIngestionOutput"
                  }
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "delete": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Delete uploaded raw data and matching calculated forecast",
        "description": "Deleting the actual data previously uploaded for the given forecast variable. This operation will also delete the corresponding calculated forecast data. The startTime and endTime must be at the start of hour and the range between these two dates can not exceed 120 days. Deprecated. Use ../actual-data instead.",
        "operationId": "deleteRawData",
        "parameters": [
          {
            "name": "externalForecastVariableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "The delete request was received successfully and the operation will be performed asynchronously",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:delete"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:write"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/forecast-variables/{externalForecastVariableId}/raw-data-stream": {
      "get": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Stream uploaded raw data for forecast variable, up to 120 days",
        "description": "Stream the actual data previously uploaded for the given forecast variable. The range between these two dates can not exceed 120 days. Deprecated. Use ../actual-data instead.",
        "operationId": "getRawDataStream",
        "parameters": [
          {
            "name": "externalForecastVariableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-data-ingestion_DataIngestionOutput"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-data-ingestion_DataIngestionOutput"
                  }
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/forecast-variables/{externalForecastVariableId}/forecast-data": {
      "get": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Get uploaded forecast data for a forecast variable, up to 120 days",
        "description": "Getting the uploaded forecast data for the given forecast variable. The range between these two dates can not exceed 120 days. Deprecated. Use /budget-data instead.",
        "operationId": "getUploadedForecastData",
        "parameters": [
          {
            "name": "externalForecastVariableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-data-ingestion_DataIngestionOutput"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-data-ingestion_DataIngestionOutput"
                  }
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "delete": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Delete previously uploaded forecast data for a forecast variable",
        "description": "Deleting the previously uploaded forecast data for the given forecast variable. The startTime and endTime must be at the start of hour and the range between these two dates can not exceed 120 days. Deprecated. Use /forecast-variables/{externalForecastVariableId}/budget-data instead.",
        "operationId": "deleteForecastData",
        "parameters": [
          {
            "name": "externalForecastVariableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "The delete request was received successfully and the operation will be performed asynchronously",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:delete"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:write"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/forecast-variables/{externalForecastVariableId}/calculated-forecast": {
      "get": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Get the calculated forecast for a forecast variable, ignoring forecast events",
        "description": "Getting the calculated forecast for the given forecast variable. The range between these two dates can not exceed 120 days. Forecast events are NOT taken into consideration.",
        "operationId": "getCalculatedForecastForVariable",
        "parameters": [
          {
            "name": "externalForecastVariableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-data-ingestion_CalculatedForecast"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-data-ingestion_CalculatedForecast"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/forecast-variables/{externalForecastVariableId}/budget-data": {
      "get": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Get uploaded budget data for a forecast variable, up to 120 days",
        "description": "Getting the uploaded budget data for the given forecast variable. The range between these two dates can not exceed 120 days.",
        "operationId": "getUploadedBudgetData",
        "parameters": [
          {
            "name": "externalForecastVariableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-data-ingestion_DataIngestionOutput"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-data-ingestion_DataIngestionOutput"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "delete": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Delete previously uploaded budget data for a forecast variable",
        "description": "Deleting the previously uploaded budget data for the given forecast variable. The startTime and endTime must be at the start of hour and the range between these two dates can not exceed 120 days.",
        "operationId": "deleteBudgetData",
        "parameters": [
          {
            "name": "externalForecastVariableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "The delete request was received successfully and the operation will be performed asynchronously",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:delete"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:write"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/forecast-variables/{externalForecastVariableId}/aggregated-data": {
      "get": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Get aggregated data for a forecast variable, up to 120 days",
        "description": "Getting the aggregated data for the given forecast variable. The range between these two dates can not exceed 120 days.",
        "operationId": "getAggregatedData",
        "parameters": [
          {
            "name": "externalForecastVariableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-data-ingestion_AggregatedData"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-data-ingestion_AggregatedData"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/forecast-variables/{externalForecastVariableId}/actual-data": {
      "get": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Get previously uploaded actual data for a forecast variable, up to 120 days",
        "description": "Getting the actual data previously uploaded for the given forecast variable. The range between these two dates can not exceed 120 days.",
        "operationId": "getActualData",
        "parameters": [
          {
            "name": "externalForecastVariableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-data-ingestion_DataIngestionOutput"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-data-ingestion_DataIngestionOutput"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "delete": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Delete previously uploaded actual data and the matching calculated forecast",
        "description": "Deleting the actual data previously uploaded for the given forecast variable. This operation will also delete the corresponding calculated forecast data. The startTime and endTime must be at the start of hour and the range between these two dates can not exceed 120 days.",
        "operationId": "deleteActualData",
        "parameters": [
          {
            "name": "externalForecastVariableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "The delete request was received successfully and the operation will be performed asynchronously",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:delete"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:write"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/forecast-variables/{externalForecastVariableId}/actual-data-stream": {
      "get": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Stream previously uploaded actual data for a forecast variable, up to 120 days",
        "description": "Stream the actual data previously uploaded for the given forecast variable. The range between these two dates can not exceed 120 days.",
        "operationId": "getActualDataStream",
        "parameters": [
          {
            "name": "externalForecastVariableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-data-ingestion_DataIngestionOutput"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-data-ingestion_DataIngestionOutput"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/calculated-variables/{extCalculatedVarId}": {
      "get": {
        "tags": [
          "Forecast Data"
        ],
        "summary": "Get calculated variable data by external id, up to 120 days",
        "description": "Getting the data for calculated variable identified by externalId. The range between these two dates can not exceed 120 days.",
        "operationId": "getCalculatedVariableData",
        "parameters": [
          {
            "name": "extCalculatedVarId",
            "in": "path",
            "description": "Calculated Variable External Id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "extId"
          },
          {
            "name": "externalUnitId",
            "in": "query",
            "description": "External Group Id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "unitId"
          },
          {
            "name": "startTime",
            "in": "query",
            "description": "Start of the period in ISO format",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2020-01-26T00:00:00Z"
          },
          {
            "name": "endTime",
            "in": "query",
            "description": "End of the period ISO format",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2020-01-27T00:00:00Z"
          }
        ],
        "responses": {
          "200": {
            "description": "Calculated variable data for given period",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/forecast-data-ingestion_CalculatedVariableOutput"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/forecast-data-ingestion_CalculatedVariableOutput"
                }
              }
            }
          },
          "404": {
            "description": "Calculated variable was not found for given externalId and externalUnitId",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/forecast-data-ingestion_CalculatedVariableOutput"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/static-rules/{externalStaticRuleId}": {
      "delete": {
        "tags": [
          "Forecast Static Rules"
        ],
        "summary": "Delete a static rule",
        "operationId": "deleteStaticRule",
        "parameters": [
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalStaticRuleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:write"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:delete"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecasts/dynamic-rules/{externalDynamicRuleId}": {
      "delete": {
        "tags": [
          "Forecast Dynamic Rules"
        ],
        "summary": "Delete a dynamic rule",
        "operationId": "deleteDynamicRule",
        "parameters": [
          {
            "name": "externalUnitId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalSectionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalDynamicRuleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden to perform this action",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:write"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "forecast:delete"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecast-events/groups/{groupId}/events/{eventId}": {
      "put": {
        "tags": [
          "Forecast Events"
        ],
        "summary": "Update forecast event",
        "operationId": "updateEvent",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "eventId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-events_UpdateEventIntegrationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/forecast-events_IntegrationEvent"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:update"
            ]
          }
        ],
        "x-audience": "public"
      },
      "delete": {
        "tags": [
          "Forecast Events"
        ],
        "summary": "Delete forecast event",
        "operationId": "deleteEvent",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "eventId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:delete"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecast-events/groups/{groupId}/event-categories/{eventCategoryId}": {
      "get": {
        "tags": [
          "Forecast Event Categories"
        ],
        "summary": "Get forecast event category",
        "operationId": "getEventCategory",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "eventCategoryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/forecast-events_EventCategory"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "put": {
        "tags": [
          "Forecast Event Categories"
        ],
        "summary": "Update forecast event category",
        "operationId": "updateEventCategory",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "eventCategoryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-events_EventCategory"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/forecast-events_EventCategory"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:update"
            ]
          }
        ],
        "x-audience": "public"
      },
      "delete": {
        "tags": [
          "Forecast Event Categories"
        ],
        "summary": "Delete forecast event category",
        "operationId": "deleteEventCategory",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "eventCategoryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:delete"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecast-events/groups/{groupId}/events": {
      "get": {
        "tags": [
          "Forecast Events"
        ],
        "summary": "List forecast events for group",
        "operationId": "getIntegrationEvents",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "startTime",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-events_IntegrationEvent"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "post": {
        "tags": [
          "Forecast Events"
        ],
        "summary": "List forecast events for group and its ancestors",
        "operationId": "getGroupHierarchyIntegrationEvents",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-events_GroupHierarchyEventsExternalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-events_IntegrationEvent"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecast-events/groups/{groupId}/event": {
      "post": {
        "tags": [
          "Forecast Events"
        ],
        "summary": "Create forecast events for forecast configurations and groups",
        "operationId": "createIntegrationEvent",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-events_CreateEventIntegrationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-events_IntegrationEvent"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:create"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecast-events/groups/{groupId}/event-categories": {
      "get": {
        "tags": [
          "Forecast Event Categories"
        ],
        "summary": "List forecast event categories for group",
        "operationId": "getEventCategories",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-events_EventCategory"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "post": {
        "tags": [
          "Forecast Event Categories"
        ],
        "summary": "Create forecast event category for the domain",
        "operationId": "createEventCategory",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/forecast-events_EventCategory"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/forecast-events_EventCategory"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:create"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecast-events/groups/{groupId}/events/{eventId}/overrides": {
      "get": {
        "tags": [
          "Forecast Events"
        ],
        "summary": "List override events for forecast event",
        "operationId": "getIntegrationEventsByEventId",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "eventId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-events_IntegrationEvent"
                  },
                  "uniqueItems": true
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/forecast-settings/optimal-headcounts": {
      "get": {
        "tags": [
          "Forecast Optimal Headcounts"
        ],
        "summary": "Get all optimal headcounts for the customer",
        "operationId": "getOptimalHeadcounts",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forecast-settings_OptimalHeadcount"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/labor-standards/labor-standards/{laborStandardId}": {
      "put": {
        "tags": [
          "Labor Standards"
        ],
        "summary": "Update a labor standard",
        "operationId": "updateLaborStandard",
        "parameters": [
          {
            "name": "laborStandardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/labor-standards_IntegrationLaborStandard"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/labor-standards_LaborStandard"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:update"
            ]
          }
        ],
        "x-audience": "public"
      },
      "delete": {
        "tags": [
          "Labor Standards"
        ],
        "summary": "Delete a labor standard",
        "operationId": "deleteLaborStandard",
        "parameters": [
          {
            "name": "laborStandardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:delete"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/labor-standards/labor-standards": {
      "get": {
        "tags": [
          "Labor Standards"
        ],
        "summary": "Read labor standards by external optimal headcount id",
        "operationId": "readLaborStandardsByOptimalHeadcountId",
        "parameters": [
          {
            "name": "externalOptimalHeadcountId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/labor-standards_LaborStandard"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "post": {
        "tags": [
          "Labor Standards"
        ],
        "summary": "Create a labor standard",
        "operationId": "createLaborStandard",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/labor-standards_IntegrationLaborStandard"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/labor-standards_LaborStandard"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:create"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/labor-standards/groups/{groupId}/labor-standards/limit-configurations": {
      "get": {
        "tags": [
          "Labor Standards"
        ],
        "summary": "Read limit configurations by group for a period",
        "operationId": "readLimitRulesByGroup",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "periodStart",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "periodEnd",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/labor-standards_LimitConfigurationsByGroupResponse"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "forecast:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/mapping/{mappingId}": {
      "put": {
        "tags": [
          "Mappings"
        ],
        "summary": "Update mapping",
        "operationId": "update",
        "parameters": [
          {
            "name": "mappingId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/mapping_MappingExternalValueRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Response for the updated mapping of quinyxValue and externalValue",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/mapping_MappingResponse"
                }
              }
            }
          },
          "400": {
            "description": "In case when externalValue is invalid",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/mapping_ValidationError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "501": {
            "description": "Mapping type not supported"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "mapping:update"
            ]
          }
        ],
        "x-audience": "public"
      },
      "delete": {
        "tags": [
          "Mappings"
        ],
        "summary": "Delete mapping",
        "operationId": "delete",
        "parameters": [
          {
            "name": "mappingId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Response in case of successful delete"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/mapping_ValidationError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "mapping:delete"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/mapping/groups/{domainGroupId}": {
      "post": {
        "tags": [
          "Mappings"
        ],
        "summary": "Create mapping",
        "operationId": "save",
        "parameters": [
          {
            "name": "domainGroupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/mapping_MappingRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Response for the created mapping of quinyxValue and externalValue",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/mapping_MappingResponse"
                }
              }
            }
          },
          "400": {
            "description": "In case when quinyxValue or externalValue are invalid",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/mapping_ValidationError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "501": {
            "description": "Mapping type not supported"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "mapping:create"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/mapping/domains/{domainId}/mappings/{mappingType}": {
      "post": {
        "tags": [
          "Mappings"
        ],
        "summary": "Search mappings by domain and type",
        "description": "Retrieves mapping records for the given domainId and mappingType, narrowed down by quinyxValue or/and externalValue.",
        "operationId": "getMappings",
        "parameters": [
          {
            "name": "domainId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "mappingType",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/mapping_MappingValues"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": " Response that returns the list of mapping records for the given domainId and mappingType and quinyxValue or externalValue, or both. \n If both externalValue and quinyxValue are provided then a list of one element is returned.\n ",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/mapping_MappingResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "   If the request is invalid or malformed.\n   Note: body is required, if externalValue and quinyxValue is not available in the request \n   the corresponding fields should be set to NULL.\n ",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/mapping_ValidationError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "mapping:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/mapping/mappingTypes": {
      "get": {
        "tags": [
          "Mappings"
        ],
        "summary": "List existing mapping types that can be used in a request",
        "operationId": "getMappingTypes",
        "responses": {
          "200": {
            "description": "List of all mapping types which can be used to fetch quinyxValue or externalValue",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/mapping_ValidationError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "x-audience": "public"
      }
    },
    "/v2/mapping/mappingTypes/{mappingType}/mappings": {
      "get": {
        "tags": [
          "Mappings"
        ],
        "summary": "List mappings by type",
        "operationId": "getMappings_1",
        "parameters": [
          {
            "name": "mappingType",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "quinyxValue",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalValue",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Response where you see the quinyxValue and externalValue",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/mapping_MappingResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "In case you send quinyxValue and externalValue at the same time.\nYou should send only one of them to retrieve the other value.\nOr if the mappingType is invalid.\n",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/mapping_ValidationError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "mapping:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/opening-hours/groups/{groupId}/opening-hours/{openingHoursId}": {
      "put": {
        "tags": [
          "Opening Hours"
        ],
        "summary": "Update opening hours by id",
        "operationId": "updateOpeningHours",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "openingHoursId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/opening-hours_OpeningHours"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/opening-hours_OpeningHours"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "opening_hours:update"
            ]
          }
        ],
        "x-audience": "public"
      },
      "delete": {
        "tags": [
          "Opening Hours"
        ],
        "summary": "Delete opening hours based on opening hours id",
        "operationId": "deleteOpeningHours",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "openingHoursId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "opening_hours:delete"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/opening-hours/groups/{groupId}/opening-hours": {
      "get": {
        "tags": [
          "Opening Hours"
        ],
        "summary": "Get opening hours based on group id",
        "operationId": "getOpeningHours",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/opening-hours_OpeningHours"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "opening_hours:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "post": {
        "tags": [
          "Opening Hours"
        ],
        "summary": "Create opening hours",
        "operationId": "createOpeningHours",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/opening-hours_OpeningHours"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/opening-hours_OpeningHours"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "opening_hours:create"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/opening-hours/groups/{groupId}/open-periods": {
      "get": {
        "tags": [
          "Opening Hours"
        ],
        "summary": "Get open periods",
        "operationId": "getOpeningHoursPeriods",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "periodStart",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "periodEnd",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/opening-hours_OpenPeriod"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "opening_hours:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/organisation/groups/{groupId}": {
      "get": {
        "tags": [
          "Groups"
        ],
        "summary": "Get group by id",
        "description": "Get group details identified by groupId.",
        "operationId": "getSingleGroupDetails",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns group details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_GroupDetailsResponseDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_UnauthorizedErrorResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/organisation_ValidationErrorDto"
                  }
                }
              }
            }
          },
          "404": {
            "description": "The group not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_ApiErrorResponseDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "groups:read"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "account:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "put": {
        "tags": [
          "Groups"
        ],
        "summary": "Update group",
        "description": "Update a group identified by given groupId.",
        "operationId": "updateGroup",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/organisation_GroupUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Group created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_GroupDetailsResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/organisation_ValidationErrorDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_UnauthorizedErrorResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/organisation_ValidationErrorDto"
                  }
                }
              }
            }
          },
          "404": {
            "description": "The group not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_ApiErrorResponseDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "groups:update"
            ]
          }
        ],
        "x-audience": "public"
      },
      "delete": {
        "tags": [
          "Groups"
        ],
        "summary": "Delete a group",
        "description": "Deletes the group record with identified by aa given groupId.",
        "operationId": "deleteGroup",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Group record successfully deleted."
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_UnauthorizedErrorResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "The user doesn't have permission to delete the record",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/organisation_ValidationErrorDto"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Domain or group not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_ApiErrorResponseDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "groups:delete"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/organisation/groups/{groupId}/locations/{locationId}": {
      "get": {
        "tags": [
          "Group Locations"
        ],
        "summary": "Get group location by group id and location id",
        "operationId": "getGroupLocation",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_GroupLocationResponseDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_UnauthorizedErrorResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/organisation_ValidationErrorDto"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Group not found or location not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_ApiErrorResponseDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "groups:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "put": {
        "tags": [
          "Group Locations"
        ],
        "summary": "Update group location",
        "operationId": "updateGroupLocation",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/organisation_GroupLocationRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_GroupLocationResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/organisation_ValidationErrorDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_UnauthorizedErrorResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/organisation_ValidationErrorDto"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Domain not found or location not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_ApiErrorResponseDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "groups:update"
            ]
          }
        ],
        "x-audience": "public"
      },
      "delete": {
        "tags": [
          "Group Locations"
        ],
        "summary": "Delete group location",
        "operationId": "deleteGroupLocation",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/organisation_ValidationErrorDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_UnauthorizedErrorResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/organisation_ValidationErrorDto"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Domain not found or location not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_ApiErrorResponseDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "groups:delete"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/organisation/groups": {
      "post": {
        "tags": [
          "Groups"
        ],
        "summary": "Create group",
        "description": "Create a new group from a given DTO.",
        "operationId": "createGroup",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/organisation_GroupCreationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Group created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_GroupDetailsResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/organisation_ValidationErrorDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_UnauthorizedErrorResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/organisation_ValidationErrorDto"
                  }
                }
              }
            }
          },
          "404": {
            "description": "The group not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_ApiErrorResponseDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "groups:create"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/organisation/groups/{groupId}/locations": {
      "get": {
        "tags": [
          "Group Locations"
        ],
        "summary": "List group locations",
        "operationId": "getGroupLocations",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/organisation_GroupLocationResponseDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_UnauthorizedErrorResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/organisation_ValidationErrorDto"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Domain not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_ApiErrorResponseDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "groups:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "post": {
        "tags": [
          "Group Locations"
        ],
        "summary": "Create group location",
        "operationId": "addGroupLocation",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/organisation_GroupLocationRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_GroupLocationResponseDto"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_GroupLocationResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/organisation_ValidationErrorDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_UnauthorizedErrorResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/organisation_ValidationErrorDto"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Domain not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_ApiErrorResponseDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "groups:create"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/organisation/groups/{groupId}/children": {
      "get": {
        "tags": [
          "Groups"
        ],
        "summary": "List child groups",
        "description": "Get children groups from a given groupId.",
        "operationId": "getGroupChildren",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "minimum": 0
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns group details.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/organisation_GroupDetailsResponseDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_UnauthorizedErrorResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/organisation_ValidationErrorDto"
                  }
                }
              }
            }
          },
          "404": {
            "description": "The group not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/organisation_ApiErrorResponseDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "groups:read"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "account:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/oauth/token": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Issue access token",
        "description": "Operation returns the security token to be used for subsequent calls to API",
        "operationId": "authenticated",
        "parameters": [
          {
            "name": "grant_type",
            "in": "query",
            "description": "Grant type requested",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "client_credentials"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rest-api-uaa_OAuth2Token"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rest-api-uaa_OAuth2Token"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rest-api-uaa_OAuth2Token"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rest-api-uaa_OAuth2Token"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rest-api-uaa_OAuth2Token"
                }
              }
            }
          }
        },
        "x-audience": "public"
      }
    },
    "/v2/schedule-availability/v2": {
      "post": {
        "tags": [
          "Schedule Availability"
        ],
        "summary": "Create schedule availability",
        "operationId": "createScheduleAvailability",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/schedule-availability_CreateScheduleAvailabilityInternalIdsModel"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "integration.schedule_availability:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/schedule-availability/v2/groups/{groupId}": {
      "get": {
        "tags": [
          "Schedule Availability"
        ],
        "summary": "Get schedule availability by group id",
        "operationId": "getScheduleAvailabilityByGroup",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/schedule-availability_IntegrationInternalIdsScheduleAvailability"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "integration.schedule_availability:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/schedule-availability/v2/employees/{employeeId}": {
      "get": {
        "tags": [
          "Schedule Availability"
        ],
        "summary": "Get schedule availability by employee id",
        "operationId": "getScheduleAvailabilityByEmployee",
        "parameters": [
          {
            "name": "employeeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/schedule-availability_IntegrationInternalIdsScheduleAvailability"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "integration.schedule_availability:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/schedule/groups/{groupId}/absences": {
      "post": {
        "tags": [
          "Absences"
        ],
        "summary": "Create full-time absence for employee",
        "operationId": "addAbsence",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "overlapAbsences",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "ignoreOverridableValidations",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/schedule_AbsenceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Response created absence details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/schedule_AbsenceResponse"
                }
              }
            }
          },
          "400": {
            "description": "In case one of the input values (shiftsInThisPeriod, begin, end,\n  absenceRateDirection, splitType, ignoreOverridableValidations\n   overlapAbsences) are invalid.\n"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "integration.absence:create"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/schedule/groups/{groupId}/absences/part-time": {
      "post": {
        "tags": [
          "Absences"
        ],
        "summary": "Create part-time absence for employee",
        "operationId": "addPartTimeAbsence",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "overlapAbsences",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "ignoreOverridableValidations",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "absenceRate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "number",
              "format": "double",
              "maximum": 99.9999,
              "minimum": 0.0001
            }
          },
          {
            "name": "absenceRateDirection",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "FROM_START",
                "FROM_END",
                "WHOLE_SHIFT"
              ]
            }
          },
          {
            "name": "splitType",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "DAY",
                "SHIFT"
              ]
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/schedule_AbsenceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Response created part-time absence details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/schedule_AbsenceResponse"
                }
              }
            }
          },
          "400": {
            "description": "                      In case one of the input values (shiftsInThisPeriod, begin, end, absenceRateDirection, splitType, ignoreOverridableValidations overlapAbsences, splitType, absenceRate, absenceRateDirection) are invalid.\n"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "integration.absence:create"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/schedule/groups/{groupId}/absences/{absenceId}": {
      "delete": {
        "tags": [
          "Absences"
        ],
        "summary": "Delete absence for employee",
        "operationId": "deleteAbsence",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "absenceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "reassignBackShifts",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Absence has been successfully deleted."
          },
          "400": {
            "description": "                      In case one of the input values (groupId, absenceId, reassignBackShifts) are invalid.\n"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "406": {
            "description": "Not Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/schedule_AbsenceValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "integration.absence:delete"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/statistics/standard-variables": {
      "post": {
        "tags": [
          "Standard Variables"
        ],
        "summary": "List standard variables",
        "description": "Fetches standard variables from the statistics service.",
        "operationId": "getStatistics",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/statistics_AdvancedStatisticsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/statistics_Statistic"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "statistics:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/statistics/groups/{groupId}/ai-scheduled-headcount/{shiftTypeId}": {
      "get": {
        "tags": [
          "AI Scheduled Headcount"
        ],
        "summary": "Get ai scheduled headcount snapshot",
        "description": "Fetches the ai scheduled headcount for the given shift type. The requested period must not exceed 120 days.",
        "operationId": "getScheduledHeadcountSnapshot",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "shiftTypeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/statistics_HeadCount"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "statistics:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/tags/categories/{categoryExternalId}/tags/{tagExternalId}": {
      "get": {
        "tags": [
          "Tags"
        ],
        "summary": "Get tag by external category id and external tag id",
        "description": "Retrieves a specific tag using its category external ID and tag external ID.<br />The `uniqueScheduling` field in the response is deprecated and non-functional.",
        "operationId": "getTagByExternalId",
        "parameters": [
          {
            "name": "categoryExternalId",
            "in": "path",
            "description": "External identifier of the tag category",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tagExternalId",
            "in": "path",
            "description": "External identifier of the tag",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Tag found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tags_TagIntegration"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "tags:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "put": {
        "tags": [
          "Tags"
        ],
        "summary": "Update tag",
        "description": "Updates all values of an existing tag. The categoryExternalId cannot be changed.<br />The `uniqueScheduling` field is deprecated and non-functional in both the request and the response; any value sent is ignored by all scheduling logic.",
        "operationId": "updateTagByExternalId",
        "parameters": [
          {
            "name": "categoryExternalId",
            "in": "path",
            "description": "External identifier of the tag category",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tagExternalId",
            "in": "path",
            "description": "External identifier of the tag to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Tag details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tags_TagIntegration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Tag successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tags_TagIntegration"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "tags:write"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "tags:update"
            ]
          }
        ],
        "x-audience": "public"
      },
      "delete": {
        "tags": [
          "Tags"
        ],
        "summary": "Delete tag",
        "description": "Deletes the tag with the given external category and tag ID",
        "operationId": "deleteTagByExternalId",
        "parameters": [
          {
            "name": "categoryExternalId",
            "in": "path",
            "description": "External identifier of the tag category",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tagExternalId",
            "in": "path",
            "description": "External identifier of the tag to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Tag successfully deleted"
          },
          "404": {
            "description": "Tag or tag category not found"
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "tags:write"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "tags:delete"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/tags/categories/{categoryExternalId}/tags": {
      "get": {
        "tags": [
          "Tags"
        ],
        "summary": "List tags by external category id",
        "description": "Retrieves all tags associated with the specified category external ID.<br />Please use [GET /v2/categories/{categoryExternalId}/tags](#/Tag%20Integration%20API/getPagedTagsByExternalCategoryId) instead.<br />Removal date: December 10, 2025.<br />The `uniqueScheduling` field in the response is deprecated and non-functional.",
        "operationId": "getTagsByExternalCategoryId",
        "parameters": [
          {
            "name": "categoryExternalId",
            "in": "path",
            "description": "External identifier of the tag category",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of tags retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/tags_TagIntegration"
                  }
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "OAuth2ClientCredentials": [
              "tags:read"
            ]
          }
        ],
        "x-audience": "public"
      },
      "post": {
        "tags": [
          "Tags"
        ],
        "summary": "Create tag",
        "description": "Creates a new tag within the specified category. The created tag is returned.<br />The `uniqueScheduling` field is deprecated and non-functional in both the request and the response; any value sent is ignored by all scheduling logic.",
        "operationId": "createTagByExternalId",
        "parameters": [
          {
            "name": "categoryExternalId",
            "in": "path",
            "description": "External identifier of the tag category",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Tag details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tags_TagIntegration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Tag successfully created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tags_TagIntegration"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "tags:write"
            ]
          },
          {
            "OAuth2ClientCredentials": [
              "tags:create"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/tags/v2/categories/{categoryExternalId}/tags": {
      "get": {
        "tags": [
          "Tags"
        ],
        "summary": "List paginated tags by external category id",
        "description": "Retrieves a paginated collection of tags associated with the specified category external ID.<br />Pagination is defined by cursor and size.<br />If the cursor is omitted, the first page will be returned.<br />If the size is omitted, a default size of 1000 will be used.<br />The `uniqueScheduling` field in the response is deprecated and non-functional.",
        "operationId": "getPagedTagsByExternalCategoryId",
        "parameters": [
          {
            "name": "categoryExternalId",
            "in": "path",
            "description": "External identifier of the tag category",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "LOC-001"
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "The reference point to fetch a set of results. If omitted or empty, the first page of results will be returned",
            "required": false,
            "allowEmptyValue": true,
            "schema": {
              "type": "string"
            },
            "example": "abcdefghijklmnopqrstuvwxyz=="
          },
          {
            "name": "size",
            "in": "query",
            "description": "Number of items per page (default value: 1000, min value: 1, max value: 10000)",
            "required": false,
            "allowEmptyValue": true,
            "schema": {
              "type": "integer",
              "default": 1000,
              "maximum": 10000,
              "minimum": 1
            },
            "example": 100
          }
        ],
        "responses": {
          "200": {
            "description": "Paged collection of tags retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tags_PagedResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "tags:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/tags/categories": {
      "get": {
        "tags": [
          "Tags"
        ],
        "summary": "List tag categories",
        "description": "Retrieves a list of all tag categories associated with the domain group",
        "operationId": "getTagCategoriesExternal",
        "responses": {
          "200": {
            "description": "List of tag categories retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/tags_TagCategory_Default"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "tags:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    },
    "/v2/tags/categories/{categoryExternalId}": {
      "get": {
        "tags": [
          "Tags"
        ],
        "summary": "Get tag category by external id",
        "description": "Retrieves a tag category using its external identifier",
        "operationId": "getTagCategoryByExternalId",
        "parameters": [
          {
            "name": "categoryExternalId",
            "in": "path",
            "description": "External identifier of the tag category",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Tag category found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tags_TagCategory_Default"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2ClientCredentials": [
              "tags:read"
            ]
          }
        ],
        "x-audience": "public"
      }
    }
  },
  "components": {
    "schemas": {
      "absence-schedule_ValidationError": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "example": "externalValue"
          },
          "message": {
            "type": "string",
            "example": "must not be blank"
          },
          "severity": {
            "type": "string",
            "example": "ERROR"
          },
          "localisedMessage": {
            "type": "string",
            "example": "External value must not be blank"
          },
          "groupingMessage": {
            "type": "string",
            "example": "validation"
          },
          "additionalErrorParameters": {
            "type": "object",
            "additionalProperties": {}
          }
        }
      },
      "absence-schedule_IntegrationAbsenceSchedule": {
        "type": "object",
        "properties": {
          "absenceScheduleId": {
            "type": "integer",
            "format": "int64",
            "example": 1
          },
          "absenceScheduleName": {
            "type": "string",
            "example": "Sick leave"
          },
          "absenceScheduleShiftTypeId": {
            "type": "integer",
            "format": "int32",
            "example": 10
          },
          "adjustmentLogic": {
            "type": "string",
            "enum": [
              "USE_EMPLOYMENT_RATE",
              "USE_NOMINAL_HOURS",
              "USE_SHIFT_LENGTH",
              "USE_MINI_JOBBERS",
              "USE_EMPLOYMENT_RATE_NEW"
            ],
            "example": "USE_NOMINAL_HOURS"
          },
          "shiftReplacement": {
            "type": "string",
            "enum": [
              "SCHEDULED_DAYS",
              "FREE_DAYS",
              "ALL_DAYS"
            ],
            "example": "ALL_DAYS"
          },
          "comment": {
            "type": "string",
            "example": "Schedule comment"
          },
          "bankHolidayCreation": {
            "type": "boolean",
            "example": true
          },
          "dayAndTime": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/absence-schedule_IntegrationAbsenceScheduleShift"
            }
          }
        }
      },
      "absence-schedule_IntegrationAbsenceScheduleShift": {
        "type": "object",
        "properties": {
          "startTime": {
            "type": "string",
            "example": "08:00:00"
          },
          "endTime": {
            "type": "string",
            "example": "17:00:00"
          },
          "days": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "MONDAY",
                "TUESDAY",
                "WEDNESDAY",
                "THURSDAY",
                "FRIDAY",
                "SATURDAY",
                "SUNDAY"
              ]
            }
          }
        }
      },
      "absence-types_ValidationError": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "example": "externalValue"
          },
          "message": {
            "type": "string",
            "example": "must not be blank"
          },
          "severity": {
            "type": "string",
            "example": "ERROR"
          },
          "localisedMessage": {
            "type": "string",
            "example": "External value must not be blank"
          },
          "groupingMessage": {
            "type": "string",
            "example": "validation"
          },
          "additionalErrorParameters": {
            "type": "object",
            "additionalProperties": {}
          }
        }
      },
      "absence-types_IntegrationAbsenceType": {
        "type": "object",
        "properties": {
          "absenceTypeId": {
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "absenceTypeName": {
            "type": "string",
            "example": "Sick leave"
          },
          "absenceScheduleId": {
            "type": "integer",
            "format": "int32",
            "example": 10
          },
          "shiftAction": {
            "type": "string",
            "enum": [
              "UNASSIGN",
              "DELETE"
            ],
            "example": "UNASSIGN"
          }
        }
      },
      "collaboration-groups_LabelUpdate": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Important",
            "minLength": 1
          },
          "color": {
            "type": "string",
            "example": "#FF0000"
          }
        },
        "required": [
          "name"
        ]
      },
      "collaboration-groups_Label": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": 1
          },
          "name": {
            "type": "string",
            "example": "Important"
          },
          "color": {
            "type": "string",
            "example": "#FF0000"
          },
          "domainId": {
            "type": "integer",
            "format": "int32",
            "example": 100
          }
        }
      },
      "collaboration-groups_CollaborationGroupUpdate": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Region North",
            "minLength": 1
          },
          "labelId": {
            "type": "integer",
            "format": "int64",
            "example": 5
          },
          "domoDashboardId": {
            "type": "string",
            "example": "abc12",
            "maxLength": 5,
            "minLength": 5,
            "pattern": "^[a-zA-Z0-9]*$"
          }
        },
        "required": [
          "labelId",
          "name"
        ]
      },
      "collaboration-groups_CollaborationGroup": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": 1
          },
          "name": {
            "type": "string",
            "example": "Region North"
          },
          "parentId": {
            "type": "integer",
            "format": "int64",
            "example": 10
          },
          "domainId": {
            "type": "integer",
            "format": "int32",
            "example": 100
          },
          "labelId": {
            "type": "integer",
            "format": "int64",
            "example": 5
          },
          "domoDashboardId": {
            "type": "string",
            "example": "abc-123"
          },
          "isArchived": {
            "type": "boolean",
            "example": false
          }
        }
      },
      "collaboration-groups_CollaborationGroupMove": {
        "type": "object",
        "properties": {
          "newParentId": {
            "type": "integer",
            "format": "int64",
            "example": 10
          }
        },
        "required": [
          "newParentId"
        ]
      },
      "collaboration-groups_LabelCreate": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Important",
            "minLength": 1
          },
          "domainId": {
            "type": "integer",
            "format": "int32",
            "example": 100
          },
          "color": {
            "type": "string",
            "example": "#FF0000"
          }
        },
        "required": [
          "domainId",
          "name"
        ]
      },
      "collaboration-groups_CollaborationGroupCreate": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Region North",
            "minLength": 1
          },
          "domainId": {
            "type": "integer",
            "format": "int32",
            "example": 100
          },
          "parentId": {
            "type": "integer",
            "format": "int64",
            "example": 10
          },
          "labelId": {
            "type": "integer",
            "format": "int64",
            "example": 5
          },
          "domoDashboardId": {
            "type": "string",
            "example": "abc12",
            "maxLength": 5,
            "minLength": 5,
            "pattern": "^[a-zA-Z0-9]*$"
          }
        },
        "required": [
          "domainId",
          "labelId",
          "name"
        ]
      },
      "collaboration-groups_CollaborationGroupGroupDTO": {
        "type": "object",
        "properties": {
          "collaborationGroupId": {
            "type": "integer",
            "format": "int64",
            "example": 1
          },
          "groupIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "minItems": 1
          }
        },
        "required": [
          "collaborationGroupId",
          "groupIds"
        ]
      },
      "collaboration-groups_CollaborationGroupGroup": {
        "type": "object",
        "properties": {
          "collaborationGroupId": {
            "type": "integer",
            "format": "int64",
            "example": 1
          },
          "groupIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          }
        }
      },
      "collaboration-groups_CollaborationGroupEmployeeDTO": {
        "type": "object",
        "properties": {
          "collaborationGroupId": {
            "type": "integer",
            "format": "int64",
            "example": 1
          },
          "employeeIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "minItems": 1
          }
        },
        "required": [
          "collaborationGroupId",
          "employeeIds"
        ]
      },
      "collaboration-groups_CollaborationGroupEmployee": {
        "type": "object",
        "properties": {
          "collaborationGroupId": {
            "type": "integer",
            "format": "int64",
            "example": 1
          },
          "employeeIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          }
        }
      },
      "collaboration-groups_CollaborationGroupDetails": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": 1
          },
          "name": {
            "type": "string",
            "example": "Region North"
          },
          "groups": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "employees": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "parent": {
            "type": "integer",
            "format": "int64",
            "example": 10
          },
          "children": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "labelId": {
            "type": "integer",
            "format": "int64",
            "example": 5
          },
          "domoDashboardId": {
            "type": "string",
            "example": "abc12"
          },
          "isArchived": {
            "type": "boolean",
            "example": false
          }
        }
      },
      "employee_AgreementPatchRequest": {
        "type": "object",
        "properties": {
          "payroll": {
            "$ref": "#/components/schemas/employee_Payroll"
          }
        }
      },
      "employee_Payroll": {
        "type": "object",
        "properties": {
          "payScheduleId": {
            "type": "string",
            "example": "546"
          }
        }
      },
      "employee_AgreementResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "29339"
          },
          "xrefId": {
            "type": "string",
            "example": "agr-1382"
          },
          "name": {
            "type": "string",
            "example": "John's monthly agreement"
          },
          "payroll": {
            "$ref": "#/components/schemas/employee_Payroll"
          }
        }
      },
      "employee_IntegrationPayPeriod": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string",
            "format": "date"
          },
          "end": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "employee_IntegrationPayPeriodResponse": {
        "type": "object",
        "properties": {
          "payrollSystemId": {
            "type": "integer",
            "format": "int32"
          },
          "payPeriod": {
            "type": "null",
            "$ref": "#/components/schemas/employee_IntegrationPayPeriod",
            "description": "The previous pay period relative to the current date. Null if no previous period exists (e.g., this is the first pay cycle or the schedule hasn't started yet)."
          },
          "employeeIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "uniqueItems": true
          },
          "unitIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "uniqueItems": true
          }
        }
      },
      "employee_EmployeeIntegrationResponse": {
        "type": "object",
        "properties": {
          "employeeId": {
            "type": "integer",
            "format": "int64"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "badgeNo": {
            "type": "string"
          }
        }
      },
      "forecast-calculation_OptimalHeadcountDatasetIntegrationRequest": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string",
            "format": "date-time",
            "example": "2024-01-15T08:00:00Z"
          },
          "end": {
            "type": "string",
            "format": "date-time",
            "example": "2024-01-15T18:00:00Z"
          },
          "dataType": {
            "type": "string",
            "enum": [
              "ACTUAL",
              "BUDGET",
              "FORECAST"
            ],
            "example": "FORECAST"
          }
        },
        "required": [
          "dataType",
          "end",
          "start"
        ]
      },
      "forecast-calculation_AggregatedBlockLocalTime": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string",
            "format": "date-time",
            "example": "2024-01-15T08:00:00Z"
          },
          "end": {
            "type": "string",
            "format": "date-time",
            "example": "2024-01-15T08:15:00Z"
          },
          "value": {
            "type": "number",
            "format": "double",
            "example": 12.5
          },
          "editedValue": {
            "type": "number",
            "format": "double",
            "example": 13
          }
        }
      },
      "forecast-calculation_CalculatedDatasetResponse": {
        "type": "object",
        "properties": {
          "dataset": {
            "$ref": "#/components/schemas/forecast-calculation_DatasetAggregatedBlockLocalTime"
          },
          "id": {
            "type": "string",
            "example": "calc-7f3c2a1b"
          },
          "src": {
            "type": "string",
            "example": "FORECAST"
          },
          "groupId": {
            "type": "integer",
            "format": "int32",
            "example": 42
          }
        }
      },
      "forecast-calculation_DatasetAggregatedBlockLocalTime": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-calculation_AggregatedBlockLocalTime"
            }
          },
          "summaryValue": {
            "type": "number",
            "format": "double",
            "example": 100.5
          },
          "editedSummaryValue": {
            "type": "number",
            "format": "double",
            "example": 105
          },
          "resolution": {
            "type": "integer",
            "format": "int32",
            "example": 5
          }
        }
      },
      "forecast-calculation_CalculateEventEffectsRequest": {
        "type": "object",
        "properties": {
          "startTime": {
            "type": "string",
            "format": "date-time",
            "example": "2024-01-15T08:00:00Z"
          },
          "endTime": {
            "type": "string",
            "format": "date-time",
            "example": "2024-01-15T18:00:00Z"
          },
          "externalConfigurationId": {
            "type": "string",
            "example": "config-123",
            "minLength": 1
          },
          "externalVariableId": {
            "type": "string",
            "example": "var-456",
            "minLength": 1
          },
          "externalUnitId": {
            "type": "string",
            "example": "unit-789",
            "minLength": 1
          },
          "externalSectionId": {
            "type": "string",
            "example": "section-001"
          }
        },
        "required": [
          "endTime",
          "externalConfigurationId",
          "externalUnitId",
          "externalVariableId",
          "startTime"
        ]
      },
      "forecast-calculation_Event": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "evt-7f3c2a1b"
          },
          "startTime": {
            "type": "string",
            "format": "date-time",
            "example": "2024-01-15T08:00:00Z"
          },
          "endTime": {
            "type": "string",
            "format": "date-time",
            "example": "2024-01-15T18:00:00Z"
          },
          "eventCategoryId": {
            "type": "string",
            "example": "cat-001"
          },
          "groupId": {
            "type": "integer",
            "format": "int32",
            "example": 42
          },
          "eventEffects": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-calculation_EventEffect"
            }
          },
          "comment": {
            "type": "string",
            "example": "Marketing campaign launch"
          },
          "active": {
            "type": "boolean",
            "example": true
          },
          "hierarchyEnabled": {
            "type": "boolean",
            "example": false
          }
        }
      },
      "forecast-calculation_EventEffect": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "eff-7f3c2a1b"
          },
          "eventId": {
            "type": "string",
            "example": "evt-7f3c2a1b"
          },
          "forecastConfigurationId": {
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "type": {
            "type": "string",
            "example": "RELATIVE"
          },
          "value": {
            "type": "number",
            "format": "double",
            "example": 1.25
          }
        }
      },
      "forecast-calculation_AggregatedBlock": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string",
            "format": "date-time",
            "example": "2024-01-15T08:00:00Z"
          },
          "end": {
            "type": "string",
            "format": "date-time",
            "example": "2024-01-15T08:15:00Z"
          },
          "value": {
            "type": "number",
            "format": "double",
            "example": 12.5
          },
          "editedValue": {
            "type": "number",
            "format": "double",
            "example": 13
          },
          "runId": {
            "type": "string",
            "example": "run-7f3c2a1b"
          },
          "runTimeStamp": {
            "type": "string",
            "format": "date-time",
            "example": "2024-01-15T07:55:00Z"
          }
        }
      },
      "forecast-calculation_DatasetAggregatedBlock": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-calculation_AggregatedBlock"
            }
          },
          "summaryValue": {
            "type": "number",
            "format": "double",
            "example": 100.5
          },
          "editedSummaryValue": {
            "type": "number",
            "format": "double",
            "example": 105
          },
          "resolution": {
            "type": "integer",
            "format": "int32",
            "example": 5
          }
        }
      },
      "forecast-calculation_OptimalHeadcountDatasetByGroupResponse": {
        "type": "object",
        "properties": {
          "optimalHeadcountId": {
            "type": "string",
            "example": "ohc-7f3c2a1b"
          },
          "shiftTypeId": {
            "type": "integer",
            "format": "int32",
            "example": 5
          },
          "shiftTypeIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "datasetsByGroupId": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/forecast-calculation_DatasetAggregatedBlock"
            }
          }
        }
      },
      "forecast-data-ingestion_ExternalShiftType": {
        "type": "object",
        "properties": {
          "externalShiftTypeId": {
            "type": "string",
            "example": "EXTERNAL_SHIFT_ID"
          },
          "amount": {
            "type": "integer",
            "format": "int32",
            "example": 10,
            "maximum": 100000
          }
        },
        "required": [
          "amount",
          "externalShiftTypeId"
        ]
      },
      "forecast-data-ingestion_ExternalStaticRule": {
        "type": "object",
        "properties": {
          "weekdays": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32",
              "enum": [
                0,
                1,
                2,
                3,
                4,
                5,
                6
              ]
            },
            "maxItems": 7,
            "minItems": 1
          },
          "repeatPeriod": {
            "type": "integer",
            "format": "int32",
            "example": 1,
            "maximum": 100
          },
          "shiftType": {
            "$ref": "#/components/schemas/forecast-data-ingestion_ExternalShiftType"
          },
          "startTime": {
            "type": "string",
            "example": "12:00"
          },
          "endTime": {
            "type": "string",
            "example": "13:00"
          },
          "startDate": {
            "type": "string",
            "format": "date",
            "example": "2022-01-13"
          },
          "endDate": {
            "type": "string",
            "format": "date",
            "example": "2022-02-20"
          },
          "comment": {
            "type": "string",
            "example": "Holiday closure"
          }
        },
        "required": [
          "endTime",
          "repeatPeriod",
          "shiftType",
          "startDate",
          "startTime",
          "weekdays"
        ]
      },
      "forecast-data-ingestion_ExternalDynamicRule": {
        "type": "object",
        "properties": {
          "forecastExternalVariableId": {
            "type": "string",
            "example": "EXTERNAL_VAR"
          },
          "amount": {
            "type": "integer",
            "format": "int64",
            "example": 100,
            "maximum": 99999999999
          },
          "weekdays": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32",
              "enum": [
                0,
                1,
                2,
                3,
                4,
                5,
                6
              ]
            },
            "maxItems": 7,
            "minItems": 1
          },
          "startTime": {
            "type": "string",
            "example": "12:00"
          },
          "endTime": {
            "type": "string",
            "example": "13:00"
          },
          "shiftTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-data-ingestion_ExternalShiftType"
            },
            "minItems": 1
          }
        },
        "required": [
          "amount",
          "endTime",
          "forecastExternalVariableId",
          "shiftTypes",
          "startTime",
          "weekdays"
        ]
      },
      "forecast-data-ingestion_TargetDataInput": {
        "type": "object",
        "properties": {
          "externalId": {
            "type": "string",
            "example": "target-1",
            "minLength": 1
          },
          "externalUnitId": {
            "type": "string",
            "example": "unit-1",
            "minLength": 1
          },
          "externalSectionId": {
            "type": "string",
            "example": "section-1"
          },
          "targetPayload": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-data-ingestion_TargetDataPayload"
            }
          }
        },
        "required": [
          "externalId",
          "externalUnitId"
        ]
      },
      "forecast-data-ingestion_TargetDataInputList": {
        "type": "object",
        "properties": {
          "requests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-data-ingestion_TargetDataInput"
            }
          }
        },
        "required": [
          "requests"
        ]
      },
      "forecast-data-ingestion_TargetDataPayload": {
        "type": "object",
        "properties": {
          "rangeType": {
            "type": "string",
            "enum": [
              "EXACT",
              "NOT_LESS_THAN",
              "NOT_MORE_THAN",
              "BETWEEN"
            ],
            "example": "EXACT"
          },
          "value": {
            "type": "number",
            "format": "double",
            "example": 100
          },
          "fromValue": {
            "type": "number",
            "format": "double",
            "example": 0
          },
          "toValue": {
            "type": "number",
            "format": "double",
            "example": 100
          },
          "date": {
            "type": "string",
            "format": "date",
            "example": "2026-01-15"
          }
        },
        "required": [
          "date",
          "rangeType"
        ]
      },
      "forecast-data-ingestion_DataProviderInput": {
        "type": "object",
        "properties": {
          "externalForecastVariableId": {
            "type": "string",
            "example": "var-1",
            "minLength": 1
          },
          "externalUnitId": {
            "type": "string",
            "example": "unit-1",
            "minLength": 1
          },
          "externalSectionId": {
            "type": "string",
            "example": "section-1"
          },
          "forecastDataPayload": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-data-ingestion_Payload"
            },
            "minItems": 1
          }
        },
        "required": [
          "externalForecastVariableId",
          "externalUnitId",
          "forecastDataPayload"
        ]
      },
      "forecast-data-ingestion_DataProviderInputList": {
        "type": "object",
        "properties": {
          "requests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-data-ingestion_DataProviderInput"
            }
          }
        },
        "required": [
          "requests"
        ]
      },
      "forecast-data-ingestion_Payload": {
        "type": "object",
        "properties": {
          "data": {
            "type": "number",
            "format": "double",
            "example": 100
          },
          "timestamp": {
            "type": "string",
            "example": "2026-01-15T12:00:00Z"
          }
        },
        "required": [
          "data",
          "timestamp"
        ]
      },
      "forecast-data-ingestion_ForecastPredictionDataInput": {
        "type": "object",
        "properties": {
          "externalForecastVariableId": {
            "type": "string",
            "example": "var-1",
            "minLength": 1
          },
          "externalForecastConfigurationId": {
            "type": "string",
            "example": "config-1",
            "minLength": 1
          },
          "externalUnitId": {
            "type": "string",
            "example": "unit-1",
            "minLength": 1
          },
          "externalSectionId": {
            "type": "string",
            "example": "section-1"
          },
          "runIdentifier": {
            "type": "string",
            "example": "run-1",
            "minLength": 1
          },
          "runTimestamp": {
            "type": "string",
            "format": "date-time",
            "example": "2026-01-15T12:00:00Z"
          },
          "forecastDataPayload": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-data-ingestion_Payload"
            },
            "minItems": 1
          }
        },
        "required": [
          "externalForecastConfigurationId",
          "externalForecastVariableId",
          "externalUnitId",
          "forecastDataPayload",
          "runIdentifier",
          "runTimestamp"
        ]
      },
      "forecast-data-ingestion_ForecastPredictionIntegrationList": {
        "type": "object",
        "properties": {
          "requests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-data-ingestion_ForecastPredictionDataInput"
            }
          }
        },
        "required": [
          "requests"
        ]
      },
      "forecast-data-ingestion_ForecastDataModifier": {
        "type": "object",
        "properties": {
          "startTime": {
            "type": "string",
            "format": "date-time",
            "example": "2026-01-15T12:00:00Z"
          },
          "endTime": {
            "type": "string",
            "format": "date-time",
            "example": "2026-01-15T13:00:00Z"
          },
          "percentageModification": {
            "type": "number",
            "format": "double",
            "example": 10
          },
          "newValueForPeriod": {
            "type": "number",
            "format": "double",
            "example": 120
          }
        },
        "required": [
          "endTime",
          "startTime"
        ]
      },
      "forecast-data-ingestion_TargetDataOutput": {
        "type": "object",
        "properties": {
          "externalId": {
            "type": "string",
            "example": "target-1"
          },
          "externalUnitId": {
            "type": "string",
            "example": "unit-1"
          },
          "externalSectionId": {
            "type": "string",
            "example": "section-1"
          },
          "targetPayload": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-data-ingestion_TargetDataPayload"
            }
          }
        }
      },
      "forecast-data-ingestion_PaginatedResultListExternalStaticRule": {
        "type": "object",
        "properties": {
          "result": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-data-ingestion_ExternalStaticRule"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/forecast-data-ingestion_Pagination"
          }
        }
      },
      "forecast-data-ingestion_Pagination": {
        "type": "object",
        "properties": {
          "totalCount": {
            "type": "integer",
            "format": "int64"
          },
          "currentPage": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "forecast-data-ingestion_DataIngestionOutput": {
        "type": "object",
        "properties": {
          "externalForecastVariableId": {
            "type": "string",
            "example": "var-1"
          },
          "externalUnitId": {
            "type": "string",
            "example": "unit-1"
          },
          "externalSectionId": {
            "type": "string",
            "example": "section-1"
          },
          "dataPayLoad": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-data-ingestion_ForecastDataPayload"
            },
            "writeOnly": true
          },
          "dataPayload": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-data-ingestion_ForecastDataPayload"
            }
          }
        }
      },
      "forecast-data-ingestion_ForecastDataPayload": {
        "type": "object",
        "properties": {
          "data": {
            "type": "number",
            "format": "double",
            "example": 100
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "example": "2026-01-15T12:00:00Z"
          }
        },
        "required": [
          "data",
          "timestamp"
        ]
      },
      "forecast-data-ingestion_CalculatedForecast": {
        "type": "object",
        "properties": {
          "externalForecastConfigurationId": {
            "type": "string",
            "example": "config-1"
          },
          "externalUnitId": {
            "type": "string",
            "example": "unit-1"
          },
          "externalSectionId": {
            "type": "string",
            "example": "section-1"
          },
          "dataPayLoad": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-data-ingestion_CalculatedForecastData"
            },
            "writeOnly": true
          },
          "dataPayload": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-data-ingestion_CalculatedForecastData"
            }
          }
        }
      },
      "forecast-data-ingestion_CalculatedForecastData": {
        "type": "object",
        "properties": {
          "data": {
            "type": "number",
            "format": "double",
            "example": 100
          },
          "editedData": {
            "type": "number",
            "format": "double",
            "example": 105
          },
          "startTime": {
            "type": "string",
            "format": "date-time",
            "example": "2026-01-15T12:00:00Z"
          },
          "endTime": {
            "type": "string",
            "format": "date-time",
            "example": "2026-01-15T13:00:00Z"
          }
        }
      },
      "forecast-data-ingestion_AggregatedData": {
        "type": "object",
        "properties": {
          "groupId": {
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "forecastVariableId": {
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "startTime": {
            "type": "string",
            "format": "date-time",
            "example": "2026-01-15T12:00:00Z"
          },
          "endTime": {
            "type": "string",
            "format": "date-time",
            "example": "2026-01-15T13:00:00Z"
          },
          "data": {
            "type": "number",
            "format": "double",
            "example": 100
          },
          "skip": {
            "type": "boolean",
            "example": false
          },
          "dataType": {
            "type": "string",
            "enum": [
              "ACTUAL",
              "PREDICTED",
              "FORECAST"
            ],
            "example": "ACTUAL"
          }
        }
      },
      "forecast-data-ingestion_CalculatedVariableOutput": {
        "type": "object",
        "properties": {
          "extCalculatedVarId": {
            "type": "string",
            "example": "calc-var-1"
          },
          "externalUnitId": {
            "type": "string",
            "example": "unit-1"
          },
          "externalSectionId": {
            "type": "string",
            "example": "section-1"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-data-ingestion_ForecastDataPayload"
            }
          }
        }
      },
      "forecast-events_EventEffect": {
        "type": "object",
        "properties": {
          "forecastConfigurationId": {
            "type": "integer",
            "format": "int32",
            "example": 42
          },
          "type": {
            "type": "string",
            "enum": [
              "RELATIVE",
              "CLOSED",
              "ABSOLUTE",
              "AUTOMATIC"
            ],
            "example": "RELATIVE"
          },
          "value": {
            "type": "number",
            "format": "double",
            "example": 1.25
          }
        },
        "required": [
          "forecastConfigurationId",
          "type",
          "value"
        ]
      },
      "forecast-events_UpdateEventIntegrationRequest": {
        "type": "object",
        "properties": {
          "startTime": {
            "type": "string",
            "format": "date-time",
            "example": "2026-05-04T08:00:00Z"
          },
          "endTime": {
            "type": "string",
            "format": "date-time",
            "example": "2026-05-04T18:00:00Z"
          },
          "eventCategoryId": {
            "type": "string",
            "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "minLength": 1
          },
          "comment": {
            "type": "string",
            "example": "Local football match",
            "maxLength": 255,
            "minLength": 0
          },
          "active": {
            "type": "boolean",
            "example": true
          },
          "id": {
            "type": "string",
            "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
          },
          "eventEffects": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-events_EventEffect"
            },
            "minItems": 1
          }
        },
        "required": [
          "endTime",
          "eventCategoryId",
          "eventEffects",
          "startTime"
        ]
      },
      "forecast-events_Event": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
          },
          "startTime": {
            "type": "string",
            "format": "date-time",
            "example": "2026-05-04T08:00:00Z"
          },
          "endTime": {
            "type": "string",
            "format": "date-time",
            "example": "2026-05-04T18:00:00Z"
          },
          "eventCategoryId": {
            "type": "string",
            "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "minLength": 1
          },
          "parentEvent": {
            "required": [
              "endTime",
              "eventCategoryId",
              "startTime"
            ]
          },
          "groupId": {
            "type": "integer",
            "format": "int32",
            "example": 12345
          },
          "eventEffects": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-events_EventEffect"
            },
            "minItems": 1
          },
          "eventEffectValue": {
            "type": "number",
            "format": "double",
            "example": 1.25
          },
          "comment": {
            "type": "string",
            "example": "Local football match",
            "maxLength": 255,
            "minLength": 0
          },
          "active": {
            "type": "boolean",
            "example": true
          },
          "hierarchyEnabled": {
            "type": "boolean",
            "example": true
          }
        },
        "required": [
          "endTime",
          "eventCategoryId",
          "eventEffects",
          "startTime"
        ]
      },
      "forecast-events_IntegrationEvent": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
          },
          "startTime": {
            "type": "string",
            "format": "date-time",
            "example": "2026-05-04T08:00:00Z"
          },
          "endTime": {
            "type": "string",
            "format": "date-time",
            "example": "2026-05-04T18:00:00Z"
          },
          "eventCategoryId": {
            "type": "string",
            "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "minLength": 1
          },
          "parentEvent": {
            "$ref": "#/components/schemas/forecast-events_Event"
          },
          "groupId": {
            "type": "integer",
            "format": "int32",
            "example": 12345
          },
          "eventEffects": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/forecast-events_EventEffect"
            },
            "minItems": 1
          },
          "eventEffectValue": {
            "type": "number",
            "format": "double",
            "example": 1.25
          },
          "comment": {
            "type": "string",
            "example": "Local football match",
            "maxLength": 255,
            "minLength": 0
          },
          "active": {
            "type": "boolean",
            "example": true
          },
          "hierarchyEnabled": {
            "type": "boolean",
            "example": true
          }
        },
        "required": [
          "endTime",
          "eventCategoryId",
          "eventEffects",
          "startTime"
        ]
      },
      "forecast-events_EventCategory": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
          },
          "type": {
            "type": "string",
            "enum": [
              "CUSTOM",
              "BANK_HOLIDAY"
            ],
            "example": "CUSTOM"
          },
          "active": {
            "type": "boolean",
            "example": true
          },
          "hasEvents": {
            "type": "boolean",
            "example": true
          },
          "hasAutomaticEffect": {
            "type": "boolean",
            "example": false
          },
          "name": {
            "type": "string",
            "example": "Local football match",
            "maxLength": 50,
            "minLength": 0
          },
          "defaultEventEffectType": {
            "type": "string",
            "enum": [
              "RELATIVE",
              "CLOSED",
              "ABSOLUTE",
              "AUTOMATIC"
            ],
            "example": "RELATIVE"
          },
          "defaultEventEffectValue": {
            "type": "number",
            "format": "double",
            "example": 1.25
          }
        },
        "required": [
          "active",
          "name",
          "type"
        ]
      },
      "forecast-events_GroupHierarchyEventsExternalRequest": {
        "type": "object",
        "properties": {
          "externalVariableId": {
            "type": "string",
            "example": "external-var-123",
            "minLength": 1
          },
          "externalConfigurationId": {
            "type": "string",
            "example": "external-config-456",
            "minLength": 1
          },
          "startTime": {
            "type": "string",
            "format": "date-time",
            "example": "2026-05-04T08:00:00Z"
          },
          "endTime": {
            "type": "string",
            "format": "date-time",
            "example": "2026-05-04T18:00:00Z"
          }
        },
        "required": [
          "endTime",
          "externalConfigurationId",
          "externalVariableId",
          "startTime"
        ]
      },
      "forecast-events_CreateEventIntegrationRequest": {
        "type": "object",
        "properties": {
          "startTime": {
            "type": "string",
            "format": "date-time",
            "example": "2026-05-04T08:00:00Z"
          },
          "endTime": {
            "type": "string",
            "format": "date-time",
            "example": "2026-05-04T18:00:00Z"
          },
          "eventCategoryId": {
            "type": "string",
            "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "minLength": 1
          },
          "comment": {
            "type": "string",
            "example": "Local football match",
            "maxLength": 255,
            "minLength": 0
          },
          "active": {
            "type": "boolean",
            "example": true
          },
          "hierarchyEnabled": {
            "type": "boolean",
            "example": true
          },
          "groupIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "minItems": 1
          },
          "forecastConfigurationIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "minItems": 1
          },
          "eventEffectType": {
            "type": "string",
            "enum": [
              "RELATIVE",
              "CLOSED",
              "ABSOLUTE",
              "AUTOMATIC"
            ],
            "example": "RELATIVE"
          },
          "eventEffectValue": {
            "type": "number",
            "format": "double",
            "example": 1.25
          }
        },
        "required": [
          "endTime",
          "eventCategoryId",
          "eventEffectType",
          "forecastConfigurationIds",
          "groupIds",
          "startTime"
        ]
      },
      "forecast-settings_OptimalHeadcount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "1f8e8b3c-9a2d-4b8e-9a2d-1f8e8b3c9a2d"
          },
          "name": {
            "type": "string",
            "example": "Optimal headcount",
            "maxLength": 50,
            "minLength": 0
          },
          "description": {
            "type": "string",
            "example": "Optimal headcount description",
            "maxLength": 512,
            "minLength": 0
          },
          "forecastVariableId": {
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "forecastVariableType": {
            "type": "string",
            "example": "headcount"
          },
          "forecastConfigurationId": {
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "calculatedVariableId": {
            "type": "string",
            "format": "uuid",
            "example": "2f8e8b3c-9a2d-4b8e-9a2d-2f8e8b3c9a2d"
          },
          "externalId": {
            "type": "string",
            "example": "external-id-1",
            "maxLength": 128,
            "minLength": 0,
            "pattern": "[A-Za-z0-9_\\-]+"
          },
          "shiftTypeIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "aggregationType": {
            "type": "string",
            "enum": [
              "SUM",
              "AVERAGE",
              "HOURLY_SUM"
            ],
            "example": "SUM"
          },
          "variableType": {},
          "src": {
            "type": "string",
            "example": "optimalHeadcount"
          }
        },
        "required": [
          "aggregationType",
          "name"
        ]
      },
      "labor-standards_DynamicConfiguration": {
        "type": "object",
        "properties": {
          "startValue": {
            "type": "number",
            "format": "double",
            "example": 0
          },
          "endValue": {
            "type": "number",
            "format": "double",
            "example": 100
          },
          "headcount": {
            "type": "number",
            "format": "double",
            "example": 5
          }
        },
        "required": [
          "endValue",
          "headcount",
          "startValue"
        ]
      },
      "labor-standards_IntegrationDynamicRule": {
        "allOf": [
          {
            "$ref": "#/components/schemas/labor-standards_IntegrationRule"
          },
          {
            "type": "object",
            "properties": {
              "externalForecastConfigurationId": {
                "type": "string",
                "example": "external-fc-1",
                "minLength": 1
              },
              "configurations": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/labor-standards_DynamicConfiguration"
                },
                "minItems": 1
              }
            }
          }
        ],
        "required": [
          "configurations",
          "externalForecastConfigurationId",
          "type"
        ]
      },
      "labor-standards_IntegrationLaborStandard": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "abc123"
          },
          "domainGroupId": {
            "type": "integer",
            "format": "int32",
            "example": 100
          },
          "name": {
            "type": "string",
            "example": "Example labor standard",
            "minLength": 1
          },
          "externalOptimalHeadcountId": {
            "type": "string",
            "example": "external-headcount-1",
            "minLength": 1
          },
          "groupIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "minItems": 1
          },
          "rules": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/labor-standards_IntegrationDynamicRule"
                },
                {
                  "$ref": "#/components/schemas/labor-standards_IntegrationLimitRule"
                },
                {
                  "$ref": "#/components/schemas/labor-standards_IntegrationLinearRule"
                },
                {
                  "$ref": "#/components/schemas/labor-standards_IntegrationStaticRule"
                }
              ]
            },
            "minItems": 1
          },
          "roundingMethod": {
            "type": "string",
            "enum": [
              "UP",
              "DOWN",
              "NEAREST",
              "NONE"
            ],
            "example": "UP"
          }
        },
        "required": [
          "externalOptimalHeadcountId",
          "groupIds",
          "name",
          "roundingMethod",
          "rules"
        ]
      },
      "labor-standards_IntegrationLimitRule": {
        "allOf": [
          {
            "$ref": "#/components/schemas/labor-standards_IntegrationRule"
          },
          {
            "type": "object",
            "properties": {
              "configurations": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/labor-standards_LimitConfiguration"
                },
                "minItems": 1
              }
            }
          }
        ],
        "required": [
          "configurations",
          "type"
        ]
      },
      "labor-standards_IntegrationLinearConfiguration": {
        "type": "object",
        "properties": {
          "productivity": {
            "type": "number",
            "format": "double",
            "example": 10
          },
          "externalForecastConfigurationId": {
            "type": "string",
            "example": "external-fc-1",
            "minLength": 1
          }
        },
        "required": [
          "externalForecastConfigurationId",
          "productivity"
        ]
      },
      "labor-standards_IntegrationLinearRule": {
        "allOf": [
          {
            "$ref": "#/components/schemas/labor-standards_IntegrationRule"
          },
          {
            "type": "object",
            "properties": {
              "productivityMethod": {
                "type": "string",
                "enum": [
                  "UNITS_PER_HOUR",
                  "MINUTES_PER_UNIT"
                ],
                "example": "UNITS_PER_HOUR"
              },
              "configurations": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/labor-standards_IntegrationLinearConfiguration"
                },
                "minItems": 1
              }
            }
          }
        ],
        "required": [
          "configurations",
          "productivityMethod",
          "type"
        ]
      },
      "labor-standards_IntegrationRule": {
        "type": "object",
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "id": {
            "type": "string",
            "example": "rule-1"
          },
          "type": {
            "type": "string",
            "enum": [
              "LINEAR",
              "LIMIT",
              "DYNAMIC",
              "STATIC"
            ],
            "example": "LINEAR"
          }
        },
        "required": [
          "type"
        ]
      },
      "labor-standards_IntegrationStaticRule": {
        "allOf": [
          {
            "$ref": "#/components/schemas/labor-standards_IntegrationRule"
          },
          {
            "type": "object",
            "properties": {
              "configurations": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/labor-standards_StaticConfiguration"
                },
                "minItems": 1
              }
            }
          }
        ],
        "required": [
          "configurations",
          "type"
        ]
      },
      "labor-standards_LimitConfiguration": {
        "type": "object",
        "properties": {
          "useOpeningHours": {
            "type": "boolean",
            "example": true
          },
          "startTime": {
            "type": "string",
            "example": "08:00"
          },
          "endTime": {
            "type": "string",
            "example": "17:00"
          },
          "startOffset": {
            "type": "integer",
            "format": "int32",
            "example": 0
          },
          "endOffset": {
            "type": "integer",
            "format": "int32",
            "example": 0
          },
          "weekdays": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32",
              "enum": [
                0,
                1,
                2,
                3,
                4,
                5,
                6
              ]
            },
            "minItems": 1
          },
          "type": {
            "type": "string",
            "enum": [
              "MIN",
              "MAX"
            ],
            "example": "MIN"
          },
          "headcount": {
            "type": "number",
            "format": "double",
            "example": 5
          }
        },
        "required": [
          "headcount",
          "type",
          "useOpeningHours",
          "weekdays"
        ]
      },
      "labor-standards_StaticConfiguration": {
        "type": "object",
        "properties": {
          "useOpeningHours": {
            "type": "boolean",
            "example": true
          },
          "startTime": {
            "type": "string",
            "example": "08:00"
          },
          "endTime": {
            "type": "string",
            "example": "17:00"
          },
          "startOffset": {
            "type": "integer",
            "format": "int32",
            "example": 0
          },
          "endOffset": {
            "type": "integer",
            "format": "int32",
            "example": 0
          },
          "weekdays": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32",
              "enum": [
                0,
                1,
                2,
                3,
                4,
                5,
                6
              ]
            },
            "minItems": 1
          },
          "headcount": {
            "type": "number",
            "format": "double",
            "example": 5
          }
        },
        "required": [
          "headcount",
          "useOpeningHours",
          "weekdays"
        ]
      },
      "labor-standards_DynamicRule": {
        "allOf": [
          {
            "$ref": "#/components/schemas/labor-standards_Rule"
          },
          {
            "type": "object",
            "properties": {
              "forecastConfigurationId": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "configurations": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/labor-standards_DynamicConfiguration"
                },
                "minItems": 1
              }
            }
          }
        ],
        "required": [
          "configurations",
          "forecastConfigurationId",
          "type"
        ]
      },
      "labor-standards_LaborStandard": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "abc123"
          },
          "domainGroupId": {
            "type": "integer",
            "format": "int32",
            "example": 100
          },
          "name": {
            "type": "string",
            "example": "Example labor standard",
            "minLength": 1
          },
          "optimalHeadcountId": {
            "type": "string",
            "example": "headcount-1",
            "minLength": 1
          },
          "groupIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "minItems": 1
          },
          "rules": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/labor-standards_DynamicRule"
                },
                {
                  "$ref": "#/components/schemas/labor-standards_LimitRule"
                },
                {
                  "$ref": "#/components/schemas/labor-standards_LinearRule"
                },
                {
                  "$ref": "#/components/schemas/labor-standards_StaticRule"
                }
              ]
            },
            "minItems": 1
          },
          "roundingMethod": {
            "type": "string",
            "enum": [
              "UP",
              "DOWN",
              "NEAREST",
              "NONE"
            ],
            "example": "UP"
          }
        },
        "required": [
          "groupIds",
          "name",
          "optimalHeadcountId",
          "roundingMethod",
          "rules"
        ]
      },
      "labor-standards_LimitRule": {
        "allOf": [
          {
            "$ref": "#/components/schemas/labor-standards_Rule"
          },
          {
            "type": "object",
            "properties": {
              "configurations": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/labor-standards_LimitConfiguration"
                },
                "minItems": 1
              }
            }
          }
        ],
        "required": [
          "configurations",
          "type"
        ]
      },
      "labor-standards_LinearConfiguration": {
        "type": "object",
        "properties": {
          "productivity": {
            "type": "number",
            "format": "double",
            "example": 10
          },
          "forecastConfigurationId": {
            "type": "integer",
            "format": "int32",
            "example": 1
          }
        },
        "required": [
          "forecastConfigurationId",
          "productivity"
        ]
      },
      "labor-standards_LinearRule": {
        "allOf": [
          {
            "$ref": "#/components/schemas/labor-standards_Rule"
          },
          {
            "type": "object",
            "properties": {
              "productivityMethod": {
                "type": "string",
                "enum": [
                  "UNITS_PER_HOUR",
                  "MINUTES_PER_UNIT"
                ],
                "example": "UNITS_PER_HOUR"
              },
              "configurations": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/labor-standards_LinearConfiguration"
                },
                "minItems": 1
              }
            }
          }
        ],
        "required": [
          "configurations",
          "productivityMethod",
          "type"
        ]
      },
      "labor-standards_Rule": {
        "type": "object",
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "id": {
            "type": "string",
            "example": "rule-1"
          },
          "type": {
            "type": "string",
            "enum": [
              "LINEAR",
              "LIMIT",
              "DYNAMIC",
              "STATIC"
            ],
            "example": "LINEAR"
          }
        },
        "required": [
          "type"
        ]
      },
      "labor-standards_StaticRule": {
        "allOf": [
          {
            "$ref": "#/components/schemas/labor-standards_Rule"
          },
          {
            "type": "object",
            "properties": {
              "configurations": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/labor-standards_StaticConfiguration"
                },
                "minItems": 1
              }
            }
          }
        ],
        "required": [
          "configurations",
          "type"
        ]
      },
      "labor-standards_LimitConfigurationsByGroupResponse": {
        "type": "object",
        "properties": {
          "optimalHeadcountId": {
            "type": "string",
            "example": "headcount-1"
          },
          "shiftTypeId": {
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "shiftTypeIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "limitConfigurationsByGroupId": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/labor-standards_ResolvedLimitConfiguration"
              }
            }
          }
        }
      },
      "labor-standards_ResolvedLimitConfiguration": {
        "type": "object",
        "properties": {
          "useOpeningHours": {
            "type": "boolean",
            "example": true
          },
          "startTime": {
            "type": "string",
            "example": "08:00"
          },
          "endTime": {
            "type": "string",
            "example": "17:00"
          },
          "startOffset": {
            "type": "integer",
            "format": "int32",
            "example": 0
          },
          "endOffset": {
            "type": "integer",
            "format": "int32",
            "example": 0
          },
          "weekdays": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32",
              "enum": [
                0,
                1,
                2,
                3,
                4,
                5,
                6
              ]
            },
            "minItems": 1
          },
          "type": {
            "type": "string",
            "enum": [
              "MIN",
              "MAX"
            ],
            "example": "MIN"
          },
          "headcount": {
            "type": "number",
            "format": "double",
            "example": 5
          },
          "start": {
            "type": "string",
            "example": "2026-01-01T08:00:00"
          },
          "end": {
            "type": "string",
            "example": "2026-01-01T17:00:00"
          }
        },
        "required": [
          "headcount",
          "type",
          "useOpeningHours",
          "weekdays"
        ]
      },
      "mapping_ValidationError": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "example": "externalValue"
          },
          "message": {
            "type": "string",
            "example": "must not be blank"
          },
          "severity": {
            "type": "string",
            "example": "ERROR"
          },
          "localisedMessage": {
            "type": "string",
            "example": "External value must not be blank"
          },
          "groupingMessage": {
            "type": "string",
            "example": "validation"
          },
          "additionalErrorParameters": {
            "type": "object",
            "additionalProperties": {}
          }
        }
      },
      "mapping_MappingExternalValueRequest": {
        "type": "object",
        "properties": {
          "externalValue": {
            "type": "string",
            "example": "ext-abc-001",
            "maxLength": 256,
            "minLength": 1
          }
        },
        "required": [
          "externalValue"
        ]
      },
      "mapping_MappingResponse": {
        "type": "object",
        "properties": {
          "mappingType": {
            "type": "string",
            "example": "GROUP_ID"
          },
          "id": {
            "type": "string",
            "example": "5f9a8c6d-1e2b-3c4d-5e6f-7a8b9c0d1e2f"
          },
          "quinyxValue": {
            "type": "string",
            "example": "1234"
          },
          "externalValue": {
            "type": "string",
            "example": "ext-abc-001"
          },
          "domainId": {
            "type": "integer",
            "format": "int32",
            "example": 1
          }
        }
      },
      "mapping_MappingRequest": {
        "type": "object",
        "properties": {
          "quinyxValue": {
            "type": "string",
            "example": "1234",
            "maxLength": 256,
            "minLength": 1
          },
          "externalValue": {
            "type": "string",
            "example": "ext-abc-001",
            "maxLength": 256,
            "minLength": 1
          },
          "mappingType": {
            "type": "string",
            "enum": [
              "GROUP_ID",
              "EMPLOYEE_ID",
              "ABSENCE_ID",
              "UNIT_ID",
              "SECTION_ID",
              "ROLE_ID",
              "AGREEMENT_TEMPLATE_ID",
              "AGREEMENT",
              "DISTRICT_ID"
            ],
            "example": "GROUP_ID"
          },
          "parentId": {
            "type": "integer",
            "format": "int32",
            "example": 42
          }
        },
        "required": [
          "externalValue",
          "quinyxValue"
        ]
      },
      "mapping_MappingValues": {
        "type": "object",
        "properties": {
          "quinyxValue": {
            "type": "string",
            "example": "1234",
            "maxLength": 256,
            "minLength": 1
          },
          "externalValue": {
            "type": "string",
            "example": "ext-abc-001",
            "maxLength": 256,
            "minLength": 1
          }
        }
      },
      "opening-hours_OpeningHours": {
        "type": "object",
        "properties": {
          "groupId": {
            "type": "integer",
            "format": "int32",
            "example": 1234
          },
          "name": {
            "type": "string",
            "example": "Saturday hours",
            "maxLength": 50,
            "minLength": 0
          },
          "startDate": {
            "type": "string",
            "format": "date",
            "example": "2023-03-15"
          },
          "endDate": {
            "type": "string",
            "format": "date",
            "example": "2023-04-20"
          },
          "type": {
            "type": "string",
            "enum": [
              "STANDARD",
              "SPECIAL"
            ],
            "example": "STANDARD"
          },
          "weekdayHours": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/opening-hours_WeekdayHours"
            },
            "minItems": 1
          }
        },
        "required": [
          "startDate",
          "type",
          "weekdayHours"
        ]
      },
      "opening-hours_WeekdayHours": {
        "type": "object",
        "properties": {
          "weekday": {
            "type": "integer",
            "format": "int32",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6
            ],
            "example": 1
          },
          "startTime": {
            "type": "string",
            "example": "12:00"
          },
          "endTime": {
            "type": "string",
            "example": "14:00"
          },
          "open": {
            "type": "boolean",
            "example": true
          }
        },
        "required": [
          "endTime",
          "open",
          "startTime",
          "weekday"
        ]
      },
      "opening-hours_OpenPeriod": {
        "type": "object",
        "properties": {
          "open": {
            "type": "string",
            "example": "2023-03-15T08:00:00"
          },
          "close": {
            "type": "string",
            "example": "2023-03-15T20:00:00"
          }
        },
        "required": [
          "close",
          "open"
        ]
      },
      "organisation_AddressDto": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "example": "SE"
          },
          "address": {
            "type": "string",
            "example": "123 Main Street"
          },
          "zipCode": {
            "type": "string",
            "example": "11120"
          },
          "city": {
            "type": "string",
            "example": "Stockholm"
          },
          "municipality": {
            "type": "string",
            "example": "Stockholm Municipality"
          },
          "timeZone": {
            "type": "string",
            "example": "Europe/Stockholm"
          }
        }
      },
      "organisation_DistrictAttributesDto": {
        "type": "object",
        "properties": {
          "districtId": {
            "type": "integer",
            "format": "int32",
            "example": 567
          },
          "managerId": {
            "type": "integer",
            "format": "int32",
            "description": "If not provided will set current value to null.",
            "example": 1234
          }
        }
      },
      "organisation_GroupDetailsResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 170305
          },
          "name": {
            "type": "string",
            "example": "Stockholm Central"
          },
          "groupType": {
            "type": "string",
            "enum": [
              "domain",
              "district",
              "unit",
              "section"
            ],
            "example": "unit"
          },
          "parentGroupId": {
            "type": "integer",
            "format": "int32",
            "example": 170300
          },
          "districtAttributesDto": {
            "$ref": "#/components/schemas/organisation_DistrictAttributesDto"
          },
          "sectionAttributesDto": {
            "$ref": "#/components/schemas/organisation_SectionAttributesDto"
          },
          "unitAttributesDto": {
            "$ref": "#/components/schemas/organisation_UnitAttributesDto"
          }
        }
      },
      "organisation_SectionAttributesDto": {
        "type": "object",
        "properties": {
          "sectionId": {
            "type": "integer",
            "format": "int32",
            "example": 789
          },
          "managerGroupId": {
            "type": "integer",
            "format": "int32",
            "description": "If not provided will set current value to 0.",
            "example": 170305
          },
          "costCentre": {
            "type": "integer",
            "format": "int32",
            "description": "If not provided will set current value to 0.",
            "example": 1001
          },
          "managerId": {
            "type": "integer",
            "format": "int32",
            "description": "If not provided will set current value to 0.",
            "example": 1234
          }
        }
      },
      "organisation_ShiftRulesDto": {
        "type": "object",
        "properties": {
          "maxHoursPerDay": {
            "type": "number",
            "format": "double",
            "example": 8
          },
          "maxHoursPerWeek": {
            "type": "number",
            "format": "double",
            "example": 40
          },
          "minRest": {
            "type": "integer",
            "format": "int32",
            "example": 11
          },
          "numberOfBreaks": {
            "type": "integer",
            "format": "int32",
            "example": 1
          }
        }
      },
      "organisation_UnitAttributesDto": {
        "type": "object",
        "properties": {
          "unitId": {
            "type": "integer",
            "format": "int32",
            "example": 170305
          },
          "address": {
            "$ref": "#/components/schemas/organisation_AddressDto",
            "description": "If not provided will be ignored."
          },
          "costCentre": {
            "type": "integer",
            "format": "int32",
            "description": "If not provided will set current value to 0.",
            "example": 1001
          },
          "managerId": {
            "type": "integer",
            "format": "int32",
            "description": "If not provided will set current value to 0.",
            "example": 1234
          },
          "currency": {
            "type": "string",
            "description": "Currency can not be null",
            "example": "SEK"
          },
          "publishedTo": {
            "type": "string",
            "format": "date",
            "description": "publishedTo, if not provided will set current value to current Date.",
            "example": "2026-04-20"
          },
          "blockPasswordLogin": {
            "type": "boolean",
            "description": "If not explicitly provided will set existing value to false.",
            "example": false
          },
          "shiftRules": {
            "$ref": "#/components/schemas/organisation_ShiftRulesDto",
            "writeOnly": true
          },
          "shiftRulesDto": {
            "$ref": "#/components/schemas/organisation_ShiftRulesDto"
          }
        }
      },
      "organisation_ValidationErrorDto": {
        "type": "object",
        "properties": {
          "field": {
            "type": [
              "string",
              "null"
            ],
            "example": "fieldName"
          },
          "message": {
            "type": "string",
            "example": "error.organisation.forbidden"
          },
          "severity": {
            "type": "string",
            "example": "ERROR"
          },
          "additionalErrorParameters": {
            "type": "object",
            "additionalProperties": {},
            "example": {}
          }
        }
      },
      "organisation_UnauthorizedErrorResponseDto": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "integer",
            "format": "int64",
            "example": 1776706090492
          },
          "path": {
            "type": "string",
            "example": "/v2/organisation/groups/123"
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "example": 401
          },
          "error": {
            "type": "string",
            "example": "invalid_token"
          },
          "requestId": {
            "type": "string",
            "example": "32dbf81e-314892"
          },
          "error_description": {
            "type": "string",
            "example": "Unauthorized exception"
          }
        }
      },
      "organisation_ApiErrorResponseDto": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "string",
            "example": "2026-04-20T18:11:08.182+00:00"
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "example": 404
          },
          "error": {
            "type": "string",
            "example": "Not Found"
          },
          "path": {
            "type": "string",
            "example": "/integration/groups/123"
          }
        }
      },
      "organisation_GroupUpdateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Stockholm Central",
            "minLength": 1
          },
          "parentGroupId": {
            "type": "integer",
            "format": "int32",
            "description": "Required for all group types except 'domain'",
            "example": 170300
          },
          "groupType": {
            "type": "string",
            "enum": [
              "domain",
              "district",
              "unit",
              "section"
            ],
            "example": "unit",
            "pattern": "^(domain|district|unit|section)$"
          },
          "districtAttributesDto": {
            "$ref": "#/components/schemas/organisation_DistrictAttributesDto",
            "description": "Used for group type 'district'. If not provided will only use `name`, `parentGroupId` and `groupId`(from path)"
          },
          "sectionAttributesDto": {
            "$ref": "#/components/schemas/organisation_SectionAttributesDto",
            "description": "Required for group type 'section'. If not provided will only use `name`, `parentGroupId` and `groupId`(from path)"
          },
          "unitAttributesDto": {
            "$ref": "#/components/schemas/organisation_UnitAttributesDto",
            "description": "Required for group type 'unit'. If not provided will only use `name`, `parentGroupId` and `groupId`(from path)"
          }
        },
        "required": [
          "groupType",
          "name"
        ]
      },
      "organisation_GroupLocationRequestDto": {
        "type": "object",
        "properties": {
          "latitude": {
            "type": "string",
            "example": "59.329956",
            "minLength": 1,
            "pattern": "^(\\+|-)?(?:90(?:(?:\\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\\.[0-9]{1,6})?))$"
          },
          "longitude": {
            "type": "string",
            "example": "18.062850",
            "minLength": 1,
            "pattern": "^(\\+|-)?(?:180(?:(?:\\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\\.[0-9]{1,6})?))$"
          },
          "radius": {
            "type": "integer",
            "format": "int32",
            "example": 100
          },
          "comment": {
            "type": "string",
            "example": "Main entrance"
          }
        },
        "required": [
          "latitude",
          "longitude",
          "radius"
        ]
      },
      "organisation_GroupLocationResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "groupId": {
            "type": "integer",
            "format": "int32",
            "example": 170305
          },
          "latitude": {
            "type": "string",
            "example": "59.329956"
          },
          "longitude": {
            "type": "string",
            "example": "18.062850"
          },
          "radius": {
            "type": "integer",
            "format": "int32",
            "example": 100
          },
          "comment": {
            "type": "string",
            "example": "Main entrance"
          }
        }
      },
      "organisation_GroupCreationRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Stockholm Central"
          },
          "groupType": {
            "type": "string",
            "example": "unit"
          },
          "parentGroupId": {
            "type": "integer",
            "format": "int32",
            "example": 170300
          },
          "districtAttributesDto": {
            "$ref": "#/components/schemas/organisation_DistrictAttributesDto"
          },
          "sectionAttributesDto": {
            "$ref": "#/components/schemas/organisation_SectionAttributesDto"
          },
          "unitAttributesDto": {
            "$ref": "#/components/schemas/organisation_UnitAttributesDto"
          }
        },
        "required": [
          "parentGroupId"
        ]
      },
      "rest-api-uaa_OAuth2Token": {
        "type": "object",
        "properties": {
          "expires_in": {
            "type": "integer",
            "format": "int64",
            "example": 3600
          },
          "jti": {
            "type": "string",
            "example": "550e8400-e29b-41d4-a716-446655440000"
          },
          "access_token": {
            "type": "string",
            "example": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjbGllbnQifQ.signature"
          },
          "scope": {
            "type": "string",
            "example": "read write"
          },
          "token_type": {
            "type": "string",
            "example": "bearer"
          }
        }
      },
      "schedule-availability_CreateScheduleAvailabilityInternalIdsModel": {
        "type": "object",
        "properties": {
          "startDateTime": {
            "type": "string",
            "example": "2026-01-15T08:00:00"
          },
          "endDateTime": {
            "type": "string",
            "example": "2026-01-15T17:00:00"
          },
          "employeeId": {
            "type": "integer",
            "format": "int64",
            "example": 12345
          },
          "groupId": {
            "type": "integer",
            "format": "int32",
            "example": 42
          }
        }
      },
      "schedule-availability_IntegrationInternalIdsScheduleAvailability": {
        "type": "object",
        "properties": {
          "startDateTime": {
            "type": "string",
            "example": "2026-01-15T08:00:00"
          },
          "endDateTime": {
            "type": "string",
            "example": "2026-01-15T17:00:00"
          },
          "employeeId": {
            "type": "integer",
            "format": "int64",
            "example": 12345
          },
          "unitGroupIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "sectionGroupIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          }
        }
      },
      "schedule_AbsenceRequest": {
        "type": "object",
        "properties": {
          "absenceTypeId": {
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "employeeId": {
            "type": "integer",
            "format": "int32",
            "example": 100,
            "minimum": 1
          },
          "begin": {
            "type": "string",
            "example": "2026-01-01T08:00:00"
          },
          "end": {
            "type": "string",
            "example": "2026-01-01T17:00:00"
          },
          "employeeAttested": {
            "type": "boolean",
            "example": false
          },
          "managerAttested": {
            "type": "boolean",
            "example": false
          },
          "absenceScheduleId": {
            "type": "integer",
            "format": "int64",
            "example": 10
          },
          "shiftsInThisPeriod": {
            "type": "string",
            "enum": [
              "UNASSIGN",
              "DELETE",
              "KEEP"
            ],
            "example": "UNASSIGN"
          },
          "managerComment": {
            "type": "string",
            "example": "Approved",
            "maxLength": 65535,
            "minLength": 0
          }
        },
        "required": [
          "absenceTypeId",
          "begin",
          "employeeId",
          "end"
        ]
      },
      "schedule_AbsenceResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": 1
          },
          "groupId": {
            "type": "integer",
            "format": "int32",
            "example": 100
          },
          "absenceTypeId": {
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "employeeId": {
            "type": "integer",
            "format": "int32",
            "example": 100
          },
          "begin": {
            "type": "string",
            "example": "2026-01-01T08:00:00"
          },
          "end": {
            "type": "string",
            "example": "2026-01-01T17:00:00"
          },
          "employeeAttested": {
            "type": "boolean",
            "example": false
          },
          "managerAttested": {
            "type": "boolean",
            "example": false
          },
          "absenceScheduleId": {
            "type": "integer",
            "format": "int64",
            "example": 10
          },
          "shiftsInThisPeriod": {
            "type": "string",
            "enum": [
              "UNASSIGN",
              "DELETE",
              "KEEP"
            ],
            "example": "UNASSIGN"
          },
          "managerComment": {
            "type": "string",
            "example": "Approved"
          }
        }
      },
      "schedule_AbsenceValidationError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "example": "ABSENCE_OVERLAP"
          },
          "text": {
            "type": "string",
            "example": "Absence overlaps with existing absence"
          },
          "severity": {
            "type": "string",
            "example": "ERROR"
          },
          "localisedMessage": {
            "type": "string",
            "example": "Absence overlaps with existing absence"
          },
          "shiftId": {
            "type": "integer",
            "format": "int64",
            "example": 1
          },
          "additionalErrorParameters": {
            "type": "object",
            "additionalProperties": {}
          }
        }
      },
      "statistics_AdvancedStatisticsRequest": {
        "type": "object",
        "properties": {
          "groupIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "period": {
            "$ref": "#/components/schemas/statistics_StatisticsPeriod"
          },
          "variables": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "scheduled-hours",
                "worked-hours",
                "leave-hours",
                "optimal-hours",
                "forecast-hours",
                "forecast-sales",
                "actual-sales",
                "actual-staff-cost",
                "forecast-staff-cost",
                "base-schedule-hours",
                "productive-hours",
                "kpi-scheduled-hours",
                "kpi-scheduled-hours-excl-ut",
                "kpi-worked-hours",
                "scheduled-staff-cost",
                "scheduled-staff-cost-excluding-absences",
                "scheduled-hours-excluding-absences",
                "worked-hours-excluding-absences",
                "expected-staff-cost",
                "scheduled-break-hours",
                "punched-break-hours",
                "base-schedule-cost",
                "expected-kpi-scheduled-hours",
                "expected-kpi-worked-hours"
              ]
            }
          },
          "filters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/statistics_Filter"
            }
          },
          "baseScheduleData": {
            "$ref": "#/components/schemas/statistics_BaseScheduleData"
          },
          "baseScheduleIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "displayItems": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "people",
                "shifts",
                "tasks",
                "punches",
                "absences"
              ]
            }
          },
          "laborView": {
            "type": "boolean",
            "example": false
          },
          "statisticsFilterTypes": {
            "type": "string",
            "enum": [
              "and",
              "or"
            ],
            "example": "and",
            "writeOnly": true
          },
          "people-filter-type": {
            "type": "string",
            "enum": [
              "and",
              "or"
            ],
            "example": "and"
          },
          "shifts-filter-type": {
            "type": "string",
            "enum": [
              "and",
              "or"
            ],
            "example": "and"
          },
          "tasks-filter-type": {
            "type": "string",
            "enum": [
              "and",
              "or"
            ],
            "example": "and"
          },
          "punches-filter-type": {
            "type": "string",
            "enum": [
              "and",
              "or"
            ],
            "example": "and"
          },
          "absences-filter-type": {
            "type": "string",
            "enum": [
              "and",
              "or"
            ],
            "example": "and"
          }
        }
      },
      "statistics_BaseScheduleData": {
        "type": "object",
        "properties": {
          "baseScheduleId": {
            "type": "string",
            "example": "abc123"
          },
          "dayIndex": {
            "type": "integer",
            "format": "int32",
            "example": 0
          }
        }
      },
      "statistics_Filter": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "employee",
              "employee-skill",
              "employee-section",
              "employee-unit",
              "staff-category",
              "shift-type",
              "shift-status",
              "section",
              "shift-id",
              "shift-start",
              "shift-end",
              "task-status",
              "task-type",
              "task-section",
              "punch-type",
              "punch-id",
              "absence-type",
              "absence-shift-id",
              "attest-status",
              "absence-attest-status",
              "punch-attest-status",
              "tag-ids",
              "agreement",
              "base-schedule"
            ],
            "example": "employee"
          },
          "values": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "timeRange": {
            "$ref": "#/components/schemas/statistics_TimeRangeFilter"
          }
        }
      },
      "statistics_StatisticsPeriod": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string",
            "example": "2026-01-01T00:00:00"
          },
          "end": {
            "type": "string",
            "example": "2026-01-31T23:59:59"
          },
          "aggregation-type": {
            "type": "string",
            "enum": [
              "m",
              "H",
              "D",
              "W",
              "M"
            ],
            "example": "D"
          },
          "aggregation-value": {
            "type": "integer",
            "format": "int32",
            "example": 1
          }
        }
      },
      "statistics_TimeRangeFilter": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "example": true
          },
          "from": {
            "type": "string",
            "example": "08:00"
          },
          "to": {
            "type": "string",
            "example": "17:00"
          }
        }
      },
      "statistics_Statistic": {
        "type": "object",
        "properties": {
          "variable": {
            "type": "string",
            "enum": [
              "scheduled-hours",
              "worked-hours",
              "leave-hours",
              "optimal-hours",
              "forecast-hours",
              "forecast-sales",
              "actual-sales",
              "actual-staff-cost",
              "forecast-staff-cost",
              "base-schedule-hours",
              "productive-hours",
              "kpi-scheduled-hours",
              "kpi-scheduled-hours-excl-ut",
              "kpi-worked-hours",
              "scheduled-staff-cost",
              "scheduled-staff-cost-excluding-absences",
              "scheduled-hours-excluding-absences",
              "worked-hours-excluding-absences",
              "expected-staff-cost",
              "scheduled-break-hours",
              "punched-break-hours",
              "base-schedule-cost",
              "expected-kpi-scheduled-hours",
              "expected-kpi-worked-hours"
            ],
            "example": "scheduled-hours"
          },
          "values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/statistics_StatisticPeriodValue"
            }
          },
          "total-value": {
            "type": "number",
            "format": "double",
            "example": 100
          }
        }
      },
      "statistics_StatisticPeriodValue": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string",
            "example": "2026-01-01T00:00:00"
          },
          "end": {
            "type": "string",
            "example": "2026-01-01T23:59:59"
          },
          "value": {
            "type": "number",
            "format": "double",
            "example": 100
          },
          "employeeId": {
            "type": "integer",
            "format": "int32",
            "example": 1
          }
        }
      },
      "statistics_HeadCount": {
        "type": "object",
        "properties": {
          "variable": {
            "type": "string",
            "example": "scheduledHeadcount"
          },
          "resolution": {
            "type": "integer",
            "format": "int32",
            "example": 30
          },
          "values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/statistics_StatisticPeriodValue"
            }
          },
          "total-value": {
            "type": "number",
            "format": "double",
            "example": 100
          }
        }
      },
      "tags_Coordinate": {
        "type": "object",
        "description": "Represents geographic coordinates for a location",
        "properties": {
          "latitude": {
            "type": "number",
            "format": "float",
            "description": "Latitude of the location",
            "example": 59.334591
          },
          "longitude": {
            "type": "number",
            "format": "float",
            "description": "Longitude of the location",
            "example": 18.06324
          },
          "name": {
            "type": "string",
            "description": "Name or description of the location",
            "example": "Stockholm Mall"
          },
          "radius": {
            "type": "integer",
            "format": "int32",
            "description": "Radius of the location",
            "example": 100,
            "minimum": 1
          }
        },
        "required": [
          "latitude",
          "longitude",
          "radius"
        ]
      },
      "tags_CustomField": {
        "type": "object",
        "description": "Represents a custom field with key-value pair for additional tag properties",
        "properties": {
          "label": {
            "type": "string",
            "description": "Label of the custom field",
            "example": "Phone number",
            "maxLength": 50,
            "minLength": 0
          },
          "value": {
            "type": "string",
            "description": "Value of the custom field",
            "example": "+46701234567",
            "maxLength": 255,
            "minLength": 0
          }
        },
        "required": [
          "label",
          "value"
        ]
      },
      "tags_Period": {
        "type": "object",
        "description": "Represents an operating period for a tag, defining when it is active",
        "properties": {
          "from": {
            "type": "string",
            "format": "date",
            "description": "Start date of the period",
            "example": "2022-01-01"
          },
          "to": {
            "type": "string",
            "format": "date",
            "description": "End date of the period",
            "example": "2022-01-31"
          },
          "hours": {
            "type": "number",
            "format": "float",
            "description": "Number of hours for this period",
            "example": 8
          },
          "type": {
            "type": "string",
            "description": "Type of period",
            "enum": [
              "PERIOD",
              "DAYS",
              "WEEKS"
            ],
            "example": "DAYS"
          },
          "count": {
            "type": "number",
            "format": "float",
            "description": "Number of periods",
            "example": 1
          }
        },
        "required": [
          "count",
          "from",
          "hours",
          "type"
        ]
      },
      "tags_TagIntegration": {
        "type": "object",
        "description": "Represents a tag with integration-specific properties",
        "properties": {
          "unitExternalId": {
            "type": "string",
            "description": "External identifier of the unit this tag is associated with",
            "example": "UNIT-001"
          },
          "categoryExternalId": {
            "type": "string",
            "description": "External identifier of the category this tag belongs to",
            "example": "LOC-001"
          },
          "name": {
            "type": "string",
            "description": "Name of the tag",
            "example": "Downtown Store",
            "maxLength": 255,
            "minLength": 0
          },
          "code": {
            "type": "string",
            "description": "Code identifier for the tag",
            "example": "DT-001",
            "maxLength": 50,
            "minLength": 0
          },
          "externalId": {
            "type": "string",
            "description": "External identifier for integration purposes",
            "example": "store-123",
            "maxLength": 60,
            "minLength": 0
          },
          "information": {
            "type": "string",
            "description": "Additional information about the tag",
            "example": "Main downtown location with parking",
            "maxLength": 2000,
            "minLength": 0
          },
          "uniqueScheduling": {
            "type": "boolean",
            "deprecated": true,
            "description": "Deprecated and non-functional. This field is retained for backwards compatibility only; any value sent is ignored by all scheduling logic.",
            "example": true
          },
          "startDate": {
            "type": [
              "string",
              "null"
            ],
            "format": "date",
            "description": "Start date for tag validity. If set, tag start date must be between '1970-01-02' and '2038-01-19' (inclusive)",
            "example": "2024-01-01"
          },
          "endDate": {
            "type": [
              "string",
              "null"
            ],
            "format": "date",
            "description": "End date for tag validity. If set, tag end date must be between '1970-01-02' and '2038-01-19' (inclusive)",
            "example": "2024-12-31"
          },
          "periods": {
            "type": "array",
            "description": "Operating periods for this tag",
            "example": [
              {
                "from": "2022-01-01",
                "to": "2022-01-31",
                "hours": 8,
                "type": "DAYS",
                "count": 1
              }
            ],
            "items": {
              "$ref": "#/components/schemas/tags_Period"
            }
          },
          "coordinates": {
            "type": "array",
            "description": "Geographic coordinates associated with this tag",
            "example": [
              {
                "latitude": 59.334591,
                "longitude": 18.06324,
                "name": "Stockholm Mall",
                "radius": 100
              }
            ],
            "items": {
              "$ref": "#/components/schemas/tags_Coordinate"
            }
          },
          "customFields": {
            "type": "array",
            "description": "Custom fields for additional tag properties",
            "example": [
              {
                "label": "phoneNumber",
                "value": "+46123456789"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/tags_CustomField"
            }
          }
        },
        "required": [
          "categoryExternalId",
          "name",
          "unitExternalId"
        ]
      },
      "tags_PageMetadata": {
        "type": "object",
        "description": "Page metadata",
        "properties": {
          "contentSize": {
            "type": "integer",
            "format": "int32",
            "description": "Content size (number of content items)",
            "example": 345
          },
          "nextCursor": {
            "type": "string",
            "description": "Next page cursor. It will be empty if current page is the last page",
            "example": "zyxwvutsrqponmlkjihgfedcba=="
          }
        },
        "required": [
          "contentSize",
          "nextCursor"
        ]
      },
      "tags_PagedResponse": {
        "type": "object",
        "description": "Represents a paginated collection of tags",
        "properties": {
          "content": {
            "type": "array",
            "description": "Page content (collection of tags)",
            "items": {
              "$ref": "#/components/schemas/tags_TagIntegration"
            }
          },
          "page": {
            "$ref": "#/components/schemas/tags_PageMetadata",
            "description": "This page metadata",
            "example": {
              "contentSize": 345,
              "nextCursor": "zyxwvutsrqponmlkjihgfedcba=="
            }
          }
        },
        "required": [
          "content",
          "page"
        ]
      },
      "tags_TagCategoryType_Default": {
        "type": "string",
        "description": "Enumeration of possible tag types",
        "enum": [
          "COST_CENTER",
          "PROJECT",
          "ACCOUNT",
          "EXTENDED"
        ],
        "example": "PROJECT"
      },
      "tags_TagCategory_Default": {
        "type": "object",
        "description": "Represents a category for grouping tags with common characteristics",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the tag category",
            "example": "Store Locations",
            "maxLength": 255
          },
          "tagType": {
            "$ref": "#/components/schemas/tags_TagCategoryType_Default",
            "description": "Type of tags in this category",
            "example": "PROJECT"
          },
          "color": {
            "type": "string",
            "description": "Hexadecimal color code for visual representation",
            "example": "#FF5733"
          },
          "externalId": {
            "type": "string",
            "description": "External identifier for integration purposes",
            "example": "LOC-001",
            "maxLength": 60
          }
        },
        "required": [
          "name",
          "tagType"
        ]
      }
    },
    "securitySchemes": {
      "OAuth2ClientCredentials": {
        "type": "oauth2",
        "description": "OAuth2 Client Credentials flow. See https://developer.quinyx.com/api/v2/authentication",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "/oauth/token",
            "scopes": {
              "integration.absence:read": "",
              "collaboration_groups:create": "",
              "collaboration_groups:delete": "",
              "collaboration_groups:read": "",
              "collaboration_groups:update": "",
              "agreement:update": "",
              "integration.people:read": "",
              "pay_schedules:read": "",
              "forecast:read": "",
              "forecast.external.prediction:create": "",
              "forecast.external.prediction:update": "",
              "forecast.external.prediction:write": "",
              "forecast:create": "",
              "forecast:delete": "",
              "forecast:update": "",
              "forecast:write": "",
              "mapping:create": "",
              "mapping:delete": "",
              "mapping:read": "",
              "mapping:update": "",
              "opening_hours:create": "",
              "opening_hours:delete": "",
              "opening_hours:read": "",
              "opening_hours:update": "",
              "account:read": "",
              "groups:create": "",
              "groups:delete": "",
              "groups:read": "",
              "groups:update": "",
              "integration.schedule_availability:read": "",
              "integration.absence:create": "",
              "integration.absence:delete": "",
              "statistics:read": "",
              "tags:create": "",
              "tags:delete": "",
              "tags:read": "",
              "tags:update": "",
              "tags:write": ""
            }
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://api.quinyx.com",
      "description": "Production API"
    },
    {
      "url": "https://api-rc.quinyx.com",
      "description": "RC API"
    }
  ]
}