{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Solvice Docs","description":"Solvice API documentation for cloud-native optimization solvers. Build powerful route optimization, workforce scheduling, and resource allocation solutions with our VRP, shift planning, and clustering APIs.","colors":{"primary":"#0f62fe","light":"#0f62fe","dark":"#0f62fe"},"logo":{"light":"https://mintcdn.com/solvice-68592f22/1KJ_2AIotizI1Bng/logo/light.svg?fit=max\u0026auto=format\u0026n=1KJ_2AIotizI1Bng\u0026q=85\u0026s=e93560fee320491613107060a1afc094","dark":"https://mintcdn.com/solvice-68592f22/1KJ_2AIotizI1Bng/logo/dark.svg?fit=max\u0026auto=format\u0026n=1KJ_2AIotizI1Bng\u0026q=85\u0026s=1baeb15bf7826f571444a1d6a36fb31a"},"favicon":"https://mintcdn.com/solvice-68592f22/noMIHjSWP2Tg_tTz/favicon.png?fit=max\u0026auto=format\u0026n=noMIHjSWP2Tg_tTz\u0026q=85\u0026s=beff99df9d507e0794596b5437be687f","api":{"mdx":{"auth":{"method":"key","name":"Authorization"}}},"navbar":{"links":[{"href":"mailto:support@solvice.io","label":"Support"},{"href":"https://www.solvice.io","label":"Solvice website"}],"primary":{"type":"button","label":"Dashboard","href":"https://platform.solvice.io"}},"footer":{"socials":{"website":"https://www.solvice.io","x":"https://x.com/solvice_io","github":"https://github.com/solvice","linkedin":"https://linkedin.com/company/solvice"}},"seo":{"metatags":{"og:image":"link to your default meta tag image","charset":"UTF-8","viewport":"width=device-width, initial-scale=1.0","description":"Solvice API documentation for cloud-native optimization solvers. Build powerful route optimization, workforce scheduling, and resource allocation solutions with our VRP, shift planning, and clustering APIs.","keywords":"Route Optimization, Route API, Optimization API, Workforce Scheduling, Solvice","author":"Christophe Van Huele","robots":"index, follow","googlebot":"index, follow","google":"notranslate","google-site-verification":"verification_token"},"indexing":"all"},"integrations":{"ga4":{"measurementId":"G-2L8R78J6J9"}},"banner":{"content":"Solvice VRP API v3 is in beta. General availability (GA) is planned for January 2027.","dismissible":false},"contextual":{"options":["claude","copy"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Dashboard","icon":"book-open-cover","href":"https://platform.solvice.io"},{"anchor":"Website","icon":"planet-ringed","href":"https://www.solvice.io"},{"anchor":"Blog","icon":"newspaper","href":"https://www.solvice.io/blog/news"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"solvice-68592f22","hasAudioNarration":false,"actualSubdomain":"solvice-68592f22","customDomains":["docs.solvice.io"],"gitSource":{"type":"gitlab","owner":"solvice","repo":"solver2","projectId":44919668,"deployBranch":"main","contentDirectory":"mintlify","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae35beb9b40269dc6b4b8b0","collectionId":"524016b9-4bce-41ca-889d-c854269b0749","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae35beb9b40269dc6b4b8b0"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"REMOVE_BRANDING":{"status":"DISABLED"}},"buildId":"6ae35beb9b40269dc6b4b8b0","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"Guides","count":81},{"language":"default","tag":"VRP API","count":49},{"language":"default","tag":"Features","count":32},{"language":"default","tag":"Routing API","count":28},{"language":"default","tag":"API Reference","count":26},{"language":"default","tag":"Fill API","count":20},{"language":"default","tag":"Platform","count":10},{"language":"default","tag":"Examples","count":9},{"language":"default","tag":"Concepts","count":9},{"language":"default","tag":"Info","count":6}]},"assistantConfig":{"deflection":{"enabled":true,"email":"support@solvice.io","showHelpButton":true}},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/fill/solve","slug":"/api-reference/fill/solve","pageMetadata":{"title":"Solve Fill","openapi":"fill POST /v2/fill/solve","description":"Will trigger the solver run.","href":"/api-reference/fill/solve"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Will trigger the solver run.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Solve Fill","openapi":"fill POST /v2/fill/solve","description":"Will trigger the solver run.","href":"/api-reference/fill/solve"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Solve","description":"Will trigger the solver run.","operationId":"solveFILL","tags":["Actions"],"parameters":["9c62f4c5-7272-4fdf-8832-59717930b5d7"],"requestBody":"deedc2f8-6b0d-4eed-b542-8f08293232e2","responses":{"200":"939dfec0-13b6-4123-ae6b-875a85d845c6","400":"c45b74c6-62d5-437b-9a44-5ce7e580b7f3"},"method":"post","type":"path","servers":["bde8538f-22cc-4d5b-8087-edfb462a71c9"],"security":["d60debd5-26d9-409a-9b0e-598902fd3f09"],"path":"/v2/fill/solve","baseUrlOptions":["https://api.solvice.io"],"title":"Solve","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"9c62f4c5-7272-4fdf-8832-59717930b5d7":{"name":"millis","in":"query","schema":{"oneOf":[{"type":"string","uniqueKey":"oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.1","typeLabel":"null"}],"uniqueKey":"","typeLabel":"string | null"}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["shifts","employees"],"description":"FILL request for solving, evaluating","properties":{"employees":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"object","required":["name"],"maxItems":500,"description":"Employee that can be assigned to a shift","properties":{"name":{"type":"string","maxLength":255,"pattern":"^(?!.*\\$\\{)[^\u003c>\"';`\\\\]*$","description":"Name of the employee (unique)","isRequired":true,"uniqueKey":"employees.items.[INDEX].name","typeLabel":"string"},"home":{"oneOf":[{"type":"object","description":"Location","properties":{"lat":{"type":"number","format":"double","examples":[51.12042],"description":"latitude of the location","uniqueKey":"employees.items.[INDEX].home.oneOf.0.lat","typeLabel":"number\u003cdouble>"},"lon":{"type":"number","format":"double","examples":[4.23054],"description":"longitude of the location","uniqueKey":"employees.items.[INDEX].home.oneOf.0.lon","typeLabel":"number\u003cdouble>"}},"uniqueKey":"employees.items.[INDEX].home.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"employees.items.[INDEX].home.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].home","typeLabel":"object | null"},"availability":{"oneOf":[{"type":"array","items":{"type":"object","required":["from","to"],"description":"Time window of availability. If no location is provided, the solver will not take into account travel time.\t","properties":{"from":{"type":"string","format":"date-time","examples":["2022-03-10T12:15:50"],"description":"start time of the window","isRequired":true,"uniqueKey":"employees.items.[INDEX].availability.oneOf.0.items.[INDEX].from","typeLabel":"string\u003cdate-time>"},"to":{"type":"string","format":"date-time","examples":["2022-03-10T12:15:50"],"description":"end time of the window","isRequired":true,"uniqueKey":"employees.items.[INDEX].availability.oneOf.0.items.[INDEX].to","typeLabel":"string\u003cdate-time>"},"location":{"oneOf":[{"type":"object","description":"Location","properties":{"lat":{"type":"number","format":"double","examples":[51.12042],"description":"latitude of the location","uniqueKey":"employees.items.[INDEX].availability.oneOf.0.items.[INDEX].location.oneOf.0.lat","typeLabel":"number\u003cdouble>"},"lon":{"type":"number","format":"double","examples":[4.23054],"description":"longitude of the location","uniqueKey":"employees.items.[INDEX].availability.oneOf.0.items.[INDEX].location.oneOf.0.lon","typeLabel":"number\u003cdouble>"}},"uniqueKey":"employees.items.[INDEX].availability.oneOf.0.items.[INDEX].location.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"employees.items.[INDEX].availability.oneOf.0.items.[INDEX].location.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].availability.oneOf.0.items.[INDEX].location","typeLabel":"object | null"}},"uniqueKey":"employees.items.[INDEX].availability.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Availability of the employee","uniqueKey":"employees.items.[INDEX].availability.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["from","to"],"description":"Time window of availability. If no location is provided, the solver will not take into account travel time.\t","properties":{"from":{"type":"string","format":"date-time","examples":["2022-03-10T12:15:50"],"description":"start time of the window"},"to":{"type":"string","format":"date-time","examples":["2022-03-10T12:15:50"],"description":"end time of the window"},"location":{"oneOf":[{"type":"object","description":"Location","properties":{"lat":{"type":"number","format":"double","examples":[51.12042],"description":"latitude of the location"},"lon":{"type":"number","format":"double","examples":[4.23054],"description":"longitude of the location"}}},{"type":"null"}]}}},"description":"Availability of the employee","uniqueKey":"employees.items.[INDEX].availability.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].availability","typeLabel":"object[] | null"},"preference":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"employees.items.[INDEX].preference.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Shift preferences of the employee. List of shift tags.","uniqueKey":"employees.items.[INDEX].preference.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Shift preferences of the employee. List of shift tags.","uniqueKey":"employees.items.[INDEX].preference.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].preference","typeLabel":"string[] | null"},"skills":{"oneOf":[{"type":"array","items":{"type":"object","required":["name"],"description":"Employee skill","properties":{"name":{"type":"string","description":"name of the skill","isRequired":true,"uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].name","typeLabel":"string"},"expiry":{"oneOf":[{"type":"string","description":"expiry date of the skill","format":"date","example":"2022-03-10","uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].expiry.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].expiry.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].expiry","typeLabel":"string\u003cdate> | null"},"weight":{"oneOf":[{"type":"integer","format":"int32","description":"weight of the skill","uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].weight.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"weight of the skill","uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].weight","typeLabel":"integer\u003cint32> | null"},"period":{"oneOf":[{"type":"object","description":"Period","properties":{"from":{"oneOf":[{"type":"string","description":"Start of the period","format":"date-time","example":"2022-03-10T12:15:50","uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.from.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.from.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.from","typeLabel":"string\u003cdate-time> | null"},"to":{"oneOf":[{"type":"string","description":"End of the period","format":"date-time","example":"2022-03-10T12:15:50","uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.to.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.to.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.to","typeLabel":"string\u003cdate-time> | null"},"duration":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.duration.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.duration.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.duration","typeLabel":"string\u003c> | null"},"period":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.period.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.period.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.period","typeLabel":"string\u003c> | null"},"excludes":{"oneOf":[{"type":"array","items":{"type":"string","format":"date","examples":["2022-03-10"],"uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.excludes.oneOf.0.items.[INDEX]","typeLabel":"string\u003cdate>"},"description":"List of dates to exclude from the from/to period.","uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.excludes.oneOf.0","typeLabel":"string\u003cdate>[]"},{"type":"null","items":{"type":"string","format":"date","examples":["2022-03-10"]},"description":"List of dates to exclude from the from/to period.","uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.excludes.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.excludes","typeLabel":"string\u003cdate>[] | null"},"type":{"oneOf":[{"type":"string","enum":["DAILY","WEEKLY","MONTHLY","SCHEDULE"],"uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.type.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0.type","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX].period","typeLabel":"object | null"}},"uniqueKey":"employees.items.[INDEX].skills.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Skills of the employee","uniqueKey":"employees.items.[INDEX].skills.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["name"],"description":"Employee skill","properties":{"name":{"type":"string","description":"name of the skill"},"expiry":{"oneOf":[{"type":"string","description":"expiry date of the skill","format":"date","example":"2022-03-10"},{"type":"null"}]},"weight":{"oneOf":[{"type":"integer","format":"int32","description":"weight of the skill"},{"type":"null","format":"int32","description":"weight of the skill"}]},"period":{"oneOf":[{"type":"object","description":"Period","properties":{"from":{"oneOf":[{"type":"string","description":"Start of the period","format":"date-time","example":"2022-03-10T12:15:50"},{"type":"null"}]},"to":{"oneOf":[{"type":"string","description":"End of the period","format":"date-time","example":"2022-03-10T12:15:50"},{"type":"null"}]},"duration":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"}]},"period":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"}]},"excludes":{"oneOf":[{"type":"array","items":{"type":"string","format":"date","examples":["2022-03-10"]},"description":"List of dates to exclude from the from/to period."},{"type":"null","items":{"type":"string","format":"date","examples":["2022-03-10"]},"description":"List of dates to exclude from the from/to period."}]},"type":{"oneOf":[{"type":"string","enum":["DAILY","WEEKLY","MONTHLY","SCHEDULE"]},{"type":"null"}]}}},{"type":"null"}]}}},"description":"Skills of the employee","uniqueKey":"employees.items.[INDEX].skills.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].skills","typeLabel":"object[] | null"},"hourlyPay":{"oneOf":[{"type":"number","format":"double","description":"Hourly pay of the employee. The solver will then optimize the cost of the planning.","uniqueKey":"employees.items.[INDEX].hourlyPay.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Hourly pay of the employee. The solver will then optimize the cost of the planning.","uniqueKey":"employees.items.[INDEX].hourlyPay.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].hourlyPay","typeLabel":"number\u003cdouble> | null"},"efficiency":{"oneOf":[{"type":"number","format":"double","description":"Efficiency of the employee","uniqueKey":"employees.items.[INDEX].efficiency.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Efficiency of the employee","uniqueKey":"employees.items.[INDEX].efficiency.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].efficiency","typeLabel":"number\u003cdouble> | null"},"periodRules":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"period":{"oneOf":[{"type":"object","description":"Period","properties":{"from":{"oneOf":[{"type":"string","description":"Start of the period","format":"date-time","example":"2022-03-10T12:15:50","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.from.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.from.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.from","typeLabel":"string\u003cdate-time> | null"},"to":{"oneOf":[{"type":"string","description":"End of the period","format":"date-time","example":"2022-03-10T12:15:50","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.to.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.to.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.to","typeLabel":"string\u003cdate-time> | null"},"duration":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.duration.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.duration.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.duration","typeLabel":"string\u003c> | null"},"period":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.period.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.period.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.period","typeLabel":"string\u003c> | null"},"excludes":{"oneOf":[{"type":"array","items":{"type":"string","format":"date","examples":["2022-03-10"],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.excludes.oneOf.0.items.[INDEX]","typeLabel":"string\u003cdate>"},"description":"List of dates to exclude from the from/to period.","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.excludes.oneOf.0","typeLabel":"string\u003cdate>[]"},{"type":"null","items":{"type":"string","format":"date","examples":["2022-03-10"]},"description":"List of dates to exclude from the from/to period.","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.excludes.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.excludes","typeLabel":"string\u003cdate>[] | null"},"type":{"oneOf":[{"type":"string","enum":["DAILY","WEEKLY","MONTHLY","SCHEDULE"],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.type.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0.type","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].period","typeLabel":"object | null"},"maxWorkingDays":{"oneOf":[{"type":"integer","format":"int32","description":"Maximum number of working days in the period.","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].maxWorkingDays.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"Maximum number of working days in the period.","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].maxWorkingDays.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].maxWorkingDays","typeLabel":"integer\u003cint32> | null"},"minWorkingDays":{"oneOf":[{"type":"integer","format":"int32","description":"Minimum number of working days in the period.","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].minWorkingDays.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"Minimum number of working days in the period.","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].minWorkingDays.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].minWorkingDays","typeLabel":"integer\u003cint32> | null"},"minWorkingDuration":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Minimum working duration in the period. Not including travel time","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].minWorkingDuration.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Minimum working duration in the period. Not including travel time","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].minWorkingDuration.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].minWorkingDuration","typeLabel":"string\u003c> | null"},"maxWorkingDuration":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Maximum working duration in the period. Not including travel time","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].maxWorkingDuration.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Maximum working duration in the period. Not including travel time","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].maxWorkingDuration.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].maxWorkingDuration","typeLabel":"string\u003c> | null"},"minRestDurationBetweenShiftsSameDay":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Minimum rest duration between shifts in the same day","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].minRestDurationBetweenShiftsSameDay.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Minimum rest duration between shifts in the same day","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].minRestDurationBetweenShiftsSameDay.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].minRestDurationBetweenShiftsSameDay","typeLabel":"string\u003c> | null"},"minRestDuration":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Minimum rest duration between shifts","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].minRestDuration.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Minimum rest duration between shifts","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].minRestDuration.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].minRestDuration","typeLabel":"string\u003c> | null"},"maxShiftLength":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"maximum shift length","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].maxShiftLength.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"maximum shift length","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].maxShiftLength.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].maxShiftLength","typeLabel":"string\u003c> | null"},"minShiftLength":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"minimum shift length","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].minShiftLength.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"minimum shift length","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].minShiftLength.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].minShiftLength","typeLabel":"string\u003c> | null"},"latestShiftStart":{"oneOf":[{"type":"string","format":"","examples":["13:45:30.123456789"],"description":"latest shift start","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"},"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].latestShiftStart.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["13:45:30.123456789"],"description":"latest shift start","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"},"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].latestShiftStart.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].latestShiftStart","typeLabel":"string\u003c> | null"},"earliestShiftStart":{"oneOf":[{"type":"string","format":"","examples":["13:45:30.123456789"],"description":"earliest shift start","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"},"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].earliestShiftStart.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["13:45:30.123456789"],"description":"earliest shift start","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"},"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].earliestShiftStart.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].earliestShiftStart","typeLabel":"string\u003c> | null"},"latestShiftEnd":{"oneOf":[{"type":"string","format":"","examples":["13:45:30.123456789"],"description":"latest shift end","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"},"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].latestShiftEnd.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["13:45:30.123456789"],"description":"latest shift end","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"},"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].latestShiftEnd.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].latestShiftEnd","typeLabel":"string\u003c> | null"},"minWeekendsIdle":{"oneOf":[{"type":"integer","format":"int32","description":"The minimum number of weekends to be idle in this period.","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].minWeekendsIdle.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"The minimum number of weekends to be idle in this period.","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].minWeekendsIdle.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].minWeekendsIdle","typeLabel":"integer\u003cint32> | null"},"maxWeekendsIdle":{"oneOf":[{"type":"integer","format":"int32","description":"The maximum number of weekends to be idle in this period.","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].maxWeekendsIdle.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"The maximum number of weekends to be idle in this period.","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].maxWeekendsIdle.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX].maxWeekendsIdle","typeLabel":"integer\u003cint32> | null"}},"uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Rules that hold for the entire period.","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"period":{"oneOf":[{"type":"object","description":"Period","properties":{"from":{"oneOf":[{"type":"string","description":"Start of the period","format":"date-time","example":"2022-03-10T12:15:50"},{"type":"null"}]},"to":{"oneOf":[{"type":"string","description":"End of the period","format":"date-time","example":"2022-03-10T12:15:50"},{"type":"null"}]},"duration":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"}]},"period":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"}]},"excludes":{"oneOf":[{"type":"array","items":{"type":"string","format":"date","examples":["2022-03-10"]},"description":"List of dates to exclude from the from/to period."},{"type":"null","items":{"type":"string","format":"date","examples":["2022-03-10"]},"description":"List of dates to exclude from the from/to period."}]},"type":{"oneOf":[{"type":"string","enum":["DAILY","WEEKLY","MONTHLY","SCHEDULE"]},{"type":"null"}]}}},{"type":"null"}]},"maxWorkingDays":{"oneOf":[{"type":"integer","format":"int32","description":"Maximum number of working days in the period."},{"type":"null","format":"int32","description":"Maximum number of working days in the period."}]},"minWorkingDays":{"oneOf":[{"type":"integer","format":"int32","description":"Minimum number of working days in the period."},{"type":"null","format":"int32","description":"Minimum number of working days in the period."}]},"minWorkingDuration":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Minimum working duration in the period. Not including travel time"},{"type":"null","format":"","examples":["P1D"],"description":"Minimum working duration in the period. Not including travel time"}]},"maxWorkingDuration":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Maximum working duration in the period. Not including travel time"},{"type":"null","format":"","examples":["P1D"],"description":"Maximum working duration in the period. Not including travel time"}]},"minRestDurationBetweenShiftsSameDay":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Minimum rest duration between shifts in the same day"},{"type":"null","format":"","examples":["P1D"],"description":"Minimum rest duration between shifts in the same day"}]},"minRestDuration":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Minimum rest duration between shifts"},{"type":"null","format":"","examples":["P1D"],"description":"Minimum rest duration between shifts"}]},"maxShiftLength":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"maximum shift length"},{"type":"null","format":"","examples":["P1D"],"description":"maximum shift length"}]},"minShiftLength":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"minimum shift length"},{"type":"null","format":"","examples":["P1D"],"description":"minimum shift length"}]},"latestShiftStart":{"oneOf":[{"type":"string","format":"","examples":["13:45:30.123456789"],"description":"latest shift start","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"}},{"type":"null","format":"","examples":["13:45:30.123456789"],"description":"latest shift start","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"}}]},"earliestShiftStart":{"oneOf":[{"type":"string","format":"","examples":["13:45:30.123456789"],"description":"earliest shift start","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"}},{"type":"null","format":"","examples":["13:45:30.123456789"],"description":"earliest shift start","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"}}]},"latestShiftEnd":{"oneOf":[{"type":"string","format":"","examples":["13:45:30.123456789"],"description":"latest shift end","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"}},{"type":"null","format":"","examples":["13:45:30.123456789"],"description":"latest shift end","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"}}]},"minWeekendsIdle":{"oneOf":[{"type":"integer","format":"int32","description":"The minimum number of weekends to be idle in this period."},{"type":"null","format":"int32","description":"The minimum number of weekends to be idle in this period."}]},"maxWeekendsIdle":{"oneOf":[{"type":"integer","format":"int32","description":"The maximum number of weekends to be idle in this period."},{"type":"null","format":"int32","description":"The maximum number of weekends to be idle in this period."}]}}},"description":"Rules that hold for the entire period.","uniqueKey":"employees.items.[INDEX].periodRules.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].periodRules","typeLabel":"object[] | null"},"contracts":{"oneOf":[{"type":"array","items":{"type":"object","required":["name"],"description":"Contract of the employee","properties":{"name":{"oneOf":[{"type":"string","maxLength":255,"pattern":"^(?!.*\\$\\{)[^\u003c>\"';`\\\\]*$","description":"name of the contract","isRequired":true,"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"pattern":"^(?!.*\\$\\{)[^\u003c>\"';`\\\\]*$","description":"name of the contract","isRequired":true,"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].name","typeLabel":"string | null"},"max":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"maximum working time per week","uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].max.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"maximum working time per week","uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].max.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].max","typeLabel":"string\u003c> | null"},"min":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"minimum working time per week","uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].min.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"minimum working time per week","uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].min.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].min","typeLabel":"string\u003c> | null"},"maxConsecutiveWorkDays":{"oneOf":[{"type":"integer","format":"int32","description":"maximum consecutive work days","uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].maxConsecutiveWorkDays.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"maximum consecutive work days","uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].maxConsecutiveWorkDays.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].maxConsecutiveWorkDays","typeLabel":"integer\u003cint32> | null"},"maxShiftsDay":{"oneOf":[{"type":"integer","format":"int32","description":"maximum shifts per day","uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].maxShiftsDay.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"maximum shifts per day","uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].maxShiftsDay.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].maxShiftsDay","typeLabel":"integer\u003cint32> | null"},"minRestBetweenShiftsSameDay":{"oneOf":[{"type":"integer","format":"int32","description":"minimum rest between shifts on the same day","uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].minRestBetweenShiftsSameDay.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"minimum rest between shifts on the same day","uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].minRestBetweenShiftsSameDay.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].minRestBetweenShiftsSameDay","typeLabel":"integer\u003cint32> | null"},"minRest":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"minimum rest between shifts","uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].minRest.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"minimum rest between shifts","uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].minRest.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].minRest","typeLabel":"string\u003c> | null"},"maxWorkingDays":{"oneOf":[{"type":"integer","format":"int32","description":"maximum working days per week","uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].maxWorkingDays.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"maximum working days per week","uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].maxWorkingDays.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].maxWorkingDays","typeLabel":"integer\u003cint32> | null"},"maxShiftLength":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"maximum shift length","uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].maxShiftLength.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"maximum shift length","uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].maxShiftLength.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].maxShiftLength","typeLabel":"string\u003c> | null"},"minShiftLength":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"minimum shift length","uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].minShiftLength.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"minimum shift length","uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].minShiftLength.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].minShiftLength","typeLabel":"string\u003c> | null"},"latestShiftStart":{"oneOf":[{"type":"string","format":"","examples":["13:45:30.123456789"],"description":"latest shift start","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"},"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].latestShiftStart.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["13:45:30.123456789"],"description":"latest shift start","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"},"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].latestShiftStart.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].latestShiftStart","typeLabel":"string\u003c> | null"},"earliestShiftStart":{"oneOf":[{"type":"string","format":"","examples":["13:45:30.123456789"],"description":"earliest shift start","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"},"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].earliestShiftStart.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["13:45:30.123456789"],"description":"earliest shift start","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"},"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].earliestShiftStart.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].earliestShiftStart","typeLabel":"string\u003c> | null"},"latestShiftEnd":{"oneOf":[{"type":"string","format":"","examples":["13:45:30.123456789"],"description":"latest shift end","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"},"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].latestShiftEnd.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["13:45:30.123456789"],"description":"latest shift end","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"},"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].latestShiftEnd.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX].latestShiftEnd","typeLabel":"string\u003c> | null"}},"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"employees.items.[INDEX].contracts.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["name"],"description":"Contract of the employee","properties":{"name":{"oneOf":[{"type":"string","maxLength":255,"pattern":"^(?!.*\\$\\{)[^\u003c>\"';`\\\\]*$","description":"name of the contract"},{"type":"null","maxLength":255,"pattern":"^(?!.*\\$\\{)[^\u003c>\"';`\\\\]*$","description":"name of the contract"}]},"max":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"maximum working time per week"},{"type":"null","format":"","examples":["P1D"],"description":"maximum working time per week"}]},"min":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"minimum working time per week"},{"type":"null","format":"","examples":["P1D"],"description":"minimum working time per week"}]},"maxConsecutiveWorkDays":{"oneOf":[{"type":"integer","format":"int32","description":"maximum consecutive work days"},{"type":"null","format":"int32","description":"maximum consecutive work days"}]},"maxShiftsDay":{"oneOf":[{"type":"integer","format":"int32","description":"maximum shifts per day"},{"type":"null","format":"int32","description":"maximum shifts per day"}]},"minRestBetweenShiftsSameDay":{"oneOf":[{"type":"integer","format":"int32","description":"minimum rest between shifts on the same day"},{"type":"null","format":"int32","description":"minimum rest between shifts on the same day"}]},"minRest":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"minimum rest between shifts"},{"type":"null","format":"","examples":["P1D"],"description":"minimum rest between shifts"}]},"maxWorkingDays":{"oneOf":[{"type":"integer","format":"int32","description":"maximum working days per week"},{"type":"null","format":"int32","description":"maximum working days per week"}]},"maxShiftLength":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"maximum shift length"},{"type":"null","format":"","examples":["P1D"],"description":"maximum shift length"}]},"minShiftLength":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"minimum shift length"},{"type":"null","format":"","examples":["P1D"],"description":"minimum shift length"}]},"latestShiftStart":{"oneOf":[{"type":"string","format":"","examples":["13:45:30.123456789"],"description":"latest shift start","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"}},{"type":"null","format":"","examples":["13:45:30.123456789"],"description":"latest shift start","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"}}]},"earliestShiftStart":{"oneOf":[{"type":"string","format":"","examples":["13:45:30.123456789"],"description":"earliest shift start","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"}},{"type":"null","format":"","examples":["13:45:30.123456789"],"description":"earliest shift start","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"}}]},"latestShiftEnd":{"oneOf":[{"type":"string","format":"","examples":["13:45:30.123456789"],"description":"latest shift end","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"}},{"type":"null","format":"","examples":["13:45:30.123456789"],"description":"latest shift end","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"}}]}}},"uniqueKey":"employees.items.[INDEX].contracts.oneOf.1","typeLabel":"null"}],"uniqueKey":"employees.items.[INDEX].contracts","typeLabel":"object[] | null"}},"uniqueKey":"employees.items.[INDEX]","typeLabel":"object"},"description":"List of employees","title":"employees","isRequired":true,"uniqueKey":"employees","typeLabel":"employees · object[]"},"shifts":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"object","required":["name","from","to","min","max"],"description":"Shift to be filled","properties":{"name":{"type":"string","maxLength":255,"pattern":"^(?!.*\\$\\{)[^\u003c>\"';`\\\\]*$","description":"Name of the shift","isRequired":true,"uniqueKey":"shifts.items.[INDEX].name","typeLabel":"string"},"from":{"type":"string","format":"date-time","examples":["2022-03-10T12:15:50"],"description":"Start time of the shift","isRequired":true,"uniqueKey":"shifts.items.[INDEX].from","typeLabel":"string\u003cdate-time>"},"to":{"type":"string","format":"date-time","examples":["2022-03-10T12:15:50"],"description":"End time of the shift","isRequired":true,"uniqueKey":"shifts.items.[INDEX].to","typeLabel":"string\u003cdate-time>"},"min":{"oneOf":[{"type":"integer","format":"int32","description":"Minimum number of employees assigned to this shift.","isRequired":true,"uniqueKey":"shifts.items.[INDEX].min.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"Minimum number of employees assigned to this shift.","isRequired":true,"uniqueKey":"shifts.items.[INDEX].min.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"shifts.items.[INDEX].min","typeLabel":"integer\u003cint32> | null"},"max":{"oneOf":[{"type":"integer","format":"int32","description":"Maximum number of employees assigned to this shift.","isRequired":true,"uniqueKey":"shifts.items.[INDEX].max.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"Maximum number of employees assigned to this shift.","isRequired":true,"uniqueKey":"shifts.items.[INDEX].max.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"shifts.items.[INDEX].max","typeLabel":"integer\u003cint32> | null"},"tags":{"oneOf":[{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","maxLength":255,"pattern":"^(?!.*\\$\\{)[^\u003c>\"';`\\\\\\x00]*$","isRequired":true,"uniqueKey":"shifts.items.[INDEX].tags.oneOf.0.items.[INDEX].name","typeLabel":"string"}},"uniqueKey":"shifts.items.[INDEX].tags.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Shift tags. Used to identify groups of shifts in rules.","uniqueKey":"shifts.items.[INDEX].tags.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","maxLength":255,"pattern":"^(?!.*\\$\\{)[^\u003c>\"';`\\\\\\x00]*$"}}},"description":"Shift tags. Used to identify groups of shifts in rules.","uniqueKey":"shifts.items.[INDEX].tags.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].tags","typeLabel":"object[] | null"},"skills":{"oneOf":[{"type":"array","items":{"type":"object","required":["name"],"description":"Skill requirement on a shift level","properties":{"name":{"type":"string","description":"name of the skill","isRequired":true,"uniqueKey":"shifts.items.[INDEX].skills.oneOf.0.items.[INDEX].name","typeLabel":"string"},"hard":{"oneOf":[{"type":"boolean","description":"Hard requirement or not. If not, the skill is a soft skill requirement that will act as an affinity.","uniqueKey":"shifts.items.[INDEX].skills.oneOf.0.items.[INDEX].hard.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Hard requirement or not. If not, the skill is a soft skill requirement that will act as an affinity.","uniqueKey":"shifts.items.[INDEX].skills.oneOf.0.items.[INDEX].hard.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].skills.oneOf.0.items.[INDEX].hard","typeLabel":"boolean | null"},"weight":{"oneOf":[{"type":"integer","format":"int32","description":"weight of the skill","uniqueKey":"shifts.items.[INDEX].skills.oneOf.0.items.[INDEX].weight.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"weight of the skill","uniqueKey":"shifts.items.[INDEX].skills.oneOf.0.items.[INDEX].weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].skills.oneOf.0.items.[INDEX].weight","typeLabel":"integer\u003cint32> | null"}},"uniqueKey":"shifts.items.[INDEX].skills.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Skills required for the shift","uniqueKey":"shifts.items.[INDEX].skills.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["name"],"description":"Skill requirement on a shift level","properties":{"name":{"type":"string","description":"name of the skill"},"hard":{"oneOf":[{"type":"boolean","description":"Hard requirement or not. If not, the skill is a soft skill requirement that will act as an affinity."},{"type":"null","description":"Hard requirement or not. If not, the skill is a soft skill requirement that will act as an affinity."}]},"weight":{"oneOf":[{"type":"integer","format":"int32","description":"weight of the skill"},{"type":"null","format":"int32","description":"weight of the skill"}]}}},"description":"Skills required for the shift","uniqueKey":"shifts.items.[INDEX].skills.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].skills","typeLabel":"object[] | null"},"priority":{"oneOf":[{"type":"integer","format":"int64","description":"Priority of the shift. High priority shifts get assigned more","minimum":0,"uniqueKey":"shifts.items.[INDEX].priority.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","format":"int64","description":"Priority of the shift. High priority shifts get assigned more","minimum":0,"uniqueKey":"shifts.items.[INDEX].priority.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].priority","typeLabel":"integer\u003cint64> | null"},"cost":{"oneOf":[{"type":"integer","format":"int64","description":"Financial cost of the shift","minimum":0,"uniqueKey":"shifts.items.[INDEX].cost.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","format":"int64","description":"Financial cost of the shift","minimum":0,"uniqueKey":"shifts.items.[INDEX].cost.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].cost","typeLabel":"integer\u003cint64> | null"},"rests":{"oneOf":[{"type":"array","items":{"type":"object","description":"Rest time before and after shifts","properties":{"periodType":{"oneOf":[{"type":"string","description":"Rest type (`CONSECUTIVE` or `WEEKLY`)","enum":["DAILY","WEEKLY","MONTHLY","SCHEDULE"],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].periodType.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].periodType.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].periodType","typeLabel":"enum\u003cstring> | null"},"tags":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].tags.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Filter by shift tag","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].tags.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Filter by shift tag","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].tags.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].tags","typeLabel":"string[] | null"},"excludes":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].excludes.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Filter by shift tag excludes","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].excludes.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Filter by shift tag excludes","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].excludes.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].excludes","typeLabel":"string[] | null"},"period":{"oneOf":[{"type":"object","description":"Period","properties":{"from":{"oneOf":[{"type":"string","description":"Start of the period","format":"date-time","example":"2022-03-10T12:15:50","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.from.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.from.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.from","typeLabel":"string\u003cdate-time> | null"},"to":{"oneOf":[{"type":"string","description":"End of the period","format":"date-time","example":"2022-03-10T12:15:50","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.to.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.to.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.to","typeLabel":"string\u003cdate-time> | null"},"duration":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.duration.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.duration.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.duration","typeLabel":"string\u003c> | null"},"period":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.period.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.period.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.period","typeLabel":"string\u003c> | null"},"excludes":{"oneOf":[{"type":"array","items":{"type":"string","format":"date","examples":["2022-03-10"],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.excludes.oneOf.0.items.[INDEX]","typeLabel":"string\u003cdate>"},"description":"List of dates to exclude from the from/to period.","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.excludes.oneOf.0","typeLabel":"string\u003cdate>[]"},{"type":"null","items":{"type":"string","format":"date","examples":["2022-03-10"]},"description":"List of dates to exclude from the from/to period.","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.excludes.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.excludes","typeLabel":"string\u003cdate>[] | null"},"type":{"oneOf":[{"type":"string","enum":["DAILY","WEEKLY","MONTHLY","SCHEDULE"],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.type.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0.type","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].period","typeLabel":"object | null"},"min":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Minimum duration","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].min.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Minimum duration","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].min.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].min","typeLabel":"string\u003c> | null"},"minConsecutive":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Minimum consecutive duration of a rest.","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].minConsecutive.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Minimum consecutive duration of a rest.","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].minConsecutive.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].minConsecutive","typeLabel":"string\u003c> | null"},"max":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Maximum duration","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].max.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Maximum duration","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].max.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].max","typeLabel":"string\u003c> | null"},"frequency":{"oneOf":[{"type":"integer","format":"int32","description":"Maximum number of rest periods","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].frequency.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"Maximum number of rest periods","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].frequency.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].frequency","typeLabel":"integer\u003cint32> | null"},"sequence":{"oneOf":[{"type":"string","description":"If the rest needs to be `BEFORE` or `AFTER` a shift (`tags` must be applied as well) ","enum":["BEFORE","AFTER","CUMULATIVE"],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].sequence.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].sequence.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX].sequence","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"shifts.items.[INDEX].rests.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Shift rests can define required idle/rest time after the shift.","uniqueKey":"shifts.items.[INDEX].rests.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","description":"Rest time before and after shifts","properties":{"periodType":{"oneOf":[{"type":"string","description":"Rest type (`CONSECUTIVE` or `WEEKLY`)","enum":["DAILY","WEEKLY","MONTHLY","SCHEDULE"]},{"type":"null"}]},"tags":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"Filter by shift tag"},{"type":"null","items":{"type":"string"},"description":"Filter by shift tag"}]},"excludes":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"Filter by shift tag excludes"},{"type":"null","items":{"type":"string"},"description":"Filter by shift tag excludes"}]},"period":{"oneOf":[{"type":"object","description":"Period","properties":{"from":{"oneOf":[{"type":"string","description":"Start of the period","format":"date-time","example":"2022-03-10T12:15:50"},{"type":"null"}]},"to":{"oneOf":[{"type":"string","description":"End of the period","format":"date-time","example":"2022-03-10T12:15:50"},{"type":"null"}]},"duration":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"}]},"period":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"}]},"excludes":{"oneOf":[{"type":"array","items":{"type":"string","format":"date","examples":["2022-03-10"]},"description":"List of dates to exclude from the from/to period."},{"type":"null","items":{"type":"string","format":"date","examples":["2022-03-10"]},"description":"List of dates to exclude from the from/to period."}]},"type":{"oneOf":[{"type":"string","enum":["DAILY","WEEKLY","MONTHLY","SCHEDULE"]},{"type":"null"}]}}},{"type":"null"}]},"min":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Minimum duration"},{"type":"null","format":"","examples":["P1D"],"description":"Minimum duration"}]},"minConsecutive":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Minimum consecutive duration of a rest."},{"type":"null","format":"","examples":["P1D"],"description":"Minimum consecutive duration of a rest."}]},"max":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Maximum duration"},{"type":"null","format":"","examples":["P1D"],"description":"Maximum duration"}]},"frequency":{"oneOf":[{"type":"integer","format":"int32","description":"Maximum number of rest periods"},{"type":"null","format":"int32","description":"Maximum number of rest periods"}]},"sequence":{"oneOf":[{"type":"string","description":"If the rest needs to be `BEFORE` or `AFTER` a shift (`tags` must be applied as well) ","enum":["BEFORE","AFTER","CUMULATIVE"]},{"type":"null"}]}}},"description":"Shift rests can define required idle/rest time after the shift.","uniqueKey":"shifts.items.[INDEX].rests.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].rests","typeLabel":"object[] | null"},"blocklist":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"shifts.items.[INDEX].blocklist.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Maximum number of employees assigned to this shift.","uniqueKey":"shifts.items.[INDEX].blocklist.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Maximum number of employees assigned to this shift.","uniqueKey":"shifts.items.[INDEX].blocklist.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].blocklist","typeLabel":"string[] | null"},"value":{"oneOf":[{"type":"integer","format":"int32","uniqueKey":"shifts.items.[INDEX].value.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","uniqueKey":"shifts.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].value","typeLabel":"integer\u003cint32> | null"},"employees":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"shifts.items.[INDEX].employees.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueKey":"shifts.items.[INDEX].employees.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"uniqueKey":"shifts.items.[INDEX].employees.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].employees","typeLabel":"string[] | null"},"locked":{"oneOf":[{"type":"array","items":{"type":"boolean","uniqueKey":"shifts.items.[INDEX].locked.oneOf.0.items.[INDEX]","typeLabel":"boolean"},"uniqueKey":"shifts.items.[INDEX].locked.oneOf.0","typeLabel":"boolean[]"},{"type":"null","items":{"type":"boolean"},"uniqueKey":"shifts.items.[INDEX].locked.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].locked","typeLabel":"boolean[] | null"},"location":{"oneOf":[{"type":"object","description":"Location","properties":{"lat":{"type":"number","format":"double","examples":[51.12042],"description":"latitude of the location","uniqueKey":"shifts.items.[INDEX].location.oneOf.0.lat","typeLabel":"number\u003cdouble>"},"lon":{"type":"number","format":"double","examples":[4.23054],"description":"longitude of the location","uniqueKey":"shifts.items.[INDEX].location.oneOf.0.lon","typeLabel":"number\u003cdouble>"}},"uniqueKey":"shifts.items.[INDEX].location.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"shifts.items.[INDEX].location.oneOf.1","typeLabel":"null"}],"uniqueKey":"shifts.items.[INDEX].location","typeLabel":"object | null"}},"uniqueKey":"shifts.items.[INDEX]","typeLabel":"object"},"description":"List of shifts that should be assigned to employees","isRequired":true,"uniqueKey":"shifts","typeLabel":"object[]"},"rules":{"oneOf":[{"type":"array","uniqueItems":true,"items":{"type":"object","required":["constraint","type"],"description":"Rule that the solver needs to take into account.","properties":{"constraint":{"type":"string","enum":["COUNTER","SEQUENCE"],"description":"Type of constraint. `COUNTER` or `SEQUENCE`. A counter counts the number of occurrences and the constraint ","isRequired":true,"uniqueKey":"rules.oneOf.0.items.[INDEX].constraint","typeLabel":"enum\u003cstring>"},"type":{"type":"string","enum":["HOURS_WORKED","DAYS_WORKED","DAYS_IDLE","WEEKENDS_WORKED","WEEKENDS_IDLE","SHIFT_TYPES_WORKED","SHIFT_TYPES_HOURS_WORKED","MAX_CONSECUTIVE_DAYS"],"description":"Type of rule. `HOURS_WORKED`, `DAYS_WORKED`, `DAYS_IDLE`, `WEEKENDS_WORKED`, `WEEKENDS_IDLE`, `SHIFT_TYPES_WORKED` or `SHIFT_TYPES_HOURS_WORKED`","isRequired":true,"uniqueKey":"rules.oneOf.0.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"period":{"oneOf":[{"type":"object","description":"Period","properties":{"from":{"oneOf":[{"type":"string","description":"Start of the period","format":"date-time","example":"2022-03-10T12:15:50","uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.from.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.from.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.from","typeLabel":"string\u003cdate-time> | null"},"to":{"oneOf":[{"type":"string","description":"End of the period","format":"date-time","example":"2022-03-10T12:15:50","uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.to.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.to.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.to","typeLabel":"string\u003cdate-time> | null"},"duration":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.duration.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.duration.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.duration","typeLabel":"string\u003c> | null"},"period":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.period.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.period.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.period","typeLabel":"string\u003c> | null"},"excludes":{"oneOf":[{"type":"array","items":{"type":"string","format":"date","examples":["2022-03-10"],"uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.excludes.oneOf.0.items.[INDEX]","typeLabel":"string\u003cdate>"},"description":"List of dates to exclude from the from/to period.","uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.excludes.oneOf.0","typeLabel":"string\u003cdate>[]"},{"type":"null","items":{"type":"string","format":"date","examples":["2022-03-10"]},"description":"List of dates to exclude from the from/to period.","uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.excludes.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.excludes","typeLabel":"string\u003cdate>[] | null"},"type":{"oneOf":[{"type":"string","enum":["DAILY","WEEKLY","MONTHLY","SCHEDULE"],"uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.type.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0.type","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"rules.oneOf.0.items.[INDEX].period.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.oneOf.0.items.[INDEX].period","typeLabel":"object | null"},"min":{"oneOf":[{"type":"integer","format":"int32","description":"Minimum number of `type` property needed to fulfill this rule.","uniqueKey":"rules.oneOf.0.items.[INDEX].min.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"Minimum number of `type` property needed to fulfill this rule.","uniqueKey":"rules.oneOf.0.items.[INDEX].min.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.oneOf.0.items.[INDEX].min","typeLabel":"integer\u003cint32> | null"},"max":{"oneOf":[{"type":"integer","format":"int32","description":"Maximum number of `type` property needed to fulfill this rule.","uniqueKey":"rules.oneOf.0.items.[INDEX].max.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"Maximum number of `type` property needed to fulfill this rule.","uniqueKey":"rules.oneOf.0.items.[INDEX].max.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.oneOf.0.items.[INDEX].max","typeLabel":"integer\u003cint32> | null"},"shifts":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"rules.oneOf.0.items.[INDEX].shifts.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Shift tags to filter this rule by. For example only shifts with the tag `EARLY`.","uniqueKey":"rules.oneOf.0.items.[INDEX].shifts.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Shift tags to filter this rule by. For example only shifts with the tag `EARLY`.","uniqueKey":"rules.oneOf.0.items.[INDEX].shifts.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.oneOf.0.items.[INDEX].shifts","typeLabel":"string[] | null"},"then":{"oneOf":[{"type":"object","description":"Period rule. Consequence of this rule.","uniqueKey":"rules.oneOf.0.items.[INDEX].then.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"rules.oneOf.0.items.[INDEX].then.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.oneOf.0.items.[INDEX].then","typeLabel":"object | null"}},"uniqueKey":"rules.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"List of Rules. Rules can be Counters or Series.","uniqueKey":"rules.oneOf.0","typeLabel":"object[]"},{"type":"null","uniqueItems":true,"items":{"type":"object","required":["constraint","type"],"description":"Rule that the solver needs to take into account.","properties":{"constraint":{"type":"string","enum":["COUNTER","SEQUENCE"],"description":"Type of constraint. `COUNTER` or `SEQUENCE`. A counter counts the number of occurrences and the constraint "},"type":{"type":"string","enum":["HOURS_WORKED","DAYS_WORKED","DAYS_IDLE","WEEKENDS_WORKED","WEEKENDS_IDLE","SHIFT_TYPES_WORKED","SHIFT_TYPES_HOURS_WORKED","MAX_CONSECUTIVE_DAYS"],"description":"Type of rule. `HOURS_WORKED`, `DAYS_WORKED`, `DAYS_IDLE`, `WEEKENDS_WORKED`, `WEEKENDS_IDLE`, `SHIFT_TYPES_WORKED` or `SHIFT_TYPES_HOURS_WORKED`"},"period":{"oneOf":[{"type":"object","description":"Period","properties":{"from":{"oneOf":[{"type":"string","description":"Start of the period","format":"date-time","example":"2022-03-10T12:15:50"},{"type":"null"}]},"to":{"oneOf":[{"type":"string","description":"End of the period","format":"date-time","example":"2022-03-10T12:15:50"},{"type":"null"}]},"duration":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"}]},"period":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"}]},"excludes":{"oneOf":[{"type":"array","items":{"type":"string","format":"date","examples":["2022-03-10"]},"description":"List of dates to exclude from the from/to period."},{"type":"null","items":{"type":"string","format":"date","examples":["2022-03-10"]},"description":"List of dates to exclude from the from/to period."}]},"type":{"oneOf":[{"type":"string","enum":["DAILY","WEEKLY","MONTHLY","SCHEDULE"]},{"type":"null"}]}}},{"type":"null"}]},"min":{"oneOf":[{"type":"integer","format":"int32","description":"Minimum number of `type` property needed to fulfill this rule."},{"type":"null","format":"int32","description":"Minimum number of `type` property needed to fulfill this rule."}]},"max":{"oneOf":[{"type":"integer","format":"int32","description":"Maximum number of `type` property needed to fulfill this rule."},{"type":"null","format":"int32","description":"Maximum number of `type` property needed to fulfill this rule."}]},"shifts":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"Shift tags to filter this rule by. For example only shifts with the tag `EARLY`."},{"type":"null","items":{"type":"string"},"description":"Shift tags to filter this rule by. For example only shifts with the tag `EARLY`."}]},"then":{"oneOf":[{"type":"object","description":"Period rule. Consequence of this rule."},{"type":"null"}]}}},"description":"List of Rules. Rules can be Counters or Series.","uniqueKey":"rules.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules","typeLabel":"object[] | null"},"rests":{"oneOf":[{"type":"array","uniqueItems":true,"items":{"type":"object","description":"Rest time before and after shifts","properties":{"periodType":{"oneOf":[{"type":"string","description":"Rest type (`CONSECUTIVE` or `WEEKLY`)","enum":["DAILY","WEEKLY","MONTHLY","SCHEDULE"],"uniqueKey":"rests.oneOf.0.items.[INDEX].periodType.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"rests.oneOf.0.items.[INDEX].periodType.oneOf.1","typeLabel":"null"}],"uniqueKey":"rests.oneOf.0.items.[INDEX].periodType","typeLabel":"enum\u003cstring> | null"},"tags":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"rests.oneOf.0.items.[INDEX].tags.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Filter by shift tag","uniqueKey":"rests.oneOf.0.items.[INDEX].tags.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Filter by shift tag","uniqueKey":"rests.oneOf.0.items.[INDEX].tags.oneOf.1","typeLabel":"null"}],"uniqueKey":"rests.oneOf.0.items.[INDEX].tags","typeLabel":"string[] | null"},"excludes":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"rests.oneOf.0.items.[INDEX].excludes.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Filter by shift tag excludes","uniqueKey":"rests.oneOf.0.items.[INDEX].excludes.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Filter by shift tag excludes","uniqueKey":"rests.oneOf.0.items.[INDEX].excludes.oneOf.1","typeLabel":"null"}],"uniqueKey":"rests.oneOf.0.items.[INDEX].excludes","typeLabel":"string[] | null"},"period":{"oneOf":[{"type":"object","description":"Period","properties":{"from":{"oneOf":[{"type":"string","description":"Start of the period","format":"date-time","example":"2022-03-10T12:15:50","uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.from.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.from.oneOf.1","typeLabel":"null"}],"uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.from","typeLabel":"string\u003cdate-time> | null"},"to":{"oneOf":[{"type":"string","description":"End of the period","format":"date-time","example":"2022-03-10T12:15:50","uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.to.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.to.oneOf.1","typeLabel":"null"}],"uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.to","typeLabel":"string\u003cdate-time> | null"},"duration":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.duration.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.duration.oneOf.1","typeLabel":"null"}],"uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.duration","typeLabel":"string\u003c> | null"},"period":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.period.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.period.oneOf.1","typeLabel":"null"}],"uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.period","typeLabel":"string\u003c> | null"},"excludes":{"oneOf":[{"type":"array","items":{"type":"string","format":"date","examples":["2022-03-10"],"uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.excludes.oneOf.0.items.[INDEX]","typeLabel":"string\u003cdate>"},"description":"List of dates to exclude from the from/to period.","uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.excludes.oneOf.0","typeLabel":"string\u003cdate>[]"},{"type":"null","items":{"type":"string","format":"date","examples":["2022-03-10"]},"description":"List of dates to exclude from the from/to period.","uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.excludes.oneOf.1","typeLabel":"null"}],"uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.excludes","typeLabel":"string\u003cdate>[] | null"},"type":{"oneOf":[{"type":"string","enum":["DAILY","WEEKLY","MONTHLY","SCHEDULE"],"uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.type.oneOf.1","typeLabel":"null"}],"uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0.type","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"rests.oneOf.0.items.[INDEX].period.oneOf.1","typeLabel":"null"}],"uniqueKey":"rests.oneOf.0.items.[INDEX].period","typeLabel":"object | null"},"min":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Minimum duration","uniqueKey":"rests.oneOf.0.items.[INDEX].min.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Minimum duration","uniqueKey":"rests.oneOf.0.items.[INDEX].min.oneOf.1","typeLabel":"null"}],"uniqueKey":"rests.oneOf.0.items.[INDEX].min","typeLabel":"string\u003c> | null"},"minConsecutive":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Minimum consecutive duration of a rest.","uniqueKey":"rests.oneOf.0.items.[INDEX].minConsecutive.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Minimum consecutive duration of a rest.","uniqueKey":"rests.oneOf.0.items.[INDEX].minConsecutive.oneOf.1","typeLabel":"null"}],"uniqueKey":"rests.oneOf.0.items.[INDEX].minConsecutive","typeLabel":"string\u003c> | null"},"max":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Maximum duration","uniqueKey":"rests.oneOf.0.items.[INDEX].max.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Maximum duration","uniqueKey":"rests.oneOf.0.items.[INDEX].max.oneOf.1","typeLabel":"null"}],"uniqueKey":"rests.oneOf.0.items.[INDEX].max","typeLabel":"string\u003c> | null"},"frequency":{"oneOf":[{"type":"integer","format":"int32","description":"Maximum number of rest periods","uniqueKey":"rests.oneOf.0.items.[INDEX].frequency.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"Maximum number of rest periods","uniqueKey":"rests.oneOf.0.items.[INDEX].frequency.oneOf.1","typeLabel":"null"}],"uniqueKey":"rests.oneOf.0.items.[INDEX].frequency","typeLabel":"integer\u003cint32> | null"},"sequence":{"oneOf":[{"type":"string","description":"If the rest needs to be `BEFORE` or `AFTER` a shift (`tags` must be applied as well) ","enum":["BEFORE","AFTER","CUMULATIVE"],"uniqueKey":"rests.oneOf.0.items.[INDEX].sequence.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"rests.oneOf.0.items.[INDEX].sequence.oneOf.1","typeLabel":"null"}],"uniqueKey":"rests.oneOf.0.items.[INDEX].sequence","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"rests.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"List of Rest definitions. A rest is defined for a fixed period or a duration.","uniqueKey":"rests.oneOf.0","typeLabel":"object[]"},{"type":"null","uniqueItems":true,"items":{"type":"object","description":"Rest time before and after shifts","properties":{"periodType":{"oneOf":[{"type":"string","description":"Rest type (`CONSECUTIVE` or `WEEKLY`)","enum":["DAILY","WEEKLY","MONTHLY","SCHEDULE"]},{"type":"null"}]},"tags":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"Filter by shift tag"},{"type":"null","items":{"type":"string"},"description":"Filter by shift tag"}]},"excludes":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"Filter by shift tag excludes"},{"type":"null","items":{"type":"string"},"description":"Filter by shift tag excludes"}]},"period":{"oneOf":[{"type":"object","description":"Period","properties":{"from":{"oneOf":[{"type":"string","description":"Start of the period","format":"date-time","example":"2022-03-10T12:15:50"},{"type":"null"}]},"to":{"oneOf":[{"type":"string","description":"End of the period","format":"date-time","example":"2022-03-10T12:15:50"},{"type":"null"}]},"duration":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"}]},"period":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"}]},"excludes":{"oneOf":[{"type":"array","items":{"type":"string","format":"date","examples":["2022-03-10"]},"description":"List of dates to exclude from the from/to period."},{"type":"null","items":{"type":"string","format":"date","examples":["2022-03-10"]},"description":"List of dates to exclude from the from/to period."}]},"type":{"oneOf":[{"type":"string","enum":["DAILY","WEEKLY","MONTHLY","SCHEDULE"]},{"type":"null"}]}}},{"type":"null"}]},"min":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Minimum duration"},{"type":"null","format":"","examples":["P1D"],"description":"Minimum duration"}]},"minConsecutive":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Minimum consecutive duration of a rest."},{"type":"null","format":"","examples":["P1D"],"description":"Minimum consecutive duration of a rest."}]},"max":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Maximum duration"},{"type":"null","format":"","examples":["P1D"],"description":"Maximum duration"}]},"frequency":{"oneOf":[{"type":"integer","format":"int32","description":"Maximum number of rest periods"},{"type":"null","format":"int32","description":"Maximum number of rest periods"}]},"sequence":{"oneOf":[{"type":"string","description":"If the rest needs to be `BEFORE` or `AFTER` a shift (`tags` must be applied as well) ","enum":["BEFORE","AFTER","CUMULATIVE"]},{"type":"null"}]}}},"description":"List of Rest definitions. A rest is defined for a fixed period or a duration.","uniqueKey":"rests.oneOf.1","typeLabel":"null"}],"uniqueKey":"rests","typeLabel":"object[] | null"},"demands":{"oneOf":[{"type":"array","uniqueItems":true,"items":{"type":"object","required":["from","to","skills","name"],"description":"The number of employees you need at time intervals defined by `from`/`to`.","properties":{"from":{"type":"string","format":"date-time","examples":["2022-03-10T12:15:50-04:00"],"description":"The start time of the shift demand","isRequired":true,"uniqueKey":"demands.oneOf.0.items.[INDEX].from","typeLabel":"string\u003cdate-time>"},"to":{"type":"string","format":"date-time","examples":["2022-03-10T12:15:50-04:00"],"description":"The end time of the shift demand","isRequired":true,"uniqueKey":"demands.oneOf.0.items.[INDEX].to","typeLabel":"string\u003cdate-time>"},"skills":{"oneOf":[{"type":"array","items":{"type":"object","required":["name"],"description":"Skill requirement on a shift level","properties":{"name":{"type":"string","description":"name of the skill","isRequired":true,"uniqueKey":"demands.oneOf.0.items.[INDEX].skills.oneOf.0.items.[INDEX].name","typeLabel":"string"},"hard":{"oneOf":[{"type":"boolean","description":"Hard requirement or not. If not, the skill is a soft skill requirement that will act as an affinity.","uniqueKey":"demands.oneOf.0.items.[INDEX].skills.oneOf.0.items.[INDEX].hard.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Hard requirement or not. If not, the skill is a soft skill requirement that will act as an affinity.","uniqueKey":"demands.oneOf.0.items.[INDEX].skills.oneOf.0.items.[INDEX].hard.oneOf.1","typeLabel":"null"}],"uniqueKey":"demands.oneOf.0.items.[INDEX].skills.oneOf.0.items.[INDEX].hard","typeLabel":"boolean | null"},"weight":{"oneOf":[{"type":"integer","format":"int32","description":"weight of the skill","uniqueKey":"demands.oneOf.0.items.[INDEX].skills.oneOf.0.items.[INDEX].weight.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"weight of the skill","uniqueKey":"demands.oneOf.0.items.[INDEX].skills.oneOf.0.items.[INDEX].weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"demands.oneOf.0.items.[INDEX].skills.oneOf.0.items.[INDEX].weight","typeLabel":"integer\u003cint32> | null"}},"uniqueKey":"demands.oneOf.0.items.[INDEX].skills.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"The skills required for the shift demand","isRequired":true,"uniqueKey":"demands.oneOf.0.items.[INDEX].skills.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["name"],"description":"Skill requirement on a shift level","properties":{"name":{"type":"string","description":"name of the skill"},"hard":{"oneOf":[{"type":"boolean","description":"Hard requirement or not. If not, the skill is a soft skill requirement that will act as an affinity."},{"type":"null","description":"Hard requirement or not. If not, the skill is a soft skill requirement that will act as an affinity."}]},"weight":{"oneOf":[{"type":"integer","format":"int32","description":"weight of the skill"},{"type":"null","format":"int32","description":"weight of the skill"}]}}},"description":"The skills required for the shift demand","isRequired":true,"uniqueKey":"demands.oneOf.0.items.[INDEX].skills.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"demands.oneOf.0.items.[INDEX].skills","typeLabel":"object[] | null"},"name":{"type":"string","maxLength":255,"pattern":"^(?!.*\\$\\{)[^\u003c>\"';`\\\\]*$","isRequired":true,"uniqueKey":"demands.oneOf.0.items.[INDEX].name","typeLabel":"string"},"min":{"oneOf":[{"type":"integer","format":"int64","description":"The minimum number of shifts to create","uniqueKey":"demands.oneOf.0.items.[INDEX].min.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","format":"int64","description":"The minimum number of shifts to create","uniqueKey":"demands.oneOf.0.items.[INDEX].min.oneOf.1","typeLabel":"null"}],"uniqueKey":"demands.oneOf.0.items.[INDEX].min","typeLabel":"integer\u003cint64> | null"},"max":{"oneOf":[{"type":"integer","format":"int64","description":"The maximum number of shifts to create","uniqueKey":"demands.oneOf.0.items.[INDEX].max.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","format":"int64","description":"The maximum number of shifts to create","uniqueKey":"demands.oneOf.0.items.[INDEX].max.oneOf.1","typeLabel":"null"}],"uniqueKey":"demands.oneOf.0.items.[INDEX].max","typeLabel":"integer\u003cint64> | null"}},"uniqueKey":"demands.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"List of shift demands. Demands are periodic minima and maxima for a certain number of employees to be present.","uniqueKey":"demands.oneOf.0","typeLabel":"object[]"},{"type":"null","uniqueItems":true,"items":{"type":"object","required":["from","to","skills","name"],"description":"The number of employees you need at time intervals defined by `from`/`to`.","properties":{"from":{"type":"string","format":"date-time","examples":["2022-03-10T12:15:50-04:00"],"description":"The start time of the shift demand"},"to":{"type":"string","format":"date-time","examples":["2022-03-10T12:15:50-04:00"],"description":"The end time of the shift demand"},"skills":{"oneOf":[{"type":"array","items":{"type":"object","required":["name"],"description":"Skill requirement on a shift level","properties":{"name":{"type":"string","description":"name of the skill"},"hard":{"oneOf":[{"type":"boolean","description":"Hard requirement or not. If not, the skill is a soft skill requirement that will act as an affinity."},{"type":"null","description":"Hard requirement or not. If not, the skill is a soft skill requirement that will act as an affinity."}]},"weight":{"oneOf":[{"type":"integer","format":"int32","description":"weight of the skill"},{"type":"null","format":"int32","description":"weight of the skill"}]}}},"description":"The skills required for the shift demand"},{"type":"null","items":{"type":"object","required":["name"],"description":"Skill requirement on a shift level","properties":{"name":{"type":"string","description":"name of the skill"},"hard":{"oneOf":[{"type":"boolean","description":"Hard requirement or not. If not, the skill is a soft skill requirement that will act as an affinity."},{"type":"null","description":"Hard requirement or not. If not, the skill is a soft skill requirement that will act as an affinity."}]},"weight":{"oneOf":[{"type":"integer","format":"int32","description":"weight of the skill"},{"type":"null","format":"int32","description":"weight of the skill"}]}}},"description":"The skills required for the shift demand"}]},"min":{"oneOf":[{"type":"integer","format":"int64","description":"The minimum number of shifts to create"},{"type":"null","format":"int64","description":"The minimum number of shifts to create"}]},"max":{"oneOf":[{"type":"integer","format":"int64","description":"The maximum number of shifts to create"},{"type":"null","format":"int64","description":"The maximum number of shifts to create"}]},"name":{"type":"string","maxLength":255,"pattern":"^(?!.*\\$\\{)[^\u003c>\"';`\\\\]*$"}}},"description":"List of shift demands. Demands are periodic minima and maxima for a certain number of employees to be present.","uniqueKey":"demands.oneOf.1","typeLabel":"null"}],"uniqueKey":"demands","typeLabel":"object[] | null"},"patterns":{"oneOf":[{"type":"array","uniqueItems":true,"items":{"type":"object","description":"Pattern to describe (un)desired series of shifts. Based on a `satisfy` type (`PREFERRED`, `PROHIBITED`, or `UNPREFERRED`)","properties":{"type":{"oneOf":[{"type":"string","description":"`SINGLE_DAY` (spanning shifts in a single days) or `MULTI_DAY` (spanning shifts accross days)","enum":["SINGLE_DAY","MULTI_DAY"],"uniqueKey":"patterns.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"patterns.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"patterns.oneOf.0.items.[INDEX].type","typeLabel":"enum\u003cstring> | null"},"satisfy":{"oneOf":[{"type":"string","description":"(`PREFERRED`, `PROHIBITED`, or `UNPREFERRED`)","enum":["PREFERRED","PROHIBITED","UNPREFERRED"],"uniqueKey":"patterns.oneOf.0.items.[INDEX].satisfy.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"patterns.oneOf.0.items.[INDEX].satisfy.oneOf.1","typeLabel":"null"}],"uniqueKey":"patterns.oneOf.0.items.[INDEX].satisfy","typeLabel":"enum\u003cstring> | null"},"elements":{"oneOf":[{"type":"array","items":{"type":"object","description":"Single element to describe a shift on/off","properties":{"type":{"oneOf":[{"type":"string","description":"`ON` (doing that shift) or `OFF` (not doing that shift)","enum":["ON","OFF"],"uniqueKey":"patterns.oneOf.0.items.[INDEX].elements.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"patterns.oneOf.0.items.[INDEX].elements.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"patterns.oneOf.0.items.[INDEX].elements.oneOf.0.items.[INDEX].type","typeLabel":"enum\u003cstring> | null"},"tags":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"patterns.oneOf.0.items.[INDEX].elements.oneOf.0.items.[INDEX].tags.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"List of shift tags to include","uniqueKey":"patterns.oneOf.0.items.[INDEX].elements.oneOf.0.items.[INDEX].tags.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"List of shift tags to include","uniqueKey":"patterns.oneOf.0.items.[INDEX].elements.oneOf.0.items.[INDEX].tags.oneOf.1","typeLabel":"null"}],"uniqueKey":"patterns.oneOf.0.items.[INDEX].elements.oneOf.0.items.[INDEX].tags","typeLabel":"string[] | null"}},"uniqueKey":"patterns.oneOf.0.items.[INDEX].elements.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"List of Pattern Elements describing `ON`/`OFF` for several shifts","uniqueKey":"patterns.oneOf.0.items.[INDEX].elements.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","description":"Single element to describe a shift on/off","properties":{"type":{"oneOf":[{"type":"string","description":"`ON` (doing that shift) or `OFF` (not doing that shift)","enum":["ON","OFF"]},{"type":"null"}]},"tags":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"List of shift tags to include"},{"type":"null","items":{"type":"string"},"description":"List of shift tags to include"}]}}},"description":"List of Pattern Elements describing `ON`/`OFF` for several shifts","uniqueKey":"patterns.oneOf.0.items.[INDEX].elements.oneOf.1","typeLabel":"null"}],"uniqueKey":"patterns.oneOf.0.items.[INDEX].elements","typeLabel":"object[] | null"},"weight":{"oneOf":[{"type":"integer","format":"int32","description":"Importance (weight) of the Pattern","uniqueKey":"patterns.oneOf.0.items.[INDEX].weight.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"Importance (weight) of the Pattern","uniqueKey":"patterns.oneOf.0.items.[INDEX].weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"patterns.oneOf.0.items.[INDEX].weight","typeLabel":"integer\u003cint32> | null"}},"uniqueKey":"patterns.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"List of shift patterns. Patterns are sequences of shifts that can be desired or prohibited.","uniqueKey":"patterns.oneOf.0","typeLabel":"object[]"},{"type":"null","uniqueItems":true,"items":{"type":"object","description":"Pattern to describe (un)desired series of shifts. Based on a `satisfy` type (`PREFERRED`, `PROHIBITED`, or `UNPREFERRED`)","properties":{"type":{"oneOf":[{"type":"string","description":"`SINGLE_DAY` (spanning shifts in a single days) or `MULTI_DAY` (spanning shifts accross days)","enum":["SINGLE_DAY","MULTI_DAY"]},{"type":"null"}]},"satisfy":{"oneOf":[{"type":"string","description":"(`PREFERRED`, `PROHIBITED`, or `UNPREFERRED`)","enum":["PREFERRED","PROHIBITED","UNPREFERRED"]},{"type":"null"}]},"elements":{"oneOf":[{"type":"array","items":{"type":"object","description":"Single element to describe a shift on/off","properties":{"type":{"oneOf":[{"type":"string","description":"`ON` (doing that shift) or `OFF` (not doing that shift)","enum":["ON","OFF"]},{"type":"null"}]},"tags":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"List of shift tags to include"},{"type":"null","items":{"type":"string"},"description":"List of shift tags to include"}]}}},"description":"List of Pattern Elements describing `ON`/`OFF` for several shifts"},{"type":"null","items":{"type":"object","description":"Single element to describe a shift on/off","properties":{"type":{"oneOf":[{"type":"string","description":"`ON` (doing that shift) or `OFF` (not doing that shift)","enum":["ON","OFF"]},{"type":"null"}]},"tags":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"List of shift tags to include"},{"type":"null","items":{"type":"string"},"description":"List of shift tags to include"}]}}},"description":"List of Pattern Elements describing `ON`/`OFF` for several shifts"}]},"weight":{"oneOf":[{"type":"integer","format":"int32","description":"Importance (weight) of the Pattern"},{"type":"null","format":"int32","description":"Importance (weight) of the Pattern"}]}}},"description":"List of shift patterns. Patterns are sequences of shifts that can be desired or prohibited.","uniqueKey":"patterns.oneOf.1","typeLabel":"null"}],"uniqueKey":"patterns","typeLabel":"object[] | null"},"fairnessBuckets":{"oneOf":[{"type":"array","uniqueItems":true,"items":{"type":"object","required":["employees","shifts","target"],"description":"A FairnessBucket defines a group of Employees that should have fair shifts over the predefined shifts.","properties":{"employees":{"type":"array","items":{"type":"string","uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].employees.items.[INDEX]","typeLabel":"string"},"description":"The employees in the fairness bucket","isRequired":true,"uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].employees","typeLabel":"string[]"},"shifts":{"type":"array","items":{"type":"string","uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].shifts.items.[INDEX]","typeLabel":"string"},"description":"The shifts in the fairness bucket","isRequired":true,"uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].shifts","typeLabel":"string[]"},"target":{"type":"string","format":"","examples":["PT8H"],"description":"The target value of workload per employee","isRequired":true,"uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].target","typeLabel":"string\u003c>"},"period":{"type":"object","description":"Period","properties":{"from":{"oneOf":[{"type":"string","description":"Start of the period","format":"date-time","example":"2022-03-10T12:15:50","uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.from.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.from.oneOf.1","typeLabel":"null"}],"uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.from","typeLabel":"string\u003cdate-time> | null"},"to":{"oneOf":[{"type":"string","description":"End of the period","format":"date-time","example":"2022-03-10T12:15:50","uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.to.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.to.oneOf.1","typeLabel":"null"}],"uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.to","typeLabel":"string\u003cdate-time> | null"},"duration":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.duration.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.duration.oneOf.1","typeLabel":"null"}],"uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.duration","typeLabel":"string\u003c> | null"},"period":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.period.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to","uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.period.oneOf.1","typeLabel":"null"}],"uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.period","typeLabel":"string\u003c> | null"},"excludes":{"oneOf":[{"type":"array","items":{"type":"string","format":"date","examples":["2022-03-10"],"uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.excludes.oneOf.0.items.[INDEX]","typeLabel":"string\u003cdate>"},"description":"List of dates to exclude from the from/to period.","uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.excludes.oneOf.0","typeLabel":"string\u003cdate>[]"},{"type":"null","items":{"type":"string","format":"date","examples":["2022-03-10"]},"description":"List of dates to exclude from the from/to period.","uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.excludes.oneOf.1","typeLabel":"null"}],"uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.excludes","typeLabel":"string\u003cdate>[] | null"},"type":{"oneOf":[{"type":"string","enum":["DAILY","WEEKLY","MONTHLY","SCHEDULE"],"uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.type.oneOf.1","typeLabel":"null"}],"uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period.type","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX].period","typeLabel":"object"}},"uniqueKey":"fairnessBuckets.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Buckets or groups of employees where fairness in workload is required.","uniqueKey":"fairnessBuckets.oneOf.0","typeLabel":"object[]"},{"type":"null","uniqueItems":true,"items":{"type":"object","required":["employees","shifts","target"],"description":"A FairnessBucket defines a group of Employees that should have fair shifts over the predefined shifts.","properties":{"period":{"type":"object","description":"Period","properties":{"from":{"oneOf":[{"type":"string","description":"Start of the period","format":"date-time","example":"2022-03-10T12:15:50"},{"type":"null"}]},"to":{"oneOf":[{"type":"string","description":"End of the period","format":"date-time","example":"2022-03-10T12:15:50"},{"type":"null"}]},"duration":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"}]},"period":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"},{"type":"null","format":"","examples":["P1D"],"description":"Duration of the rolling period in ISO8601 format (e.g. P1D). Do not use this in combo with from/to"}]},"excludes":{"oneOf":[{"type":"array","items":{"type":"string","format":"date","examples":["2022-03-10"]},"description":"List of dates to exclude from the from/to period."},{"type":"null","items":{"type":"string","format":"date","examples":["2022-03-10"]},"description":"List of dates to exclude from the from/to period."}]},"type":{"oneOf":[{"type":"string","enum":["DAILY","WEEKLY","MONTHLY","SCHEDULE"]},{"type":"null"}]}}},"employees":{"type":"array","items":{"type":"string"},"description":"The employees in the fairness bucket"},"shifts":{"type":"array","items":{"type":"string"},"description":"The shifts in the fairness bucket"},"target":{"type":"string","format":"","examples":["PT8H"],"description":"The target value of workload per employee"}}},"description":"Buckets or groups of employees where fairness in workload is required.","uniqueKey":"fairnessBuckets.oneOf.1","typeLabel":"null"}],"uniqueKey":"fairnessBuckets","typeLabel":"object[] | null"},"requirements":{"oneOf":[{"type":"array","uniqueItems":true,"items":{"type":"object","required":["shifts","skill","value"],"description":"An optional list of shared resource requirements","properties":{"shifts":{"type":"array","items":{"type":"string","uniqueKey":"requirements.oneOf.0.items.[INDEX].shifts.items.[INDEX]","typeLabel":"string"},"description":"List of shifts that the requirement applies to","isRequired":true,"uniqueKey":"requirements.oneOf.0.items.[INDEX].shifts","typeLabel":"string[]"},"skill":{"type":"string","description":"The skill this requirement applies to","isRequired":true,"uniqueKey":"requirements.oneOf.0.items.[INDEX].skill","typeLabel":"string"},"value":{"type":"integer","format":"int32","description":"The number of shared resources required for this skill.","isRequired":true,"uniqueKey":"requirements.oneOf.0.items.[INDEX].value","typeLabel":"integer\u003cint32>"}},"uniqueKey":"requirements.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"List of shared skill requirements. Shared skills are skill requirements that govern a group of shifts.","uniqueKey":"requirements.oneOf.0","typeLabel":"object[]"},{"type":"null","uniqueItems":true,"items":{"type":"object","required":["shifts","skill","value"],"description":"An optional list of shared resource requirements","properties":{"shifts":{"type":"array","items":{"type":"string"},"description":"List of shifts that the requirement applies to"},"skill":{"type":"string","description":"The skill this requirement applies to"},"value":{"type":"integer","format":"int32","description":"The number of shared resources required for this skill."}}},"description":"List of shared skill requirements. Shared skills are skill requirements that govern a group of shifts.","uniqueKey":"requirements.oneOf.1","typeLabel":"null"}],"uniqueKey":"requirements","typeLabel":"object[] | null"},"assignments":{"oneOf":[{"type":"array","uniqueItems":true,"items":{"type":"object","required":["shift","employee"],"description":"Input assignment","properties":{"shift":{"type":"string","description":"Name of the shift","isRequired":true,"uniqueKey":"assignments.oneOf.0.items.[INDEX].shift","typeLabel":"string"},"employee":{"type":"string","description":"Name of the employee","isRequired":true,"uniqueKey":"assignments.oneOf.0.items.[INDEX].employee","typeLabel":"string"},"locked":{"type":"boolean","description":"If the shift is locked. Locked shifts cannot be touched by the solver","uniqueKey":"assignments.oneOf.0.items.[INDEX].locked","typeLabel":"boolean"}},"uniqueKey":"assignments.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"List of assignments that are pre-set. (optional)","uniqueKey":"assignments.oneOf.0","typeLabel":"object[]"},{"type":"null","uniqueItems":true,"items":{"type":"object","required":["shift","employee"],"description":"Input assignment","properties":{"shift":{"type":"string","description":"Name of the shift"},"employee":{"type":"string","description":"Name of the employee"},"locked":{"type":"boolean","description":"If the shift is locked. Locked shifts cannot be touched by the solver"}}},"description":"List of assignments that are pre-set. (optional)","uniqueKey":"assignments.oneOf.1","typeLabel":"null"}],"uniqueKey":"assignments","typeLabel":"object[] | null"},"weights":{"oneOf":[{"type":"object","description":"Weights adjust objectives and scores.","properties":{"unassigned":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.unassigned.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.unassigned.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.unassigned","typeLabel":"string | null"},"maxWorkingDays":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.maxWorkingDays.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.maxWorkingDays.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.maxWorkingDays","typeLabel":"string | null"},"concurrent":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.concurrent.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.concurrent.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.concurrent","typeLabel":"string | null"},"sameDay":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.sameDay.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.sameDay.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.sameDay","typeLabel":"string | null"},"minRest":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.minRest.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.minRest.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.minRest","typeLabel":"string | null"},"maxConsecutive":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.maxConsecutive.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.maxConsecutive.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.maxConsecutive","typeLabel":"string | null"},"working":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.working.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.working.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.working","typeLabel":"string | null"},"sameDayMinRest":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.sameDayMinRest.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.sameDayMinRest.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.sameDayMinRest","typeLabel":"string | null"},"minHours":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.minHours.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.minHours.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.minHours","typeLabel":"string | null"},"minHoursUnassigned":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.minHoursUnassigned.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.minHoursUnassigned.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.minHoursUnassigned","typeLabel":"string | null"},"maxHours":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.maxHours.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.maxHours.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.maxHours","typeLabel":"string | null"},"minShift":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.minShift.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.minShift.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.minShift","typeLabel":"string | null"},"maxShift":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.maxShift.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.maxShift.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.maxShift","typeLabel":"string | null"},"shiftStart":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.shiftStart.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.shiftStart.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.shiftStart","typeLabel":"string | null"},"latestShiftStart":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.latestShiftStart.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.latestShiftStart.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.latestShiftStart","typeLabel":"string | null"},"shiftEnd":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.shiftEnd.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.shiftEnd.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.shiftEnd","typeLabel":"string | null"},"dayOfWeek":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.dayOfWeek.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.dayOfWeek.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.dayOfWeek","typeLabel":"string | null"},"requirements":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.requirements.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.requirements.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.requirements","typeLabel":"string | null"},"availability":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.availability.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.availability.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.availability","typeLabel":"string | null"},"skills":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.skills.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.skills.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.skills","typeLabel":"string | null"},"criticalSkills":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.criticalSkills.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.criticalSkills.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.criticalSkills","typeLabel":"string | null"},"locked":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.locked.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.locked.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.locked","typeLabel":"string | null"},"blacklist":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.blacklist.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.blacklist.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.blacklist","typeLabel":"string | null"},"pref":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.pref.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.pref.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.pref","typeLabel":"string | null"},"costs":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.costs.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.costs.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.costs","typeLabel":"string | null"},"wages":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.wages.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.wages.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.wages","typeLabel":"string | null"},"efficiency":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.efficiency.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.efficiency.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.efficiency","typeLabel":"string | null"},"distance":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.distance.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.distance.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.distance","typeLabel":"string | null"},"distanceAL":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.distanceAL.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.distanceAL.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.distanceAL","typeLabel":"string | null"},"priority":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.priority.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.priority.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.priority","typeLabel":"string | null"},"softSkills":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.softSkills.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.softSkills.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.softSkills","typeLabel":"string | null"},"softSkillsLevel":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.softSkillsLevel.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.softSkillsLevel.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.softSkillsLevel","typeLabel":"string | null"},"fairness":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.fairness.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.fairness.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.fairness","typeLabel":"string | null"},"counterDaysWorked":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.counterDaysWorked.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.counterDaysWorked.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.counterDaysWorked","typeLabel":"string | null"},"counterDaysIdle":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.counterDaysIdle.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.counterDaysIdle.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.counterDaysIdle","typeLabel":"string | null"},"counterHoursWorked":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.counterHoursWorked.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.counterHoursWorked.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.counterHoursWorked","typeLabel":"string | null"},"counterShiftTypesWorked":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.counterShiftTypesWorked.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.counterShiftTypesWorked.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.counterShiftTypesWorked","typeLabel":"string | null"},"counterShiftTypesHours":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.counterShiftTypesHours.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.counterShiftTypesHours.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.counterShiftTypesHours","typeLabel":"string | null"},"counterWeekendsWorked":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.counterWeekendsWorked.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.counterWeekendsWorked.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.counterWeekendsWorked","typeLabel":"string | null"},"counterWeekendsIdle":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.counterWeekendsIdle.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.counterWeekendsIdle.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.counterWeekendsIdle","typeLabel":"string | null"},"counterMaxConsecutiveDays":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.counterMaxConsecutiveDays.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.counterMaxConsecutiveDays.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.counterMaxConsecutiveDays","typeLabel":"string | null"},"sequenceDaysWorked":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.sequenceDaysWorked.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.sequenceDaysWorked.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.sequenceDaysWorked","typeLabel":"string | null"},"sequenceDaysIdle":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.sequenceDaysIdle.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.sequenceDaysIdle.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.sequenceDaysIdle","typeLabel":"string | null"},"sequenceHoursWorked":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.sequenceHoursWorked.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.sequenceHoursWorked.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.sequenceHoursWorked","typeLabel":"string | null"},"sequenceShiftTypesWorked":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.sequenceShiftTypesWorked.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.sequenceShiftTypesWorked.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.sequenceShiftTypesWorked","typeLabel":"string | null"},"sequenceShiftTypesHours":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.sequenceShiftTypesHours.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.sequenceShiftTypesHours.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.sequenceShiftTypesHours","typeLabel":"string | null"},"sequenceWeekendsWorked":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.sequenceWeekendsWorked.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.sequenceWeekendsWorked.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.sequenceWeekendsWorked","typeLabel":"string | null"},"sequenceWeekendsIdle":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.sequenceWeekendsIdle.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.sequenceWeekendsIdle.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.sequenceWeekendsIdle","typeLabel":"string | null"},"sequenceMaxConsecutiveDays":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.sequenceMaxConsecutiveDays.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.sequenceMaxConsecutiveDays.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.sequenceMaxConsecutiveDays","typeLabel":"string | null"},"restMinDuration":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.restMinDuration.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.restMinDuration.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.restMinDuration","typeLabel":"string | null"},"restMinConsecutive":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.restMinConsecutive.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.restMinConsecutive.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.restMinConsecutive","typeLabel":"string | null"},"restBeforeShift":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.restBeforeShift.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.restBeforeShift.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.restBeforeShift","typeLabel":"string | null"},"restAfterShift":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.restAfterShift.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.restAfterShift.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.restAfterShift","typeLabel":"string | null"},"restMaxDuration":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.restMaxDuration.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.restMaxDuration.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.restMaxDuration","typeLabel":"string | null"},"restTotalDuration":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.restTotalDuration.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.restTotalDuration.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.restTotalDuration","typeLabel":"string | null"},"patternProhibited":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.patternProhibited.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.patternProhibited.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.patternProhibited","typeLabel":"string | null"},"patternPreferred":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.patternPreferred.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.patternPreferred.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.patternPreferred","typeLabel":"string | null"},"patternUnpreferred":{"oneOf":[{"type":"string","uniqueKey":"weights.oneOf.0.patternUnpreferred.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"weights.oneOf.0.patternUnpreferred.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights.oneOf.0.patternUnpreferred","typeLabel":"string | null"}},"uniqueKey":"weights.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"weights.oneOf.1","typeLabel":"null"}],"uniqueKey":"weights","typeLabel":"object | null"},"options":{"type":"object","description":"Options for tuning the solver","properties":{"hardAvailability":{"oneOf":[{"type":"boolean","description":"Whether to enforce availability constraints","uniqueKey":"options.hardAvailability.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether to enforce availability constraints","uniqueKey":"options.hardAvailability.oneOf.1","typeLabel":"null"}],"uniqueKey":"options.hardAvailability","typeLabel":"boolean | null"},"hardSkill":{"oneOf":[{"type":"boolean","description":"Whether to enforce skill constraints","uniqueKey":"options.hardSkill.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether to enforce skill constraints","uniqueKey":"options.hardSkill.oneOf.1","typeLabel":"null"}],"uniqueKey":"options.hardSkill","typeLabel":"boolean | null"},"hardBlacklist":{"oneOf":[{"type":"boolean","description":"Whether to enforce blacklist constraints","uniqueKey":"options.hardBlacklist.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether to enforce blacklist constraints","uniqueKey":"options.hardBlacklist.oneOf.1","typeLabel":"null"}],"uniqueKey":"options.hardBlacklist","typeLabel":"boolean | null"},"partialPlanning":{"oneOf":[{"type":"boolean","description":"Partial planning. Whether to fill all shifts or not. Default is false","uniqueKey":"options.partialPlanning.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Partial planning. Whether to fill all shifts or not. Default is false","uniqueKey":"options.partialPlanning.oneOf.1","typeLabel":"null"}],"uniqueKey":"options.partialPlanning","typeLabel":"boolean | null"},"penaliseZeroHours":{"oneOf":[{"type":"boolean","description":"Whether to penalise employees with zero hours","uniqueKey":"options.penaliseZeroHours.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether to penalise employees with zero hours","uniqueKey":"options.penaliseZeroHours.oneOf.1","typeLabel":"null"}],"uniqueKey":"options.penaliseZeroHours","typeLabel":"boolean | null"},"useAvailabilityLocations":{"oneOf":[{"type":"boolean","description":"Whether to use availability locations","uniqueKey":"options.useAvailabilityLocations.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether to use availability locations","uniqueKey":"options.useAvailabilityLocations.oneOf.1","typeLabel":"null"}],"uniqueKey":"options.useAvailabilityLocations","typeLabel":"boolean | null"},"alwaysScoreSharedSkills":{"oneOf":[{"type":"boolean","description":"Whether to always score shared skills","uniqueKey":"options.alwaysScoreSharedSkills.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether to always score shared skills","uniqueKey":"options.alwaysScoreSharedSkills.oneOf.1","typeLabel":"null"}],"uniqueKey":"options.alwaysScoreSharedSkills","typeLabel":"boolean | null"},"explanation":{"type":"object","description":"Explanation","properties":{"enabled":{"oneOf":[{"type":"boolean","description":"Whether to enable post-processing of explainability","uniqueKey":"options.explanation.enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether to enable post-processing of explainability","uniqueKey":"options.explanation.enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"options.explanation.enabled","typeLabel":"boolean | null"},"filterHardConstraints":{"oneOf":[{"type":"boolean","description":"Whether to drop hard-infeasible alternatives from the explanation.","uniqueKey":"options.explanation.filterHardConstraints.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether to drop hard-infeasible alternatives from the explanation.","uniqueKey":"options.explanation.filterHardConstraints.oneOf.1","typeLabel":"null"}],"uniqueKey":"options.explanation.filterHardConstraints","typeLabel":"boolean | null"},"onlyUnassigned":{"oneOf":[{"type":"boolean","description":"Whether to compute alternatives only for unassigned shifts.","uniqueKey":"options.explanation.onlyUnassigned.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether to compute alternatives only for unassigned shifts.","uniqueKey":"options.explanation.onlyUnassigned.oneOf.1","typeLabel":"null"}],"uniqueKey":"options.explanation.onlyUnassigned","typeLabel":"boolean | null"}},"uniqueKey":"options.explanation","typeLabel":"object"},"idleWeekend":{"type":"object","description":"Idle weekend definition.","required":["fromDayOfWeek","fromTime","toDayOfWeek","toTime"],"properties":{"fromDayOfWeek":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"],"description":"Day of the week on which the weekend officially starts.","isRequired":true,"uniqueKey":"options.idleWeekend.fromDayOfWeek","typeLabel":"enum\u003cstring>"},"fromTime":{"type":"string","format":"","examples":["13:45:30.123456789"],"description":"Time of day on which the weekend officially starts.","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"},"isRequired":true,"uniqueKey":"options.idleWeekend.fromTime","typeLabel":"string\u003c>"},"toDayOfWeek":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"],"description":"Day of the week on which the weekend officially ends.","isRequired":true,"uniqueKey":"options.idleWeekend.toDayOfWeek","typeLabel":"enum\u003cstring>"},"toTime":{"type":"string","format":"","examples":["13:45:30.123456789"],"description":"Time of day on which the weekend officially ends.","externalDocs":{"description":"As defined by 'partial-time' in RFC3339","url":"https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"},"isRequired":true,"uniqueKey":"options.idleWeekend.toTime","typeLabel":"string\u003c>"},"restTime":{"oneOf":[{"type":"string","format":"","examples":["P1D"],"uniqueKey":"options.idleWeekend.restTime.oneOf.0","typeLabel":"string\u003c>"},{"type":"null","format":"","examples":["P1D"],"uniqueKey":"options.idleWeekend.restTime.oneOf.1","typeLabel":"null"}],"uniqueKey":"options.idleWeekend.restTime","typeLabel":"string\u003c> | null"}},"uniqueKey":"options.idleWeekend","typeLabel":"object"}},"uniqueKey":"options","typeLabel":"object"},"hook":{"oneOf":[{"type":"string","format":"uri","description":"Webhook endpoint to receive POST request with the id.","uniqueKey":"hook.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"Webhook endpoint to receive POST request with the id.","uniqueKey":"hook.oneOf.1","typeLabel":"null"}],"uniqueKey":"hook","typeLabel":"string\u003curi> | null"},"label":{"oneOf":[{"type":"string","maxLength":255,"pattern":"^(?!.*\\$\\{).*$","uniqueKey":"label.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"pattern":"^(?!.*\\$\\{).*$","uniqueKey":"label.oneOf.1","typeLabel":"null"}],"uniqueKey":"label","typeLabel":"string | null"},"metadata":{"oneOf":[{"type":"object","additionalProperties":{"type":"string","uniqueKey":"metadata.oneOf.0.additionalProperties","typeLabel":"string"},"maxProperties":10,"uniqueKey":"metadata.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"type":"string","uniqueKey":"metadata.oneOf.1.additionalProperties","typeLabel":"string"},"maxProperties":10,"uniqueKey":"metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"metadata","typeLabel":"object | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"employees":[{"name":"\u003cstring>","home":{"lat":51.12042,"lon":4.23054},"availability":[{"from":"2022-03-10T12:15:50","to":"2022-03-10T12:15:50","location":{"lat":51.12042,"lon":4.23054}}],"preference":["\u003cstring>"],"skills":[{"name":"\u003cstring>","expiry":"2022-03-10","weight":123,"period":{"from":"2022-03-10T12:15:50","to":"2022-03-10T12:15:50","duration":"P1D","period":"P1D","excludes":["2022-03-10"]}}],"hourlyPay":123,"efficiency":123,"periodRules":[{"period":{"from":"2022-03-10T12:15:50","to":"2022-03-10T12:15:50","duration":"P1D","period":"P1D","excludes":["2022-03-10"]},"maxWorkingDays":123,"minWorkingDays":123,"minWorkingDuration":"P1D","maxWorkingDuration":"P1D","minRestDurationBetweenShiftsSameDay":"P1D","minRestDuration":"P1D","maxShiftLength":"P1D","minShiftLength":"P1D","latestShiftStart":"13:45:30.123456789","earliestShiftStart":"13:45:30.123456789","latestShiftEnd":"13:45:30.123456789","minWeekendsIdle":123,"maxWeekendsIdle":123}],"contracts":[{"name":"\u003cstring>","max":"P1D","min":"P1D","maxConsecutiveWorkDays":123,"maxShiftsDay":123,"minRestBetweenShiftsSameDay":123,"minRest":"P1D","maxWorkingDays":123,"maxShiftLength":"P1D","minShiftLength":"P1D","latestShiftStart":"13:45:30.123456789","earliestShiftStart":"13:45:30.123456789","latestShiftEnd":"13:45:30.123456789"}]}],"shifts":[{"name":"\u003cstring>","from":"2022-03-10T12:15:50","to":"2022-03-10T12:15:50","min":123,"max":123,"tags":[{"name":"\u003cstring>"}],"skills":[{"name":"\u003cstring>","hard":true,"weight":123}],"priority":1,"cost":1,"rests":[{"tags":["\u003cstring>"],"excludes":["\u003cstring>"],"period":{"from":"2022-03-10T12:15:50","to":"2022-03-10T12:15:50","duration":"P1D","period":"P1D","excludes":["2022-03-10"]},"min":"P1D","minConsecutive":"P1D","max":"P1D","frequency":123}],"blocklist":["\u003cstring>"],"value":123,"employees":["\u003cstring>"],"locked":[true],"location":{"lat":51.12042,"lon":4.23054}}],"rules":[{"period":{"from":"2022-03-10T12:15:50","to":"2022-03-10T12:15:50","duration":"P1D","period":"P1D","excludes":["2022-03-10"]},"min":123,"max":123,"shifts":["\u003cstring>"],"then":{}}],"rests":[{"tags":["\u003cstring>"],"excludes":["\u003cstring>"],"period":{"from":"2022-03-10T12:15:50","to":"2022-03-10T12:15:50","duration":"P1D","period":"P1D","excludes":["2022-03-10"]},"min":"P1D","minConsecutive":"P1D","max":"P1D","frequency":123}],"demands":[{"from":"2022-03-10T12:15:50-04:00","to":"2022-03-10T12:15:50-04:00","skills":[{"name":"\u003cstring>","hard":true,"weight":123}],"name":"\u003cstring>","min":123,"max":123}],"patterns":[{"elements":[{"tags":["\u003cstring>"]}],"weight":123}],"fairnessBuckets":[{"employees":["\u003cstring>"],"shifts":["\u003cstring>"],"target":"PT8H","period":{"from":"2022-03-10T12:15:50","to":"2022-03-10T12:15:50","duration":"P1D","period":"P1D","excludes":["2022-03-10"]}}],"requirements":[{"shifts":["\u003cstring>"],"skill":"\u003cstring>","value":123}],"assignments":[{"shift":"\u003cstring>","employee":"\u003cstring>","locked":true}],"weights":{"unassigned":"\u003cstring>","maxWorkingDays":"\u003cstring>","concurrent":"\u003cstring>","sameDay":"\u003cstring>","minRest":"\u003cstring>","maxConsecutive":"\u003cstring>","working":"\u003cstring>","sameDayMinRest":"\u003cstring>","minHours":"\u003cstring>","minHoursUnassigned":"\u003cstring>","maxHours":"\u003cstring>","minShift":"\u003cstring>","maxShift":"\u003cstring>","shiftStart":"\u003cstring>","latestShiftStart":"\u003cstring>","shiftEnd":"\u003cstring>","dayOfWeek":"\u003cstring>","requirements":"\u003cstring>","availability":"\u003cstring>","skills":"\u003cstring>","criticalSkills":"\u003cstring>","locked":"\u003cstring>","blacklist":"\u003cstring>","pref":"\u003cstring>","costs":"\u003cstring>","wages":"\u003cstring>","efficiency":"\u003cstring>","distance":"\u003cstring>","distanceAL":"\u003cstring>","priority":"\u003cstring>","softSkills":"\u003cstring>","softSkillsLevel":"\u003cstring>","fairness":"\u003cstring>","counterDaysWorked":"\u003cstring>","counterDaysIdle":"\u003cstring>","counterHoursWorked":"\u003cstring>","counterShiftTypesWorked":"\u003cstring>","counterShiftTypesHours":"\u003cstring>","counterWeekendsWorked":"\u003cstring>","counterWeekendsIdle":"\u003cstring>","counterMaxConsecutiveDays":"\u003cstring>","sequenceDaysWorked":"\u003cstring>","sequenceDaysIdle":"\u003cstring>","sequenceHoursWorked":"\u003cstring>","sequenceShiftTypesWorked":"\u003cstring>","sequenceShiftTypesHours":"\u003cstring>","sequenceWeekendsWorked":"\u003cstring>","sequenceWeekendsIdle":"\u003cstring>","sequenceMaxConsecutiveDays":"\u003cstring>","restMinDuration":"\u003cstring>","restMinConsecutive":"\u003cstring>","restBeforeShift":"\u003cstring>","restAfterShift":"\u003cstring>","restMaxDuration":"\u003cstring>","restTotalDuration":"\u003cstring>","patternProhibited":"\u003cstring>","patternPreferred":"\u003cstring>","patternUnpreferred":"\u003cstring>"},"options":{"hardAvailability":true,"hardSkill":true,"hardBlacklist":true,"partialPlanning":true,"penaliseZeroHours":true,"useAvailabilityLocations":true,"alwaysScoreSharedSkills":true,"explanation":{"enabled":true,"filterHardConstraints":true,"onlyUnassigned":true}},"hook":"\u003cstring>","label":"\u003cstring>","metadata":{}}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"939dfec0-13b6-4123-ae6b-875a85d845c6":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["id"],"description":"Status of a solve job","title":"","properties":{"id":{"type":"string","description":"Job ID","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"status":{"oneOf":[{"type":"string","enum":["QUEUED","SOLVING","SOLVED","ERROR"],"examples":["SOLVING"],"description":"Status of the solve.","uniqueKey":"status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["QUEUED","SOLVING","SOLVED","ERROR"],"examples":["SOLVING"],"description":"Status of the solve.","uniqueKey":"status.oneOf.1","typeLabel":"null"}],"uniqueKey":"status","typeLabel":"enum\u003cstring> | null"},"solveDuration":{"oneOf":[{"type":"integer","format":"int32","description":"Duration of the solve in seconds","uniqueKey":"solveDuration.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"Duration of the solve in seconds","uniqueKey":"solveDuration.oneOf.1","typeLabel":"null"}],"uniqueKey":"solveDuration","typeLabel":"integer\u003cint32> | null"},"errors":{"oneOf":[{"type":"array","items":{"type":"object","required":["message"],"description":"Error or warning message","properties":{"message":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"errors.oneOf.0.items.[INDEX].message","typeLabel":"string"},"code":{"type":"integer","format":"int32","description":"Error code","uniqueKey":"errors.oneOf.0.items.[INDEX].code","typeLabel":"integer\u003cint32>"}},"uniqueKey":"errors.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"List of errors","uniqueKey":"errors.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["message"],"description":"Error or warning message","properties":{"code":{"type":"integer","format":"int32","description":"Error code"},"message":{"type":"string","description":"Error message"}}},"description":"List of errors","uniqueKey":"errors.oneOf.1","typeLabel":"null"}],"uniqueKey":"errors","typeLabel":"object[] | null"},"warnings":{"oneOf":[{"type":"array","items":{"type":"object","required":["message"],"description":"Error or warning message","properties":{"message":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"warnings.oneOf.0.items.[INDEX].message","typeLabel":"string"},"code":{"type":"integer","format":"int32","description":"Error code","uniqueKey":"warnings.oneOf.0.items.[INDEX].code","typeLabel":"integer\u003cint32>"}},"uniqueKey":"warnings.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"List of warnings","uniqueKey":"warnings.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["message"],"description":"Error or warning message","properties":{"code":{"type":"integer","format":"int32","description":"Error code"},"message":{"type":"string","description":"Error message"}}},"description":"List of warnings","uniqueKey":"warnings.oneOf.1","typeLabel":"null"}],"uniqueKey":"warnings","typeLabel":"object[] | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"\u003cstring>","status":"SOLVING","solveDuration":123,"errors":[{"message":"\u003cstring>","code":123}],"warnings":[{"message":"\u003cstring>","code":123}]}}},"exampleType":"generated"}},"exampleType":"generated"},"c45b74c6-62d5-437b-9a44-5ce7e580b7f3":{"description":"Bad Request","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"d60debd5-26d9-409a-9b0e-598902fd3f09":{"apikey":{"type":"apiKey","description":"Api Key based authentication (apikey)","name":"Authorization","in":"header","scopes":[]}}},"servers":{"bde8538f-22cc-4d5b-8087-edfb462a71c9":{"url":"https://api.solvice.io","description":"Production API"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","description":"Api Key based authentication (apikey)","name":"Authorization","in":"header","scopes":[]},"schema":{"title":"Authorization","type":"string","description":"Api Key based authentication (apikey)","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apikey","name":"Authorization"}],"title":"apikey"}]},"originalFileLocation":"api-reference/fill.yaml"},"subdomain":"solvice-68592f22","siteName":"Solvice Docs","title":"Solve Fill - Solvice Docs","navMaps":{"firstHrefInVersion":{"v3":{"href":"/guides/platform/platform","matchLevel":4},"v2":{"href":"/api-reference/fill/solve","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-01-22T17:08:37.100Z","originalFileLocation":"api-reference/fill/solve.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Will trigger the solver run.\">\u003cmeta data-mint-head name=\"keywords\" content=\"Route Optimization, Route API, Optimization API, Workforce Scheduling, Solvice\">\u003cmeta data-mint-head name=\"application-name\" content=\"Solvice Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index, follow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/solvice-68592f22/wZOj_k-mDHXJa5jh/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/solvice-68592f22/wZOj_k-mDHXJa5jh/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/solvice-68592f22/wZOj_k-mDHXJa5jh/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/solvice-68592f22/wZOj_k-mDHXJa5jh/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/solvice-68592f22/wZOj_k-mDHXJa5jh/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/solvice-68592f22/wZOj_k-mDHXJa5jh/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/solvice-68592f22/wZOj_k-mDHXJa5jh/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/solvice-68592f22/wZOj_k-mDHXJa5jh/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/solvice-68592f22/wZOj_k-mDHXJa5jh/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Solve Fill - Solvice Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Will trigger the solver run.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Solvice Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.solvice.io/api-reference/fill/solve\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://solvice-68592f22.mintlify.app/link to your default meta tag image\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Solve Fill - Solvice Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Will trigger the solver run.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://solvice-68592f22.mintlify.app/link to your default meta tag image\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/solvice-68592f22/wZOj_k-mDHXJa5jh/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Solvice Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0f62fe\">\u003cmeta data-mint-head name=\"charset\" content=\"UTF-8\">\u003cmeta data-mint-head name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\u003cmeta data-mint-head name=\"author\" content=\"Christophe Van Huele\">\u003cmeta data-mint-head name=\"googlebot\" content=\"index, follow\">\u003cmeta data-mint-head name=\"google\" content=\"notranslate\">\u003cmeta data-mint-head name=\"google-site-verification\" content=\"verification_token\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.solvice.io/api-reference/fill/solve\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/fill/solve.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.solvice.io/#organization\",\"name\":\"Solvice Docs\",\"url\":\"https://docs.solvice.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/solvice-68592f22/1KJ_2AIotizI1Bng/logo/light.svg?fit=max\u0026auto=format\u0026n=1KJ_2AIotizI1Bng\u0026q=85\u0026s=e93560fee320491613107060a1afc094\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.solvice.io#website\",\"name\":\"Solvice Docs\",\"url\":\"https://docs.solvice.io\",\"publisher\":{\"@id\":\"https://docs.solvice.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.solvice.io/api-reference/fill/solve#webpage\",\"url\":\"https://docs.solvice.io/api-reference/fill/solve\",\"name\":\"Solve Fill\",\"description\":\"Will trigger the solver run.\",\"dateModified\":\"2026-01-22T17:08:37.100Z\",\"isPartOf\":{\"@id\":\"https://docs.solvice.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.solvice.io/api-reference/fill/solve#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.solvice.io/api-reference/fill/solve#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Fill API\",\"item\":\"https://docs.solvice.io/api-reference/fill/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Solve Fill\",\"item\":\"https://docs.solvice.io/api-reference/fill/solve\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.solvice.io/api-reference/fill/solve#apireference\",\"headline\":\"Solve Fill\",\"name\":\"Solve Fill\",\"description\":\"Will trigger the solver run.\",\"url\":\"https://docs.solvice.io/api-reference/fill/solve\",\"mainEntityOfPage\":{\"@id\":\"https://docs.solvice.io/api-reference/fill/solve#webpage\"},\"image\":\"https://docs.solvice.io/link%20to%20your%20default%20meta%20tag%20image\",\"dateModified\":\"2026-01-22T17:08:37.100Z\",\"publisher\":{\"@id\":\"https://docs.solvice.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.solvice.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Solvice Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Solvice Docs","nav":{"global":{"anchors":[{"anchor":"Dashboard","icon":"book-open-cover","href":"https://platform.solvice.io"},{"anchor":"Website","icon":"planet-ringed","href":"https://www.solvice.io"},{"anchor":"Blog","icon":"newspaper","href":"https://www.solvice.io/blog/news"}]},"versions":[{"version":"v3","pages":[{"title":"v3","href":"/guides/platform/platform"}]},{"version":"v2","default":true,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/platform/platform"}]},{"tab":"API Reference","groups":[{"group":"VRP API","pages":[{"title":"VRP API Reference","href":"/api-reference/vrp/introduction"},{"group":"Info","pages":[{"title":"Status","openapi":"vrp GET /v2/vrp/jobs/{id}/status","href":"/api-reference/vrp/status"},{"title":"Solution","openapi":"vrp GET /v2/vrp/jobs/{id}/solution","href":"/api-reference/vrp/solution"},{"title":"Explanation","openapi":"vrp GET /v2/vrp/jobs/{id}/explanation","href":"/api-reference/vrp/explanation"}]},{"group":"Actions","pages":[{"title":"Solve VRP","openapi":"vrp POST /v2/vrp/solve","href":"/api-reference/vrp/solve"},{"title":"Evaluate VRP","openapi":"vrp POST /v2/vrp/evaluate","href":"/api-reference/vrp/evaluate"},{"title":"Suggest VRP","openapi":"vrp POST /v2/vrp/suggest","href":"/api-reference/vrp/suggest"},{"title":"Sync Solve VRP","openapi":"vrp POST /v2/vrp/sync/solve","href":"/api-reference/vrp/sync-solve"},{"title":"Sync Suggest VRP","openapi":"vrp POST /v2/vrp/sync/suggest","href":"/api-reference/vrp/sync-suggest"}]}]},{"group":"Fill API","pages":[{"title":"Fill API Reference","href":"/api-reference/fill/introduction"},{"group":"Info","pages":[{"title":"Fill Job Status","openapi":"fill GET /v2/fill/jobs/{id}/status","href":"/api-reference/fill/status"},{"title":"Fill Solution","openapi":"fill GET /v2/fill/jobs/{id}/solution","href":"/api-reference/fill/solution"},{"title":"Fill Explanation","openapi":"fill GET /v2/fill/jobs/{id}/explanation","description":"Contains the explanation, once solved.","href":"/api-reference/fill/explanation"}]},{"group":"Actions","pages":[{"title":"Solve Fill","openapi":"fill POST /v2/fill/solve","href":"/api-reference/fill/solve"}]}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/vrp"}]}]}]},"title":"Solve Fill - Solvice Docs","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-CT9uE8Ip.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}