{"openapi":"3.0.0","paths":{"/v1/public/doc/url":{"get":{"operationId":"PublicController_getDocURL_v1","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"string"}}}}},"summary":"returns the documentation URL","tags":["Public"]}},"/v1/public/me":{"get":{"description":"A simple endpoint that returns the name of the company. Can be used to test authentication.","operationId":"PublicController_getMe_v1","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"string"}}}}},"security":[{"basic":[]}],"summary":"Get company name","tags":["Public"]}},"/v1/public/calendar/{id}.ics":{"get":{"description":"Get your calendar url to be be shared in your calendar tool. The data returns covers a period of 1 month in the past and 3 months in the future","operationId":"PublicController_getMemberICS_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Get your calendar url","tags":["Public","Calendars"]}},"/v1/public/events/get":{"post":{"description":"This endpoint uses POST to allow large values in its body parameters","operationId":"PublicController_getPublicEventsFromPost_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPublicEventsRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPublicEvents"}}}}},"security":[{"basic":[]}],"summary":"Get events (shifts)","tags":["Public","Events"]}},"/v1/public/events":{"get":{"description":"Return a list of events (shifts) based on the query parameters","operationId":"PublicController_getPublicEvents_v1","parameters":[{"name":"fromDate","required":true,"in":"query","description":"a date in ISO-8601 format (2021-01-31T20:00:00.000-05:00). Depending on the group \"ShiftOverTwoDaysOption\" setting, you will see the shift the day before, the day after or on both days. All resulting events will have an end date after this date.","schema":{"example":"2021-01-31T20:00:00.000-05:00","type":"string"}},{"name":"toDate","required":true,"in":"query","description":"a date in ISO-8601 format (2021-01-31T20:00:00.000-05:00). Depending on the group \"ShiftOverTwoDaysOption\" setting, you will see the shift the day before, the day after or on both days. All resulting events will have a start date before this date.","schema":{"example":"2021-01-31T20:00:00.000-05:00","type":"string"}},{"name":"forTeamIds","required":false,"in":"query","description":"if specified, use this array of team UIDs to only get events linked to those teams","schema":{"example":[],"type":"array","items":{"type":"string"}}},{"name":"forTeamCodes","required":false,"in":"query","description":"if specified, use this array of team codes to only get events linked to those teams. (forTeamIds will take precedence over forTeamCodes if set)","schema":{"example":[],"type":"array","items":{"type":"string"}}},{"name":"forMemberIds","required":false,"in":"query","description":"if specified, use this array of member UIDs or employee ids to only get events linked to those members","schema":{"example":[],"type":"array","items":{"type":"string"}}},{"name":"forMemberCodes","required":false,"in":"query","description":"if specified, use this array of member codes to only get events linked to those members. (forMemberIds will take precedence over forMemberCodes if set)","schema":{"example":[],"type":"array","items":{"type":"string"}}},{"name":"forLocationIds","required":false,"in":"query","description":"if specified, use this array of location UIDs to only get events linked to those locations","schema":{"example":[],"type":"array","items":{"type":"string"}}},{"name":"forLocationCodes","required":false,"in":"query","description":"if specified, use this array of location codes to only get events linked to those locations. (forLocationIds will take precedence over forLocationCodes if set)","schema":{"example":[],"type":"array","items":{"type":"string"}}},{"name":"forSkillIds","required":false,"in":"query","description":"if specified, use this array of skill UIDs to only get events linked to those skills (positions).","schema":{"example":[],"type":"array","items":{"type":"string"}}},{"name":"forSkillCodes","required":false,"in":"query","description":"if specified, use this array of skill codes to only get events linked to those skills (positions). (forSkillIds will take precedence over forSkillCodes if set)","schema":{"example":[],"type":"array","items":{"type":"string"}}},{"name":"forConditionCodes","required":false,"in":"query","description":"if specified, this is array of condition code to get specific type of events","schema":{"example":[],"type":"array","items":{"type":"string","enum":["REGULAR_SHIFTS","STANDBY_SHIFTS","REPLACEMENTS","UNFILLED_SHIFTS","ASSIGNMENTS_TO_APPROVE","REPLACEMENT_REQUESTS","SWAP_REQUESTS","REGULAR_SHIFTS_TO_APPROVE","REPLACEMENTS_TO_APPROVE","SWAPS_TO_APPROVE","DRAFTS","CANCELLED","UNFILLED_SHIFTS_AND_DRAFT","AUTO_SCHEDULED","OPEN_EVENT_ASSIGNED","EVENT_NOT_CONFIRMED","RECURRENT_SHIFTS","UNIQUE_SHIFTS"]}}},{"name":"locale","required":false,"in":"query","description":"possible values are \"en\" or \"fr\". This locale is use to return multilingual data like teamName, locationName and positionName","schema":{"default":"en","type":"string"}},{"name":"withOpenShifts","required":false,"in":"query","description":"if true, open shifts will also be returned","schema":{"default":false,"type":"boolean"}},{"name":"includeRelationships","required":false,"in":"query","description":"if true, beside returning the events, the resulting data will also includedata related to the events like, members, skills, locations and teams","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPublicEvents"}}}}},"security":[{"basic":[]}],"summary":"Get events (shifts)","tags":["Public","Events"]},"post":{"description":"","operationId":"PublicController_createPublicEvent_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePublicEventRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicEvent"}}}}},"security":[{"basic":[]}],"summary":"Create an event (assigned shift and open shift)","tags":["Public","Events"]}},"/v1/public/events/import-file":{"post":{"description":"","operationId":"PublicController_importEvents_v1","parameters":[{"name":"dryRun","required":true,"in":"query","schema":{"type":"boolean"}},{"name":"includeImportEvents","required":true,"in":"query","schema":{"type":"boolean"}},{"name":"format","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"basic":[]}],"summary":"Create or update events (shifts) through a CSV file","tags":["Public","Events"]}},"/v1/public/events/{eventId}":{"patch":{"description":"","operationId":"PublicController_updatePublicEvent_v1","parameters":[{"name":"eventId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePublicEventRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicEvent"}}}}},"security":[{"basic":[]}],"summary":"Update an existing event. The id can be an UID or an externalId","tags":["Public","Events"]},"get":{"description":"","operationId":"PublicController_getPublicEvent_v1","parameters":[{"name":"eventId","required":true,"in":"path","schema":{"type":"string"}},{"name":"locale","required":false,"in":"query","description":"Possible values are \"en\", \"es\" or \"fr\". This locale is use to return multilingual data like teamName, locationName and positionName","schema":{"default":"en","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicEvent"}}}}},"security":[{"basic":[]}],"summary":"Get an event (shift) by uid or externalId","tags":["Public","Events"]}},"/v1/public/events/publish/period":{"post":{"description":"","operationId":"PublicController_publishEventsByPeriod_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishPublicEventsByPeriodRequest"}}}},"responses":{"202":{"description":"The publish operation is being processed"},"409":{"description":"A publish operation is already in progress"}},"security":[{"basic":[]}],"summary":"Publish events occurring during a specific period of time. This operation runs asynchronously and will return immediately.","tags":["Public","Events"]}},"/v1/public/events/{eventId}/assign":{"post":{"description":"","operationId":"PublicController_assignPublicEvent_v1","parameters":[{"name":"eventId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignPublicEventRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicEvent"}}}}},"security":[{"basic":[]}],"summary":"Assign an employee to a shift (open or already assigned)","tags":["Public","Events"]}},"/v1/public/events/{eventId}/cancel":{"post":{"description":"","operationId":"PublicController_cancelPublicEvent_v1","parameters":[{"name":"eventId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelPublicEventRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicEvent"}}}}},"security":[{"basic":[]}],"summary":"Cancel a shift","tags":["Public","Events"]}},"/v1/public/events/{eventId}/restore":{"post":{"description":"","operationId":"PublicController_restorePublicEvent_v1","parameters":[{"name":"eventId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecurrenceRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicEvent"}}}}},"security":[{"basic":[]}],"summary":"Restore a canceled shift","tags":["Public","Events"]}},"/v1/public/events/{eventId}/replacement":{"post":{"description":"","operationId":"PublicController_createReplacement_v1","parameters":[{"name":"eventId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePublicReplacementRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicEvent"}}}}},"security":[{"basic":[]}],"summary":"Create an open replacement request or a reassignment","tags":["Public","Events"]}},"/v1/public/events/open/bulk":{"post":{"description":"","operationId":"PublicController_setOpenBulk_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetOpenPublicEventBulkRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetOpenPublicEventBulkResult"}}}}},"security":[{"basic":[]}],"summary":"Convert assigned shifts to open shifts","tags":["Public","Events"]}},"/v1/public/locations":{"get":{"description":"","operationId":"PublicController_getPublicLocations_v1","parameters":[{"name":"withDeleted","required":false,"in":"query","description":"if true, deleted locations are also returned","schema":{"default":false,"type":"boolean"}},{"name":"includeSubLocations","required":false,"in":"query","description":"if true, sub locations detail is also returned","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicLocation"}}}}}},"security":[{"basic":[]}],"summary":"Get company locations","tags":["Public","Locations"]},"post":{"description":"","operationId":"PublicController_createPublicLocation_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePublicLocationRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicLocation"}}}}},"security":[{"basic":[]}],"summary":"Create a new location","tags":["Public","Locations"]}},"/v1/public/locations/{locationId}":{"patch":{"description":"","operationId":"PublicController_updatePublicLocation_v1","parameters":[{"name":"locationId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePublicLocationRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicLocation"}}}}},"security":[{"basic":[]}],"summary":"Update a location","tags":["Public","Locations"]}},"/v1/public/locations/{locationId}/subLocations/{subLocationId}":{"get":{"description":"","operationId":"PublicController_getPublicSubLocation_v1","parameters":[{"name":"subLocationId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSubLocation"}}}}},"security":[{"basic":[]}],"summary":"Get a sub location","tags":["Public","SubLocations"]},"patch":{"description":"","operationId":"PublicController_updatePublicSubLocation_v1","parameters":[{"name":"subLocationId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePublicSubLocationRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSubLocation"}}}}},"security":[{"basic":[]}],"summary":"Update a sub location","tags":["Public","SubLocations"]},"delete":{"description":"","operationId":"PublicController_deletePublicSubLocation_v1","parameters":[{"name":"subLocationId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""}},"security":[{"basic":[]}],"summary":"delete a sub location","tags":["Public","SubLocations"]}},"/v1/public/locations/{locationId}/subLocations":{"post":{"description":"","operationId":"PublicController_createPublicSubLocation_v1","parameters":[{"name":"locationId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePublicSubLocationRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSubLocation"}}}}},"security":[{"basic":[]}],"summary":"Create a new sub location","tags":["Public","SubLocations"]}},"/v1/public/members":{"post":{"description":"","operationId":"PublicController_createMember_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePublicMemberRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicMember"}}}}},"security":[{"basic":[]}],"summary":"Create a member (employee)","tags":["Public","Members"]},"get":{"operationId":"PublicController_getMembers_v1","parameters":[{"name":"includeAdmins","required":false,"in":"query","description":"if true, administrators will be included in the result.","schema":{"default":false,"type":"boolean"}},{"name":"includeSupervisors","required":false,"in":"query","description":"if true, supervisors will be included in the result.","schema":{"default":false,"type":"boolean"}},{"name":"includeManagers","required":false,"in":"query","description":"if true, managers will be included in the result.","schema":{"default":false,"type":"boolean"}},{"name":"includeEmployees","required":false,"in":"query","description":"if true, employees will be included in the result.","schema":{"default":false,"type":"boolean"}},{"name":"status","required":false,"in":"query","description":"if specified, only members with this status will be returned","schema":{"default":"active","type":"string","enum":["active","inactive"]}},{"name":"includeRelationships","required":false,"in":"query","description":"if true, entities (locations, skills, teams) related to members will also be returned.","schema":{"default":true,"type":"boolean"}},{"name":"skip","required":false,"in":"query","description":"Paging attribute, Skips over the specified number of item.","schema":{"default":0,"type":"number"}},{"name":"take","required":false,"in":"query","description":"Paging attribute, limits the number of item to fetch.","schema":{"default":10,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPublicMembers"}}}}},"security":[{"basic":[]}],"summary":"Get members (employees)","tags":["Public","Members"]}},"/v1/public/members/{memberId}":{"get":{"description":"","operationId":"PublicController_getMember_v1","parameters":[{"name":"memberId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicMember"}}}}},"security":[{"basic":[]}],"summary":"Get a member (employee)","tags":["Public","Members"]},"patch":{"description":"","operationId":"PublicController_updateMember_v1","parameters":[{"name":"memberId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePublicMemberRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicMember"}}}}},"security":[{"basic":[]}],"summary":"Update a member (employee)","tags":["Public","Members"]}},"/v1/public/members/{memberId}/upcomingEvents":{"get":{"description":"","operationId":"PublicController_getMemberUpcomingEvents_v1","parameters":[{"name":"memberId","required":true,"in":"path","schema":{"type":"string"}},{"name":"fromDate","required":false,"in":"query","description":"A date in ISO-8601 format (2021-01-31T20:00:00.000-05:00). All resulting events will have an end date after or equal to this date. Default is the current date/time","schema":{"example":"2021-01-31T20:00:00.000-05:00","type":"string"}},{"name":"toDate","required":false,"in":"query","description":"A date in ISO-8601 format (2021-01-31T20:00:00.000-05:00). All resulting events will have a start date before this date.","schema":{"example":"2021-01-31T20:00:00.000-05:00","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPublicMemberNotesResult"}}}}},"security":[{"basic":[]}],"summary":"Get member (employee) upcoming events (shifts)","tags":["Public","Members"]}},"/v1/public/members/{memberId}/notes":{"post":{"description":"","operationId":"PublicController_createMemberNote_v1","parameters":[{"name":"memberId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePublicMemberNoteRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicMemberNote"}}}}},"security":[{"basic":[]}],"summary":"Add a note to a member (employee)","tags":["Public","Members"]},"get":{"description":"","operationId":"PublicController_getMemberNotes_v1","parameters":[{"name":"memberId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPublicMemberNotesResult"}}}}},"security":[{"basic":[]}],"summary":"Get member (employee) notes","tags":["Public","Members"]}},"/v1/public/members/{memberId}/notes/{memberNoteId}":{"patch":{"description":"","operationId":"PublicController_updateMemberNote_v1","parameters":[{"name":"memberId","required":true,"in":"path","schema":{"type":"string"}},{"name":"memberNoteId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePublicMemberNoteRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicMemberNote"}}}}},"security":[{"basic":[]}],"summary":"Update a member (employee) note","tags":["Public","Members"]},"delete":{"description":"","operationId":"PublicController_deleteMemberNote_v1","parameters":[{"name":"memberId","required":true,"in":"path","schema":{"type":"string"}},{"name":"memberNoteId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""}},"security":[{"basic":[]}],"summary":"Delete a member (employee) note","tags":["Public","Members"]}},"/v1/public/members/import-file":{"post":{"operationId":"PublicController_importMembers_v1","parameters":[{"name":"stopOnErrors","required":false,"in":"query","description":"When true, if the file contains errors like duplicate emails, a 422 is return with an error response. It is set to false if not specified.","schema":{"default":false,"type":"boolean"}},{"name":"idField","required":false,"in":"query","description":"You can choose between employee code or email field contained in the file to match and update existing employee, if no match a new employee will be created. The chosen idField is mandatory for every row in the file. The code is used by default if not specified.","schema":{"default":"code","type":"string","enum":["code","email"]}},{"name":"file","required":true,"in":"query","description":"<p>Csv file with comma delemiter.</p><p>Notes:</p><p>All members imported from the csv file are put in a queue executed each 20 minutes.</p><ul><li>You can add query string parameters in the request url: \"stopOnErrors\": boolean = false and / or \"idField\": code | email = \"code\".</li><li>You can use any fields in the ImportMemberRequest schema.</li><li>\"fName\" and \"lName\" fields are mandatory for a member creation.</li><li>The \"idField\", code (default) or email, is mandatory.</li><li>If idField (row.code | row.email) is set and no member has this idField (member.code | member.email) => a new member will be created.</li><li>If idField (row.code | row.email) is set and a member has this idField (row.code | row.email) => this member will be updated.</li><li>All fields containing more than 1 element must be separate with a semicolon \";\" (ex: tslCodes, tslNames, skillWages, initialExperienceHoursBySkill).</li><li>For customFields, add new column(s) with the prefix \"custom:\" for the column name (ex: \"custom:key 1\", \"custom:key 2\").</li></ul>","schema":{"type":"file"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/ImportMemberRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberImportFileResponse"}}}},"422":{"description":"The file contains semantic errors like an unknown position code"}},"security":[{"basic":[]}],"summary":"Import (create or update) members (employees) through a csv file","tags":["Public","Members"]}},"/v1/public/members/relationships/add":{"patch":{"description":"To batch assign teams or locations or positions to members (employees)","operationId":"PublicController_addRelationshipsToMembers_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicMembersRelationshipsUpdateRequest"}}}},"responses":{"200":{"description":""}},"security":[{"basic":[]}],"summary":"Add structural relationships to members","tags":["Public","Members"]}},"/v1/public/members/relationships/remove":{"patch":{"description":"To batch remove teams or locations or positions from members (employees)","operationId":"PublicController_removeRelationshipsToMembers_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicMembersRelationshipsUpdateRequest"}}}},"responses":{"200":{"description":""}},"security":[{"basic":[]}],"summary":"Remove structural relationships to members","tags":["Public","Members"]}},"/v1/public/availabilities/dates/get":{"post":{"operationId":"PublicController_getDateAvailabilities_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPagedDateAvailabilitiesRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicDateAvailability"}}}}}},"security":[{"basic":[]}],"summary":"Get days availabilities","tags":["Public","Availabilities"]}},"/v1/public/members/{memberId}/availabilities/dates":{"post":{"operationId":"PublicController_createDateAvailabilities_v1","parameters":[{"name":"memberId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePublicDateAvailabilitiesRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicDateAvailability"}}}}},"security":[{"basic":[]}],"summary":"Create availabilities for a member (employee)","tags":["Public","Availabilities"]}},"/v1/public/availabilities/dates/{availabilityId}":{"patch":{"operationId":"PublicController_updateDateAvailability_v1","parameters":[{"name":"availabilityId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePublicDateAvailabilityRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicDateAvailability"}}}}},"security":[{"basic":[]}],"summary":"Update availability","tags":["Public","Availabilities"]},"delete":{"operationId":"PublicController_deleteDateAvailability_v1","parameters":[{"name":"availabilityId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""}},"security":[{"basic":[]}],"summary":"Delete availability","tags":["Public","Availabilities"]}},"/v1/public/availabilities/weekdays/get":{"post":{"operationId":"PublicController_getDayAvailabilities_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetDayAvailabilitiesRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicDayAvailability"}}}}}},"security":[{"basic":[]}],"summary":"Get weekdays availabilities","tags":["Public","Availabilities"]}},"/v1/public/members/{memberId}/availabilities/weekdays":{"post":{"operationId":"PublicController_createDayAvailability_v1","parameters":[{"name":"memberId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDayAvailabilityRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicDayAvailability"}}}}},"security":[{"basic":[]}],"summary":"Create weekdays availabilities for a member (employee)","tags":["Public","Availabilities"]}},"/v1/public/availabilities/weekdays/{availabilityId}":{"patch":{"operationId":"PublicController_updateDayAvailability_v1","parameters":[{"name":"availabilityId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePublicDayAvailabilityRequest"}}}},"responses":{"200":{"description":"Return the updated availability or a new availability if dates has changed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicDayAvailability"}}}}},"security":[{"basic":[]}],"summary":"Update weekdays availabilities","tags":["Public","Availabilities"]},"delete":{"operationId":"PublicController_deleteDayAvailability_v1","parameters":[{"name":"availabilityId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""}},"security":[{"basic":[]}],"summary":"Delete weekdays availability","tags":["Public","Availabilities"]}},"/v1/public/leaves":{"get":{"description":"","operationId":"PublicController_getPublicLeaves_v1","parameters":[{"name":"fromDate","required":true,"in":"query","description":"a date in ISO-8601 format (2021-01-31T20:00:00.000-05:00). All resulting leaves will have an start date after this date.","schema":{"example":"2021-01-31T20:00:00.000-05:00","type":"string"}},{"name":"toDate","required":true,"in":"query","description":"a date in ISO-8601 format (2021-01-31T20:00:00.000-05:00). All resulting leaves will have an end date before this date.","schema":{"example":"2021-01-31T20:00:00.000-05:00","type":"string"}},{"name":"forTeamIds","required":false,"in":"query","description":"if specified, use this array of team UIDs to only get leaves linked to those teams","schema":{"example":[],"type":"array","items":{"type":"string"}}},{"name":"forTeamCodes","required":false,"in":"query","description":"if specified, use this array of team codes to only get leaves linked to those teams","schema":{"example":[],"type":"array","items":{"type":"string"}}},{"name":"forMemberIds","required":false,"in":"query","description":"if specified, use this array of member UIDs or employee ids to only get leaves linked to those members","schema":{"example":[],"type":"array","items":{"type":"string"}}},{"name":"forLocationIds","required":false,"in":"query","description":"if specified, use this array of location UIDs to only get leaves linked to those locations","schema":{"example":[],"type":"array","items":{"type":"string"}}},{"name":"forLocationCodes","required":false,"in":"query","description":"if specified, use this array of location codes to only get leaves linked to those locations","schema":{"example":[],"type":"array","items":{"type":"string"}}},{"name":"forSkillIds","required":false,"in":"query","description":"if specified, use this array of skill UIDs to only get leaves linked to those skills. A skill is a position in Evolia application but the API uses the skill term","schema":{"example":[],"type":"array","items":{"type":"string"}}},{"name":"forSkillCodes","required":false,"in":"query","description":"if specified, use this array of skill codes to only get leaves linked to those skills. A skill is a position in Evolia application but the API uses the skill term","schema":{"example":[],"type":"array","items":{"type":"string"}}},{"name":"forStatuses","required":false,"in":"query","description":"if specified, this is array of leave status used to get leaves having one of those statuses","schema":{"example":[],"type":"array","items":{"type":"string","enum":["PENDING","DECLINED","APPROVED","PAID"]}}},{"name":"forBankCodes","required":false,"in":"query","description":"if specified, this is array of bank codes used to get leaves having one of those codes","schema":{"example":[],"type":"array","items":{"type":"string","enum":["PENDING","DECLINED","APPROVED","PAID"]}}},{"name":"includeRelationships","required":false,"in":"query","description":"if true, beside returning the leaves, the relationships property will includedata related to the leaves: members, skills, locations and teams","schema":{"default":false,"type":"boolean"}},{"name":"skip","required":false,"in":"query","description":"Paging attribute, Skips over the specified number of item.","schema":{"default":0,"type":"number"}},{"name":"take","required":false,"in":"query","description":"Paging attribute, limits the number of item to fetch.","schema":{"default":10,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicLeave"}}}}}},"security":[{"basic":[]}],"summary":"Get leave requests","tags":["Public","Leaves"]},"post":{"description":"","operationId":"PublicController_getLeavesFromPost_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePublicLeaveRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicLeave"}}}}},"security":[{"basic":[]}],"summary":"Create a leave request","tags":["Public","Leaves"]}},"/v1/public/leaves/{leaveId}":{"patch":{"description":"","operationId":"PublicController_updateLeavesFromPost_v1","parameters":[{"name":"leaveId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePublicLeaveRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicLeave"}}}}},"security":[{"basic":[]}],"summary":"Update a leave request","tags":["Public","Leaves"]}},"/v1/public/leaves/banks":{"get":{"description":"Retrieves a list of leave banks for the specified group","operationId":"PublicController_getPublicLeaveBanks_v1","parameters":[{"name":"includeRelationships","required":false,"in":"query","description":"if true, beside returning the leave banks, the relationships property will include data related to the leave banks: skills, locations and teams","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicLeaveBank"}}}}}},"security":[{"basic":[]}],"summary":"Get leave banks","tags":["Public","Leaves Bank"]}},"/v1/public/skills":{"get":{"description":"","operationId":"PublicController_getPublicSkills_v1","parameters":[{"name":"withDeleted","required":false,"in":"query","description":"if true, deleted skills are also returned","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicSkill"}}}}}},"security":[{"basic":[]}],"summary":"Get company positions (skills)","tags":["Public","Skills"]},"post":{"description":"","operationId":"PublicController_createPublicSkill_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePublicSkillRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSkill"}}}}},"security":[{"basic":[]}],"summary":"Create a position (skill)","tags":["Public","Skills"]}},"/v1/public/skills/{skillId}":{"patch":{"description":"","operationId":"PublicController_updatePublicSkill_v1","parameters":[{"name":"skillId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePublicSkillRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSkill"}}}}},"security":[{"basic":[]}],"summary":"Update a position (skill)","tags":["Public","Skills"]}},"/v1/public/timesheets":{"get":{"description":"","operationId":"PublicController_getTimesheets_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportTimesheetRequest"}}}},"responses":{"200":{"description":""}},"security":[{"basic":[]}],"summary":"Get time entries (timesheet) for a specific period","tags":["Public","Timesheets"]}},"/v1/public/time-entries/get":{"post":{"description":"","operationId":"PublicController_getTimeEntriesFromPost_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportTimesheetRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTimeEntry"}}}}},"security":[{"basic":[]}],"summary":"Get time entries for a specific period. This endpoint uses POST to allow large values in its body parameters","tags":["Public","Timesheets"]}},"/v1/public/time-entries":{"get":{"description":"","operationId":"PublicController_getTimeEntries_v1","parameters":[{"name":"fromDate","required":true,"in":"query","description":"A unix timestamp. All resulting timesheet entries will have an end date after this date.","schema":{"example":"1641013200000","type":"number"}},{"name":"toDate","required":true,"in":"query","description":"A unix timestamp. All resulting timesheet entries will have a start date before this date.","schema":{"example":"1641618000000","type":"number"}},{"name":"skillNames","required":false,"in":"query","description":"If specified, use this array of skill names to only get timesheet entries linked to those skills. A skill is a position the Evolia application but the API uses the skill term","schema":{"example":["Cook","Manager"],"type":"array","items":{"type":"string"}}},{"name":"teamNames","required":false,"in":"query","description":"If specified, use this array of team names to only get timesheet entries linked to those teams.","schema":{"example":["Base Workers"],"type":"array","items":{"type":"string"}}},{"name":"locationNames","required":false,"in":"query","description":"If specified, use this array of location names to only get timesheet entries linked to those locations.","schema":{"example":["Main Office"],"type":"array","items":{"type":"string"}}},{"name":"forMemberIds","required":false,"in":"query","description":"If specified, use this array of member UIDs or employee ids to only get timesheets linked to those members","schema":{"example":[],"type":"array","items":{"type":"string"}}},{"name":"lockedOnly","required":false,"in":"query","description":"If true only locked timesheet entries are returned","schema":{"default":false,"type":"boolean"}},{"name":"validatedOnly","required":false,"in":"query","description":"If true only validated timesheet entries are returned","schema":{"default":false,"type":"boolean"}},{"name":"withCancelled","required":false,"in":"query","description":"If true, cancelled timesheet entries will also be returned. Cancelled entries have \"isCancelled\" set to true","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTimeEntry"}}}}},"security":[{"basic":[]}],"summary":"Get time entries for a specific period","tags":["Public","Timesheets"]}},"/v1/public/teams":{"get":{"description":"","operationId":"PublicController_getPublicTeams_v1","parameters":[{"name":"withDeleted","required":false,"in":"query","description":"if true, deleted teams are also returned","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicTeam"}}}}}},"security":[{"basic":[]}],"summary":"Get company teams","tags":["Public","Teams"]},"post":{"description":"","operationId":"PublicController_createPublicTeam_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePublicTeamRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTeam"}}}}},"security":[{"basic":[]}],"summary":"Create a team","tags":["Public","Teams"]}},"/v1/public/teams/{teamId}":{"patch":{"description":"","operationId":"PublicController_updatePublicTeam_v1","parameters":[{"name":"teamId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePublicTeamRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTeam"}}}}},"security":[{"basic":[]}],"summary":"Update a team","tags":["Public","Teams"]}},"/v1/public/budgets":{"get":{"description":"","operationId":"PublicController_getPublicBudgets_v1","parameters":[{"name":"fromDate","required":false,"in":"query","description":"a date in ISO-8601 format (2021-01-31T20:00:00.000-05:00). If set, only budgets starting at or after this date will be returned","schema":{"example":"2021-01-31T20:00:00.000-05:00","type":"string"}},{"name":"toDate","required":false,"in":"query","description":"a date in ISO-8601 format (2021-01-31T20:00:00.000-05:00). If set, only budgets starting before this date will be returned","schema":{"example":"2021-05-10T20:00:00.000-04:00","type":"string"}},{"name":"forNameContaining","required":false,"in":"query","description":"If specify, only budgets having a name in any languages containing the search text will be returned.The search is case insensitive. For budgets named \"Main office Calgary\" and \"Office New York\" and searching for \"Office\" both budgets are returned.","schema":{"example":"office","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicBudget"}}}}}},"security":[{"basic":[]}],"summary":"Get company budgets","tags":["Public","Budgets"]}},"/v1/public/time-clock/clock":{"post":{"description":"This clock in and out endpoint allow an easy implementation for IT departments to link an on promise time clock device to Evolia. It only requires a member code (employee id). If a corresponding shift intersect with the clocked time, this shift is be used to register clock in and clock out values. Otherwise a new unplanned shift will be created.","operationId":"TimeClockController_clock_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimeClockClockAtRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicEvent"}}}},"404":{"description":"Unable to find the employee with the specified code"},"406":{"description":"The member must be active"},"409":{"description":"A team, a location or a skill must be specified if the member has more than one team, location or skill AND no primary team, location or skill."}},"security":[{"basic":[]}],"summary":"A simplified clock in and clock out endpoint","tags":["time-clock"]}},"/v1/public/time-clock/set":{"post":{"description":"Sets clock-in, clock-out, and optional breaks for the event that best matches the member and the provided time.\nSupports three input variants:1. TIMESTAMPS (unix ms)2. ISO_DATE (ISO-8601 date time + optional worked hours)3. SHIFT_DATE (date + HH:mm:ss times). \nUse conflictBehavior to control what happens when clocking already exists. NOTE: event matching uses a ±12-hour window around the date and time specified by in at. If no event AND allowCreateUnplannedShift is true, a new shift will be created.","operationId":"TimeClockController_setClocking_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetClockingRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicEvent"}}}},"400":{"description":"Invalid variant fields, negative break duration, or shift ≥ 24h"},"403":{"description":"Event clocking is locked"},"404":{"description":"No member found with the given code"},"406":{"description":"Member is not active"},"409":{"description":"Clocking already exists and conflictBehavior is THROW_EXCEPTION (default)"}},"security":[{"basic":[]}],"summary":"Set a complete clocking record in one call","tags":["time-clock"]}}},"info":{"title":"Public Evolia","description":"","version":"1.0","contact":{}},"tags":[],"servers":[{"url":"https://api.evolia.com"}],"components":{"securitySchemes":{"basic":{"type":"http","scheme":"basic","name":"Authorization","in":"header"}},"schemas":{"GetPublicEventsRequest":{"type":"object","properties":{"fromDate":{"type":"string","description":"a date in ISO-8601 format (2021-01-31T20:00:00.000-05:00). Depending on the group \"ShiftOverTwoDaysOption\" setting, you will see the shift the day before, the day after or on both days. All resulting events will have an end date after this date.","example":"2021-01-31T20:00:00.000-05:00"},"toDate":{"type":"string","description":"a date in ISO-8601 format (2021-01-31T20:00:00.000-05:00). Depending on the group \"ShiftOverTwoDaysOption\" setting, you will see the shift the day before, the day after or on both days. All resulting events will have a start date before this date.","example":"2021-01-31T20:00:00.000-05:00"},"forTeamIds":{"description":"if specified, use this array of team UIDs to only get events linked to those teams","example":[],"type":"array","items":{"type":"string"}},"forTeamCodes":{"description":"if specified, use this array of team codes to only get events linked to those teams. (forTeamIds will take precedence over forTeamCodes if set)","example":[],"type":"array","items":{"type":"string"}},"forMemberIds":{"description":"if specified, use this array of member UIDs or employee ids to only get events linked to those members","example":[],"type":"array","items":{"type":"string"}},"forMemberCodes":{"description":"if specified, use this array of member codes to only get events linked to those members. (forMemberIds will take precedence over forMemberCodes if set)","example":[],"type":"array","items":{"type":"string"}},"forLocationIds":{"description":"if specified, use this array of location UIDs to only get events linked to those locations","example":[],"type":"array","items":{"type":"string"}},"forLocationCodes":{"description":"if specified, use this array of location codes to only get events linked to those locations. (forLocationIds will take precedence over forLocationCodes if set)","example":[],"type":"array","items":{"type":"string"}},"forSkillIds":{"description":"if specified, use this array of skill UIDs to only get events linked to those skills (positions).","example":[],"type":"array","items":{"type":"string"}},"forSkillCodes":{"description":"if specified, use this array of skill codes to only get events linked to those skills (positions). (forSkillIds will take precedence over forSkillCodes if set)","example":[],"type":"array","items":{"type":"string"}},"forConditionCodes":{"type":"array","description":"if specified, this is array of condition code to get specific type of events","example":[],"items":{"type":"string","enum":["REGULAR_SHIFTS","STANDBY_SHIFTS","REPLACEMENTS","UNFILLED_SHIFTS","ASSIGNMENTS_TO_APPROVE","REPLACEMENT_REQUESTS","SWAP_REQUESTS","REGULAR_SHIFTS_TO_APPROVE","REPLACEMENTS_TO_APPROVE","SWAPS_TO_APPROVE","DRAFTS","CANCELLED","UNFILLED_SHIFTS_AND_DRAFT","AUTO_SCHEDULED","OPEN_EVENT_ASSIGNED","EVENT_NOT_CONFIRMED","RECURRENT_SHIFTS","UNIQUE_SHIFTS"]}},"locale":{"type":"string","description":"possible values are \"en\" or \"fr\". This locale is use to return multilingual data like teamName, locationName and positionName","default":"en"},"withOpenShifts":{"type":"boolean","description":"if true, open shifts will also be returned","default":false},"includeRelationships":{"type":"boolean","description":"if true, beside returning the events, the resulting data will also includedata related to the events like, members, skills, locations and teams","default":false}},"required":["fromDate","toDate"]},"PublicEventClockingEntry":{"type":"object","properties":{"at":{"type":"string","description":"Adjusted time from company rules. This value is use to calculate the total worked hours."},"originalAt":{"type":"string","description":"The actual time when employee clocked."}}},"PublicBreak":{"type":"object","properties":{"paid":{"type":"boolean","description":"if true the break is a paid break otherwise an unpaid break"},"durationInM":{"type":"number","description":"the break duration in minutes"},"startInM":{"type":"number","description":"an optional value in minutes from the beginning of the shift indicating when the break should start"}},"required":["paid","durationInM"]},"PublicEventClocking":{"type":"object","properties":{"in":{"description":"Event clock in informations","allOf":[{"$ref":"#/components/schemas/PublicEventClockingEntry"}]},"out":{"description":"Event clock out informations","allOf":[{"$ref":"#/components/schemas/PublicEventClockingEntry"}]},"clockedBreaks":{"description":"Clocked breaks information","type":"array","items":{"type":"string"}},"paidDurationInM":{"type":"number","description":"Paid duration in minutes"},"updatedByMemberId":{"type":"string","description":"Uid of the employee who update clocking"},"updatedByMemberCode":{"type":"string","description":"Code of the employee who update clocking"},"updatedAt":{"type":"string","description":"Clocking update date and time. In ISO-8601 format."},"validatedBy":{"type":"string","description":"The clocking can be validated by the smart punch or by an manager","enum":["MEMBER","SMART_PUNCH"]},"validatedByMemberId":{"type":"string","description":"Uid of the employee who validated clocking"},"validatedByMemberCode":{"type":"string","description":"Code of the employee who validated clocking"},"validatedAt":{"type":"string","description":"clocking validate date and time. In ISO-8601 format."},"paidBreaks":{"description":"This optional property contains an array of planned paid breaks. If null or undefined, the shift has no planned paid breaks.","type":"array","items":{"type":"string"}},"unpaidBreak":{"description":"This optional property is the planned unpaid break. The duration of the break is available in unpaidBreak.durationInM. If null or undefined, the shift has no planned unpaid break or its duration is zero.","allOf":[{"$ref":"#/components/schemas/PublicBreak"}]},"paidAmount":{"type":"number","description":"The amount paid calculated from the employee's hourly wage multiplied by hours worked minus the sum of all unpaid break time plus extra paid time (if specified)."},"locked":{"type":"boolean","description":"True if the Timesheet have been locked"},"lockedByMemberId":{"type":"string","description":"Uid of the employee who locked clocking"},"lockedByMemberCode":{"type":"string","description":"Code of the employee who locked clocking"},"lockedAt":{"type":"string","description":"Clocking update date and time. In ISO-8601 format."}},"required":["in","out","clockedBreaks","paidDurationInM"]},"PublicEventPremium":{"type":"object","properties":{"uid":{"type":"string","description":"Unique premium id"},"adHoc":{"type":"boolean","description":"Premium created specifically for this shift"},"names":{"type":"object","description":"Multilingual premium name as a map indexed by locale (\"en\" or \"fr\")","example":{"en":"night bonus","fr":"prime de nuit"},"additionalProperties":{"type":"string"}},"calculationType":{"type":"string","description":"Type of calculation for the premium","example":"AMOUNT: flat amount (+ 15$), HOURS: flat amount of hours (+ 1h), HOURLY_MULTIPLIER: multiply hourly rate (x 1.5/h), HOURLY_BONUS: flat hourly bonus (+ 1$/h)","enum":["AMOUNT","HOURS","HOURLY_MULTIPLIER","HOURLY_BONUS"]},"calculationAmount":{"type":"number","description":"Amount used to calculate the premium from the calculationType"},"paidAmount":{"type":"number","description":"Paid amount for this premium","example":"120"},"plannedPaidAmount":{"type":"number","description":"Planed paid amount for this premium","example":"120"},"paidDurationInM":{"type":"number","description":"Paid duration in minutes","example":"10"},"plannedPaidDurationInM":{"type":"number","description":"Planned paid duration in minutes","example":"10"},"code":{"type":"string","description":"Premium code","example":"241"}},"required":["uid","names","calculationType","calculationAmount"]},"PublicEventApproval":{"type":"object","properties":{"status":{"type":"string","enum":["NEEDS_APPROVAL","APPROVED","REFUSED"],"description":"Approval status"},"updatedAt":{"type":"string","description":"Modification date and time of the status. In ISO-8601 format"},"updatedByMemberId":{"type":"string","description":"UID of the member who updated the status"},"refusalReason":{"type":"string","description":"Refusal reason"}},"required":["status"]},"PublicEventRequest":{"type":"object","properties":{"type":{"type":"string","enum":["REPLACEMENT","SWAP","OPEN_SHIFT"],"description":"Type of the request"},"reason":{"type":"string","description":"Request reason"},"memberId":{"type":"string","description":"Member UID of the employee requesting a replacement or a swap"},"createdAt":{"type":"string","description":"Request creation date and time. In ISO-8601 format"},"updatedAt":{"type":"string","description":"Request last modification date and time. In ISO-8601 format"},"approval":{"description":"Request approval information","allOf":[{"$ref":"#/components/schemas/PublicEventApproval"}]},"openShiftCount":{"type":"number","description":"Number of places available for an open shift"},"swapEventIds":{"description":"Event UIDs of the events to swap","type":"array","items":{"type":"string"}}},"required":["type","createdAt"]},"PublicEventInitialRequest":{"type":"object","properties":{"type":{"type":"string","enum":["REPLACEMENT","SWAP","OPEN_SHIFT"],"description":"Type of the request"},"memberId":{"type":"string","description":"Member UID related to the request. If present, indicates the member UID of the employee being replaced or swapped. If not present, the shift was originally an open shift"},"reason":{"type":"string","description":"Request reason"},"createdAt":{"type":"string","description":"Creation date and time of the initial request when the employee asked for a replacement or a swap. Or in the case of an open shift the creation date and time of when the open shift was published"},"acceptedAt":{"type":"string","description":"Date and time when the request was accepted. In ISO-8601 format"},"swapEventId":{"type":"string","description":"Event UID of the other shift being swapped"},"approval":{"description":"Request approval information","allOf":[{"$ref":"#/components/schemas/PublicEventApproval"}]}},"required":["type","createdAt"]},"PublicEvent":{"type":"object","properties":{"uid":{"type":"string","description":"unique event id"},"externalId":{"type":"string","description":"The unique event externalId. The externalId is often used as a mapping value between Evolia and an external system"},"startsAt":{"type":"string","description":"date and time of the start of the event. In ISO-8601 format."},"endsAt":{"type":"string","description":"date and time of the end of the event. In ISO-8601 format."},"hideEndsAt":{"type":"boolean","description":"if true the event has an undetermined end time. endsAt is still initialised but represent more a suggested end time"},"timeZone":{"type":"string","description":"event time zone, ex: America/New_York"},"memberFirstName":{"type":"string","description":"when assigned, contains the member (employee) first name"},"memberLastName":{"type":"string","description":"when assigned, contains the member (employee) first name"},"memberId":{"type":"string","description":"when assigned, contains the member (employee) UID"},"memberCode":{"type":"string","description":"when assigned, contains the member (employee) code"},"memberHourlyWage":{"type":"number","description":"when assigned, contains the member hourly wage specific to the skill of the shift"},"openShiftCount":{"type":"number","description":"a shift is considered open when memberId is undefined. When a shift is open, openShiftCount indicates the number of places available"},"skillId":{"type":"string","description":"the event skill UID (position)"},"skillName":{"type":"string","description":"the event skill name (position)"},"skillCode":{"type":"string","description":"the event skill code (position)"},"locationId":{"type":"string","description":"the event location UID"},"locationName":{"type":"string","description":"the event location name"},"locationCode":{"type":"string","description":"the event location code"},"subLocationId":{"type":"string","description":"the event sub-location UID"},"subLocationName":{"type":"string","description":"the event sub-location name"},"subLocationCode":{"type":"string","description":"the event sub-location code"},"divisionId":{"type":"string","description":"the event division UID"},"teamId":{"type":"string","description":"the event team UID"},"teamCode":{"type":"string","description":"the event team code"},"teamName":{"type":"string","description":"the event team name"},"isStandby":{"type":"boolean","description":"if true this event is in stand-by"},"isCancelled":{"type":"boolean","description":"if true this event is cancelled"},"cancelledReason":{"type":"string","description":"the reason of the cancellation"},"isDraft":{"type":"boolean","description":"if true this event is draft"},"note":{"type":"string","description":"This note is visible to the assigned employee and to shift team managers"},"internalNote":{"type":"string","description":"The internalNote field is a private property restricted to shift team managers. This information is never visible to the assigned employee."},"paidPreparationTimeInM":{"type":"number","description":"The paid preparation time in minutes."},"assignedBy":{"type":"object","description":"when assigned, member (employee) UID that assigned the event."},"assignedAt":{"type":"string","description":"when assigned, date and time of the assignment of the event. In ISO-8601 format."},"splitFromEventId":{"type":"string","description":"when event is split from another event, contains the source event UID"},"clocking":{"description":"the event clocking informations","allOf":[{"$ref":"#/components/schemas/PublicEventClocking"}]},"premiums":{"description":"Array of premium apply on the event","type":"array","items":{"$ref":"#/components/schemas/PublicEventPremium"}},"request":{"description":"If present, indicates that there is a request on an open shift or a swap/replacement has been requested","type":"array","items":{"$ref":"#/components/schemas/PublicEventRequest"}},"initialRequest":{"description":"Last request information performed on this shift","type":"array","items":{"$ref":"#/components/schemas/PublicEventInitialRequest"}}},"required":["uid","startsAt","endsAt","hideEndsAt","timeZone","skillId","skillName","teamId","isDraft","paidPreparationTimeInM","assignedBy","assignedAt","splitFromEventId"]},"Address":{"type":"object","properties":{"line1":{"type":"string"},"line2":{"example":"string","oneOf":[{"type":"string"},{"type":"null"}]},"city":{"example":"string","oneOf":[{"type":"string"},{"type":"null"}]},"state":{"example":"string","oneOf":[{"type":"string"},{"type":"null"}]},"postalCode":{"example":"string","oneOf":[{"type":"string"},{"type":"null"}]},"country":{"example":"string","oneOf":[{"type":"string"},{"type":"null"}]},"latitude":{"example":48.900838,"oneOf":[{"type":"string"},{"type":"null"}]},"longitude":{"example":-81.131181,"oneOf":[{"type":"string"},{"type":"null"}]}},"required":["line1"]},"PublicUserActivity":{"type":"object","properties":{"lastActiveAt":{"type":"string","description":"Last user activity date and time. In ISO-8601 format"}}},"PublicMember":{"type":"object","properties":{"uid":{"type":"string","description":"Unique member id"},"createdAt":{"type":"string","description":"Member creation date and time. In ISO-8601 format"},"updatedAt":{"type":"string","description":"Member last modification date and time. In ISO-8601 format"},"deactivatedAt":{"type":"string","description":"if the member status is inactive, the deactivation date in ISO-8601 format"},"status":{"type":"string","enum":["active","inactive","deleted","needs_approval"]},"firstName":{"type":"string","description":"Member first name"},"lastName":{"type":"string","description":"Member last name"},"code":{"type":"string","example":"12","description":"Member employee code","nullable":true},"pin":{"type":"string","example":"98765","description":"Employee pin use to clock in and out of the punch console. Length must be larger than 5 characters"},"type":{"type":"object","description":"FULL_TIME = 1,PART_TIME = 2, SUBSTITUTE = 3, OCCASIONAL = 4, CONTRACTUAL = 5, SUPERNUMERARY = 6, ON_PROBATION = 7, PROSPECT = 8, TRAINING = 9, PARENTAL_LEAVE = 10, STUDENT = 11, REGULAR = 12, SEASONAL = 13, PARTIAL_WITH_RESTRICTION = 14, MANAGER = 15, VOLUNTEER = 16, AGENCY = 17,"},"typeId":{"type":"object","description":"A member type UID indicating the member status"},"typeCode":{"type":"object","description":"A member type code indicating the member status"},"email":{"type":"string","example":"johndoe@email.com","description":"Member email","nullable":true},"phone":{"type":"string","example":"418-262-1123","description":"Member phone number","nullable":true},"hiringDate":{"type":"number","example":"2015-02-02","description":"Member hiring date in format yyyy-mm-dd","nullable":true},"teamIds":{"type":"array","example":"[teamId1, teamId2]","description":"An array of team UID indicating on which team a member can work","items":{"type":"string"},"nullable":true},"teamCodes":{"type":"array","example":"[teamCode1, teamCode2]","description":"An array of team code indicating on which team a member can work","items":{"type":"string"},"nullable":true},"skillIds":{"type":"array","example":"[skillId1, skillId2]","description":"An array of skill UID indicating on which skill (position) a member can work","items":{"type":"string"},"nullable":true},"skillCodes":{"type":"array","example":"[skillCode1, skillCode2]","description":"An array of skill code indicating on which skill (position) a member can work","items":{"type":"string"},"nullable":true},"locationIds":{"type":"array","example":"[locationId1, locationId2]","description":"An array of location UID indicating on which location a member can work","items":{"type":"string"},"nullable":true},"locationCodes":{"type":"array","example":"[locationCode1, locationCode2]","description":"An array of location code indicating on which location a member can work","items":{"type":"string"},"nullable":true},"custom":{"type":"object","example":{"key1":"value1","key2":"value2"},"description":"An optional object of custom properties. Current implementation only support string values","additionalProperties":{"type":"string","nullable":true},"nullable":true},"isAdmin":{"type":"boolean","description":"Indicates if the member is an administrator."},"gender":{"type":"string","example":"M","description":"Member gender. P mean \"Prefer not to say\"","enum":["M","F","X","P"]},"emailNotification":{"type":"boolean","description":"Accept email notifications"},"pushNotification":{"type":"boolean","description":"Accept push notifications"},"birthdate":{"type":"string","description":"Member date of birth","example":"2001-01-31"},"homeAddress":{"description":"Member home address","allOf":[{"$ref":"#/components/schemas/Address"}]},"primaryEmergencyContactName":{"type":"string","description":"Member primary emergency contact name"},"primaryEmergencyContactPhone":{"type":"string","description":"Member primary emergency contact phone"},"primaryEmergencyContactNote":{"type":"string","description":"Member primary emergency contact note"},"secondaryEmergencyContactName":{"type":"string","description":"Member secondary emergency contact name"},"secondaryEmergencyContactPhone":{"type":"string","description":"Member secondary emergency contact phone"},"secondaryEmergencyContactNote":{"type":"string","description":"Member secondary emergency contact note"},"activity":{"description":"Member activity","allOf":[{"$ref":"#/components/schemas/PublicUserActivity"}]}},"required":["uid","createdAt","status","firstName","lastName","pin","typeId","typeCode"]},"PublicLocation":{"type":"object","properties":{"uid":{"type":"string","description":"unique location id"},"status":{"type":"string","enum":["deleted","active"],"description":"Location status"},"name":{"type":"string","description":"Location name"},"abbrev":{"type":"string","description":"Location abbreviation"},"code":{"type":"string","description":"The location code. The code is often used as a mapping value between Evolia and an external system"},"externalId":{"type":"string","description":"The unique location externalId. The externalId is often used as a mapping value between Evolia and an external system"},"address":{"type":"string","description":"Location address"},"coordinates":{"description":"0: Longitude, 1: Latitude","type":"array","items":{"type":"string"}},"subLocationIds":{"description":"Array of sub location UIDs linked to the location","type":"array","items":{"type":"string"}},"subLocations":{"description":"Array of sub locations","type":"array","items":{"type":"string"}},"custom":{"type":"object","example":{"key1":"value1","key2":"value2"},"description":"An optional object of custom properties. Current implementation only support string values","additionalProperties":{"type":"string","nullable":true},"nullable":true}},"required":["uid","status","name"]},"PublicSubLocation":{"type":"object","properties":{"uid":{"type":"string","description":"unique sub-location id"},"names":{"type":"object","description":"Multilingual sub-location name as a map indexed by locale (\"en\" or \"fr\")"},"abbrev":{"type":"string","description":"Sub-location abbreviation"},"code":{"type":"string","description":"The sub-location code. The code is often used as a mapping value between Evolia and an external system"},"parentLocationId":{"type":"string","description":"unique parent location id"},"parentLocationCode":{"type":"string","description":"unique parent location code"}},"required":["uid","names","parentLocationId","parentLocationCode"]},"PublicSkill":{"type":"object","properties":{"uid":{"type":"string","description":"unique skill id"},"status":{"type":"string","enum":["active","deleted"],"description":"Skill status"},"names":{"type":"object","description":"Multilingual skill name as a map indexed by locale (\"en\" or \"fr\")","example":{"en":"cook","fr":"cuisinier"},"additionalProperties":{"type":"string"}},"abbrev":{"type":"string","description":"Represents the abbreviation of the skill"},"code":{"type":"string","description":"The skill code. The code is often used as a mapping value between Evolia and an external system"},"externalId":{"type":"string","description":"The skill externalId. The unique externalId is often used as a mapping value between Evolia and an external system"},"colorIndex":{"type":"number","description":"An index from 0 to 19 matching the skill color palette. Check the create position screen in Evolia settings."},"custom":{"type":"object","example":{"key1":"value1","key2":"value2"},"description":"An optional object of custom properties. Current implementation only support string values","additionalProperties":{"type":"string","nullable":true},"nullable":true}},"required":["uid","status","names","colorIndex"]},"PublicTeam":{"type":"object","properties":{"uid":{"type":"string","description":"unique team id"},"status":{"type":"string","enum":["active","deleted"],"description":"Team status"},"names":{"type":"object","description":"Multilingual team name as a map indexed by locale (\"en\" or \"fr\")","example":{"en":"customer service","fr":"service client"},"additionalProperties":{"type":"string"}},"code":{"type":"string","description":"The team code. The code is often used as a mapping value between Evolia and an external system"},"externalId":{"type":"string","description":"The unique team externalId. The externalId is often used as a mapping value between Evolia and an external system"},"locationIds":{"description":"Array of location UIDs linked to the team","type":"array","items":{"type":"string"}},"skillIds":{"description":"Array of skill UIDs linked to the team","type":"array","items":{"type":"string"}},"custom":{"type":"object","example":{"key1":"value1","key2":"value2"},"description":"An optional object of custom properties. Current implementation only support string values","additionalProperties":{"type":"string","nullable":true},"nullable":true}},"required":["uid","status","names","locationIds","skillIds"]},"GetPublicEvents":{"type":"object","properties":{"events":{"description":"The list of events matching the query","type":"array","items":{"$ref":"#/components/schemas/PublicEvent"}},"members":{"description":"The list of members that are linked to the resulting events","type":"array","items":{"$ref":"#/components/schemas/PublicMember"}},"locations":{"description":"The list of locations that are linked to the resulting events","type":"array","items":{"$ref":"#/components/schemas/PublicLocation"}},"subLocations":{"description":"The list of sub-locations that are linked to the resulting events","type":"array","items":{"$ref":"#/components/schemas/PublicSubLocation"}},"skills":{"description":"The list of skills that are linked to the resulting events","type":"array","items":{"$ref":"#/components/schemas/PublicSkill"}},"teams":{"description":"The list of teams that are linked to the resulting events","type":"array","items":{"$ref":"#/components/schemas/PublicTeam"}}},"required":["events","members","locations","subLocations","skills","teams"]},"CreatePublicEventRequest":{"type":"object","properties":{"startsAt":{"type":"string","description":"the start date and time of the event. In ISO-8601 format."},"endsAt":{"type":"string","description":"the end date and time of the event. In ISO-8601 format. The total event duration is 24 hours max."},"hideEndsAt":{"type":"boolean","description":"if true the event has an undetermined end time. endsAt is still initialised but represent a suggested end time","default":false},"skillId":{"type":"string","description":"the event skill(position) UID. Can use the skillCode or the skillId (skillId will take precedence over skillCode if set)"},"skillCode":{"type":"string","description":"the event skill(position) code. Can use the skillCode or the skillId (skillId will take precedence over skillCode if set)"},"teamId":{"type":"string","description":"the event team UID. Can use the teamCode or the teamId (teamId will take precedence over teamCode if set)"},"teamCode":{"type":"string","description":"the event team code. Can use the teamCode or the teamId (teamId will take precedence over teamCode if set)"},"locationId":{"type":"string","default":null,"description":"the event location UID. Can use the locationCode or the locationId (locationId will take precedence over locationCode if set)"},"locationCode":{"type":"string","default":null,"description":"the event location code. Can use the locationCode or the locationId (locationId will take precedence over locationCode if set)"},"subLocationId":{"type":"string","default":null,"description":"the event sub-location UID. Can use the subLocationCode or the subLocationId (subLocationId will take precedence over subLocationCode if set)"},"subLocationCode":{"type":"string","default":null,"description":"the event sub-location code. Can use the subLocationCode or the subLocationId (subLocationId will take precedence over subLocationCode if set)"},"note":{"type":"string","description":"This note is visible to the assigned employee and to shift team managers","default":null},"internalNote":{"type":"string","description":"The internalNote field is a private property restricted to shift team managers. This information is never visible to the assigned employee.","default":null},"isStandby":{"type":"boolean","description":"if true this event is in stand-by","default":false},"standbyExpireInM":{"type":"number"},"openShiftCount":{"type":"number","description":"Use to specified the number of places available for this open shift. If memberCode AND memberId are null or undefined, this value must be greater then 0. If memberCode OR memberId is specified, this value is ignored.","default":0},"memberId":{"type":"string","description":"The member (employee) uid assigned to this shift. Can use the memberCode or the memberId (memberId will take precedence over memberCode if set).If memberCode AND memberId are null or undefined, openShiftCount must be greater then 0. If memberCode OR memberId is specified, openShiftCount is ignored."},"memberCode":{"type":"string","description":"The member (employee) code assigned to this shift. Can use the memberCode or the memberId (memberId will take precedence over memberCode if set). If memberCode is null or undefined, openShiftCount must be greater then 0. if memberCode is specified, openShiftCount is ignored.","default":0},"isDraft":{"type":"boolean","description":"if true this event is draft","default":false},"breaks":{"description":"To add breaks to this shift. Take note that you can only have one unpaid break.","type":"array","items":{"$ref":"#/components/schemas/PublicBreak"}},"externalId":{"type":"string","default":null,"description":"The externalId is an optional, user-defined string that allows you to map objects in our system to records within your own external database or third-party application.\nThis value is not validated or used by our internal application logic. It serves strictly as a metadata bridge for your integration.\nThis is a searchable field but since our system does not enforce uniqueness on this field, we recommend using unique values to ensure your integration can reliably find records using your own identifiers"},"premiumCodes":{"default":null,"example":["premiumCode1","premiumCode2"],"description":"Array of premium codes to apply on the event. If set, premiumIds will take precedence over premiumCodes.","type":"array","items":{"type":"string"}},"premiumIds":{"default":null,"example":["premiumId1","premiumId2"],"description":"Array of premium ids to apply on the event. If set, premiumIds will take precedence over premiumCodes.","type":"array","items":{"type":"string"}}},"required":["startsAt","endsAt","skillId","skillCode","teamId","teamCode","standbyExpireInM","isDraft"]},"UpdatePublicEventRequest":{"type":"object","properties":{"startsAt":{"type":"string","description":"the start date and time of the event. In ISO-8601 format."},"endsAt":{"type":"string","description":"the end date and time of the event. In ISO-8601 format. The total event duration is 24 hours max."},"timeZone":{"type":"string","description":"event time zone","default":"the time zone from the event team or company","example":"America/New_York"},"hideEndsAt":{"type":"boolean","description":"if true the event has an undetermined end time. endsAt is still initialised but represent a suggested end time","default":false},"skillId":{"type":"string","description":"the event skill(position) UID. Can use the skillCode or the skillId (skillId will take precedence over skillCode if set)"},"skillCode":{"type":"string","description":"the event skill(position) code. Can use the skillCode or the skillId (skillId will take precedence over skillCode if set)"},"teamId":{"type":"string","description":"the event team UID. Can use the teamCode or the teamId (teamId will take precedence over teamCode if set)"},"teamCode":{"type":"string","description":"the event team code. Can use the teamCode or the teamId (teamId will take precedence over teamCode if set)"},"locationId":{"type":"string","default":null,"description":"the event location UID. Can use the locationCode or the locationId (locationId will take precedence over locationCode if set)"},"locationCode":{"type":"string","default":null,"description":"the event location code. Can use the locationCode or the locationId (locationId will take precedence over locationCode if set)"},"subLocationId":{"type":"string","default":null,"description":"the event sub-location UID. Can use the subLocationCode or the subLocationId (subLocationId will take precedence over subLocationCode if set)"},"subLocationCode":{"type":"string","default":null,"description":"the event sub-location code. Can use the subLocationCode or the subLocationId (subLocationId will take precedence over subLocationCode if set)"},"note":{"type":"string","description":"This note is visible to the assigned employee and to shift team managers","default":null},"internalNote":{"type":"string","description":"The internalNote field is a private property restricted to shift team managers. This information is never visible to the assigned employee.","default":null},"premiumCodes":{"default":null,"example":["premiumCode1","premiumCode2"],"description":"Array of premium codes to apply on the event. If set, premiumIds will take precedence over premiumCodes.","type":"array","items":{"type":"string"}},"premiumIds":{"default":null,"example":["premiumId1","premiumId2"],"description":"Array of premium ids to apply on the event. If set, premiumIds will take precedence over premiumCodes.","type":"array","items":{"type":"string"}},"externalId":{"type":"string","default":null,"description":"The externalId is an optional, user-defined string that allows you to map objects in our system to records within your own external database or third-party application.\nThis value is not validated or used by our internal application logic. It serves strictly as a metadata bridge for your integration.\nThis is a searchable field but since our system does not enforce uniqueness on this field, we recommend using unique values to ensure your integration can reliably find records using your own identifiers"}},"required":["skillId","skillCode","teamId","teamCode"]},"ConditionCode":{"type":"string","enum":["REGULAR_SHIFTS","STANDBY_SHIFTS","REPLACEMENTS","UNFILLED_SHIFTS","ASSIGNMENTS_TO_APPROVE","REPLACEMENT_REQUESTS","SWAP_REQUESTS","REGULAR_SHIFTS_TO_APPROVE","REPLACEMENTS_TO_APPROVE","SWAPS_TO_APPROVE","DRAFTS","CANCELLED","UNFILLED_SHIFTS_AND_DRAFT","AUTO_SCHEDULED","OPEN_EVENT_ASSIGNED","EVENT_NOT_CONFIRMED","RECURRENT_SHIFTS","UNIQUE_SHIFTS"],"description":"If specified, use this is array of condition code to publish specific type of events"},"PublishPublicEventsByPeriodRequest":{"type":"object","properties":{"fromDate":{"type":"string","description":"A date in ISO-8601 format (2021-01-31T20:00:00.000-05:00). Publish events which ends after this date","example":"2021-01-31T20:00:00.000-05:00"},"toDate":{"type":"string","description":"A date in ISO-8601 format (2021-01-31T20:00:00.000-05:00). Publish events which starts before this date","example":"2021-01-31T20:00:00.000-05:00"},"forTeamIds":{"description":"If specified, use this array of team UIDs to only published events linked to those teams","example":["66047859460e3cfd4c887098"],"type":"array","items":{"type":"string"}},"forTeamCodes":{"description":"If specified, use this array of team codes to only published events linked to those teams. (forTeamIds will take precedence over forTeamCodes if set)","example":["TEAM_!"],"type":"array","items":{"type":"string"}},"forMemberIds":{"description":"If specified, use this array of member UIDs to only published events linked to those members","example":["66047859460e3cfd4c887098"],"type":"array","items":{"type":"string"}},"forMemberCodes":{"description":"If specified, use this array of member codes to only published events linked to those members. (forMemberIds will take precedence over forMemberCodes if set)","example":["EMP_1"],"type":"array","items":{"type":"string"}},"forLocationIds":{"description":"If specified, use this array of location UIDs to only published events linked to those locations","example":["66047859460e3cfd4c887098"],"type":"array","items":{"type":"string"}},"forLocationCodes":{"description":"If specified, use this array of location codes to only PUBLISH events linked to those locations. (forLocationIds will take precedence over forLocationCodes if set)","example":["LOC_1"],"type":"array","items":{"type":"string"}},"forSkillIds":{"description":"If specified, use this array of skill UIDs to only published events linked to those skills","example":["66047859460e3cfd4c887098"],"type":"array","items":{"type":"string"}},"forSkillCodes":{"description":"If specified, use this array of skill codes to only PUBLISH events linked to those skills (positions). (forSkillIds will take precedence over forSkillCodes if set)","example":["SKILL_1"],"type":"array","items":{"type":"string"}},"forConditionCodes":{"type":"array","description":"If specified, use this is array of condition code to publish specific type of events","example":["REGULAR_SHIFTS"],"items":{"$ref":"#/components/schemas/ConditionCode"}},"sendNotification":{"type":"boolean","description":"If true (default), notifications will be sent"}},"required":["fromDate","toDate"]},"AssignPublicEventRequest":{"type":"object","properties":{"andTheFollowing":{"type":"boolean","description":"Used only if the shift is recurring. When true the operation will occur on the initial instance of the request and the following instances"},"all":{"type":"boolean","description":"Used only if the shift is recurring. When true the operation will occur on instances of the recurring shift, including the past instances"},"fromDate":{"type":"number","description":"Used only if the shift is recurring. When specify, the operation will only be applied on instances starting at or after this date. Format: unix timestamp in milliseconds"},"toDate":{"type":"number","description":"Used only if the shift is recurring. When specify, the operation will only be applied on instances starting at or before this date. Format: unix timestamp in milliseconds"},"weekday":{"type":"number","description":"Used only if the shift is recurring. When true the operation will occur on instances of the recurring shift that are on a weekday"},"forMember":{"type":"boolean","description":"Used only if the shift is recurring. When true the operation will occur on instances that are assign to the same member (employee) of the initial instance of the request."},"interval":{"type":"number","description":"Used only if the shift is recurring. When specify the operation will only occur on every X interval instances."},"memberId":{"type":"string","description":"The member (employee) UID to assign to the shift. Can be empty if the memberCode is set"},"memberCode":{"type":"string","description":"The member (employee) code to assign to the shift. Can be empty if the memberUId is set"}}},"CancelPublicEventRequest":{"type":"object","properties":{"andTheFollowing":{"type":"boolean","description":"Used only if the shift is recurring. When true the operation will occur on the initial instance of the request and the following instances"},"all":{"type":"boolean","description":"Used only if the shift is recurring. When true the operation will occur on instances of the recurring shift, including the past instances"},"fromDate":{"type":"number","description":"Used only if the shift is recurring. When specify, the operation will only be applied on instances starting at or after this date. Format: unix timestamp in milliseconds"},"toDate":{"type":"number","description":"Used only if the shift is recurring. When specify, the operation will only be applied on instances starting at or before this date. Format: unix timestamp in milliseconds"},"weekday":{"type":"number","description":"Used only if the shift is recurring. When true the operation will occur on instances of the recurring shift that are on a weekday"},"forMember":{"type":"boolean","description":"Used only if the shift is recurring. When true the operation will occur on instances that are assign to the same member (employee) of the initial instance of the request."},"interval":{"type":"number","description":"Used only if the shift is recurring. When specify the operation will only occur on every X interval instances."},"reason":{"type":"string","description":"The reason of the cancellation"}}},"RecurrenceRequest":{"type":"object","properties":{"andTheFollowing":{"type":"boolean","description":"Used only if the shift is recurring. When true the operation will occur on the initial instance of the request and the following instances"},"all":{"type":"boolean","description":"Used only if the shift is recurring. When true the operation will occur on instances of the recurring shift, including the past instances"},"fromDate":{"type":"number","description":"Used only if the shift is recurring. When specify, the operation will only be applied on instances starting at or after this date. Format: unix timestamp in milliseconds"},"toDate":{"type":"number","description":"Used only if the shift is recurring. When specify, the operation will only be applied on instances starting at or before this date. Format: unix timestamp in milliseconds"},"weekday":{"type":"number","description":"Used only if the shift is recurring. When true the operation will occur on instances of the recurring shift that are on a weekday"},"forMember":{"type":"boolean","description":"Used only if the shift is recurring. When true the operation will occur on instances that are assign to the same member (employee) of the initial instance of the request."},"interval":{"type":"number","description":"Used only if the shift is recurring. When specify the operation will only occur on every X interval instances."}}},"CreatePublicReplacementRequest":{"type":"object","properties":{"andTheFollowing":{"type":"boolean","description":"Used only if the shift is recurring. When true the operation will occur on the initial instance of the request and the following instances"},"all":{"type":"boolean","description":"Used only if the shift is recurring. When true the operation will occur on instances of the recurring shift, including the past instances"},"fromDate":{"type":"number","description":"Used only if the shift is recurring. When specify, the operation will only be applied on instances starting at or after this date. Format: unix timestamp in milliseconds"},"toDate":{"type":"number","description":"Used only if the shift is recurring. When specify, the operation will only be applied on instances starting at or before this date. Format: unix timestamp in milliseconds"},"weekday":{"type":"number","description":"Used only if the shift is recurring. When true the operation will occur on instances of the recurring shift that are on a weekday"},"forMember":{"type":"boolean","description":"Used only if the shift is recurring. When true the operation will occur on instances that are assign to the same member (employee) of the initial instance of the request."},"interval":{"type":"number","description":"Used only if the shift is recurring. When specify the operation will only occur on every X interval instances."},"reason":{"type":"string"},"withMemberId":{"type":"string","description":"To create an open replacement leave this value and withMemberCode empty.But to create a replacement with a specific member you can specify its member UID in this parameter (you can also use withMemberCode)"},"withMemberCode":{"type":"string","description":"To create an open replacement leave this value and withMemberId empty.But to create a replacement with a specific member you can specify its member code in this parameter (you can also use withMemberId)"}}},"SetOpenPublicEventBulkRequest":{"type":"object","properties":{"eventIds":{"description":"Use this array of event ids to specify which events will be converted to open shits","example":["66047859460e3cfd4c887098"],"type":"array","items":{"type":"string"}}},"required":["eventIds"]},"SetOpenPublicEventBulkResult":{"type":"object","properties":{"eventsModified":{"description":"Ids of events that have been converted to open shifts","example":["66047859460e3cfd4c887098"],"type":"array","items":{"type":"string"}}},"required":["eventsModified"]},"CreatePublicLocationRequest":{"type":"object","properties":{"name":{"type":"string","description":"the name of the location","example":"Headquarters"},"code":{"type":"string","description":"A human readable ID that can be use has an ID for other API calls. The code is also used to map a location to an external system structural element."},"abbrev":{"type":"string","description":"an abbreviation text, used in various place in the application where space is tight. Like on shifts of the schedule view.","example":"HQ"},"address":{"type":"string","description":"the full address of the location"},"radiusInM":{"type":"number","description":"a radius in meter around the location center point where a punch entry is considered valid","default":"100 meters"},"geoLocationEnabled":{"type":"boolean","description":"when true a punch is valid if the location of the user is within the location coordinates and radius","default":false},"latitude":{"type":"number","description":"the latitude coordinate of the location","default":0},"longitude":{"type":"number","description":"the longitude coordinate of the location","default":0},"externalId":{"type":"string","description":"A unique UID or a human readable ID that can be use has an ID for other API calls. The externalId can also be used to map a location to an external system structural element."},"custom":{"type":"object","description":"To set custom fields to a location. You can pass a json objet where the values are string","example":{"field1":"value1","field2":"value2"},"additionalProperties":{"oneOf":[{"type":"string"}]}}},"required":["name"]},"UpdatePublicLocationRequest":{"type":"object","properties":{"name":{"type":"string","description":"the name of the location","example":"Headquarters"},"code":{"type":"string","description":"A human readable ID that can be use has an ID for other API calls. The code is also used to map a location to an external system structural element."},"externalId":{"type":"string","description":"A unique UID or a human readable ID that can be use has an ID for other API calls. The externalId can also be used to map a location to an external system structural element."},"abbrev":{"type":"string","description":"an abbreviation text, used in various place in the application where space is tight. Like on shifts of the schedule view.","example":"HQ"},"address":{"type":"string","description":"the full address of the location"},"radiusInM":{"type":"number","description":"a radius in meter around the location center point where a punch entry is considered valid"},"geoLocationEnabled":{"type":"boolean","description":"when true a punch is valid if the location of the user is within the location coordinates and radius"},"latitude":{"type":"number","description":"the latitude coordinate of the location"},"longitude":{"type":"number","description":"the longitude coordinate of the location"},"custom":{"type":"object","description":"To set custom fields to a location. You can pass a json objet where the values are string. Will merge with previous values.","example":{"field1":"value1","field2":"value2"},"additionalProperties":{"oneOf":[{"type":"string"}]}}}},"CreatePublicSubLocationRequest":{"type":"object","properties":{"names":{"type":"object","description":"The name of the sub location in various locales. Accepted locales are en, fr, es. Must be unique across all sub locations of the parent location.","example":{"en":"sub-location name","fr":"nom du sous-lieu"},"additionalProperties":{"type":"string"}},"abbrev":{"type":"string","description":"An abbreviation text, used in various place in the application where space is tight. Like on shifts of the schedule view. Must be unique across all sub locations of the parent location."},"code":{"type":"string","description":"A human readable ID that can be use has an ID for other API calls. The code is also used to map a sub location to an external system structural element."}},"required":["names"]},"UpdatePublicSubLocationRequest":{"type":"object","properties":{"names":{"type":"object","description":"The name of the sub location in various locales. Accepted locales are en, fr, es. Must be unique across all sub locations of the parent location.","example":{"en":"sub-location name","fr":"nom du sous-lieu"},"additionalProperties":{"type":"string"}},"abbrev":{"type":"string","description":"An abbreviation text, used in various place in the application where space is tight. Like on shifts of the schedule view. Must be unique across all sub locations of the parent location."},"code":{"type":"string","description":"A human readable ID that can be use has an ID for other API calls. The code is also used to map a sub location to an external system structural element."}}},"CreatePublicMemberRequest":{"type":"object","properties":{"createOrUpdate":{"type":"boolean","description":"If set to true, the process will verify if an employee with the specified code already exists. If only one employee is found with this code, the employee will be updated. If more than one employee is found, the process return an error. If no employee found, a new employee will be created."},"fName":{"type":"string","description":"Member First Name","example":"John"},"lName":{"type":"string","description":"Member Last Name","example":"Doe"},"email":{"type":"string","description":"Member email must be a valid email","nullable":true,"default":null,"example":"johndoe@email.com"},"phone":{"type":"string","description":"Member phone","nullable":true,"default":null,"example":"5551112222"},"code":{"type":"string","description":"Member code act as employee number. It is also used to uniquely identify a member during third parties system integration and during importation","nullable":true,"default":null,"example":"1"},"hiringDate":{"type":"string","description":"Date in SQL format yyyy-mm-dd","nullable":true,"default":null,"example":"2021-01-31"},"hourlyWage":{"type":"number","description":"Default hourly wage used in all positions","nullable":true,"default":null,"example":18},"maxHoursPerWeek":{"type":"number","description":"Maximum hours of work per week. Must be between 0 and 168 hours.","nullable":true,"default":null,"example":40},"maxHoursPerPayPeriod":{"type":"number","description":"Maximum hours of work per pay period. Must be greater than 0","nullable":true,"default":null,"example":80},"emailNotification":{"type":"boolean","description":"Accept email notifications","default":"false"},"pushNotification":{"type":"boolean","description":"Accept push notifications","default":"false"},"locale":{"type":"string","description":"Possible values are fr, en, es (french, english, spanish)","example":"en"},"skills":{"type":"object","description":"Skill code, name or uid","example":["S1","S2"]},"skillWages":{"type":"string","description":"Hourly wage by skill. Use this format skillCode:amount. Elements must be separate by comma or semicolon","example":"S1:12.50,S2:15.25 OR S1:12.50;S2:15.25"},"skillInitialExperienceHours":{"type":"string","description":"Use this format skillCode:hourCount separate all entries with a comma or semicolon","example":"S1:150,S2:250.5,S3:100 OR S1:150;S2:250.5;S3:100"},"teams":{"description":"Team code, name or uid","example":["T1","T2"],"type":"array","items":{"type":"string"}},"locations":{"type":"object","description":"Location code, name or uid","example":["L1","L2"]},"typeCode":{"type":"string","description":"Employment status code"},"pin":{"type":"string","description":"Pin is used to clock in punch console. The value is a number represented as string","example":"654321"},"gender":{"type":"string","description":"Member gender. P mean \"Prefer not to say\"","enum":["M","F","X","P"]},"custom":{"type":"object","description":"To set custom fields to a member. You can pass a json objet where the values are string","example":{"field1":"value1","field2":"value2"},"additionalProperties":{"oneOf":[{"type":"string"}]}},"birthdate":{"type":"string","description":"Date in SQL format yyyy-mm-dd","example":"2001-01-31"},"addressline1":{"type":"string","description":"Home address (line 1)"},"addressline2":{"type":"string","description":"Home address (line 2)"},"city":{"type":"string","description":"City of residence"},"state":{"type":"string","description":"State of residence"},"postalCode":{"type":"string","description":"Postal code / zip code of residence"},"country":{"type":"string","description":"Country of residence"},"primaryEmergencyContactName":{"type":"string","description":"Name of the person to contact in case of an emergency"},"primaryEmergencyContactPhone":{"type":"string","description":"Phone number of the person to contact in case of an emergency"},"primaryEmergencyContactNote":{"type":"string","description":"Note about the emergency contact"},"secondaryEmergencyContactName":{"type":"string","description":"Name of the second person to contact in case of an emergency"},"secondaryEmergencyContactPhone":{"type":"string","description":"Phone number of the second person to contact in case of an emergency"},"secondaryEmergencyContactNote":{"type":"string","description":"Note about the second emergency contact"},"status":{"type":"string","description":"Member status, active or inactive","enum":["active","inactive"],"default":"active"},"sendJoinCompanyNotification":{"type":"boolean","description":"When true, a notification to join the company will be sent if the member has an email","default":"false"}},"required":["createOrUpdate","fName","lName"]},"UpdatePublicMemberRequest":{"type":"object","properties":{"fName":{"type":"object","description":"Member First Name","example":"John"},"lName":{"type":"object","description":"Member Last Name","example":"Doe"},"email":{"type":"object","description":"Member email must be a valid email","example":"johndoe@email.com"},"phone":{"type":"object","description":"Member phone","example":"5551112222"},"code":{"type":"object","description":"Member code act as employee number. It is also used to uniquely identify a member during third parties system integration and during importation","example":"1"},"hiringDate":{"type":"object","description":"Date in SQL format yyyy-mm-dd","example":"2022-06-16"},"hourlyWage":{"type":"object","description":"Default hourly wage used in all positions","example":18},"maxHoursPerWeek":{"type":"object","description":"Maximum hours of work per week. Must be between 0 and 168 hours.","example":40},"maxHoursPerPayPeriod":{"type":"object","description":"Maximum hours of work per pay period. Must be greater than 0","example":80},"emailNotification":{"type":"boolean","description":"Accept email notifications"},"pushNotification":{"type":"boolean","description":"Accept push notifications"},"locale":{"type":"string","description":"Evolia uses this locale when sending emails or sms to the member.Possible values are fr, en, es (french, english, spanish)","example":"en"},"skills":{"type":"object","description":"Skill code, name or uid","example":["S1","S2"]},"skillWages":{"type":"string","description":"Hourly wage by skill. Use this format skillCode:amount. Elements must be separate by comma or semicolon","example":"S1:12.50,S2:15.25 OR S1:12.50;S2:15.25"},"skillInitialExperienceHours":{"type":"string","description":"Use this format skillCode:hourCount separate all entries with a comma or semicolon","example":"S1:150,S2:250.5,S3:100 OR S1:150;S2:250.5;S3:100"},"teams":{"type":"object","description":"Team code, name or uid","example":["T1","T2"]},"locations":{"type":"object","description":"Location code, name or uid","example":["L1","L2"]},"typeCode":{"type":"string","description":"Employment status code"},"pin":{"type":"string","description":"Pin is used to clock in punch console. The value is a number represented as string","example":"654321"},"gender":{"type":"string","description":"Member gender. P mean \"Prefer not to say\"","enum":["M","F","X","P"]},"custom":{"type":"object","description":"To set custom fields to a member. You can pass a json objet where the values are string. Will merge with previous values.","example":{"field1":"value1","field2":"value2"},"additionalProperties":{"oneOf":[{"type":"string"}]}},"birthdate":{"type":"string","description":"Date in SQL format yyyy-mm-dd","example":"2001-01-31"},"addressline1":{"type":"string","description":"Home address (line 1)"},"addressline2":{"type":"string","description":"Home address (line 2)"},"city":{"type":"string","description":"City of residence"},"state":{"type":"string","description":"State of residence"},"postalCode":{"type":"string","description":"Postal code / zip code of residence"},"country":{"type":"string","description":"Country of residence"},"primaryEmergencyContactName":{"type":"string","description":"Name of the person to contact in case of an emergency"},"primaryEmergencyContactPhone":{"type":"string","description":"Phone number of the person to contact in case of an emergency"},"primaryEmergencyContactNote":{"type":"string","description":"Note about the emergency contact"},"secondaryEmergencyContactName":{"type":"string","description":"Name of the second person to contact in case of an emergency"},"secondaryEmergencyContactPhone":{"type":"string","description":"Phone number of the second person to contact in case of an emergency"},"secondaryEmergencyContactNote":{"type":"string","description":"Note about the second emergency contact"},"status":{"type":"string","description":"Member status, active or inactive","enum":["active","inactive"]}}},"GetPublicMemberNotesResult":{"type":"object","properties":{"data":{"description":"an array of PublicMemberNote","type":"array","items":{"type":"string"}}},"required":["data"]},"CreatePublicMemberNoteRequest":{"type":"object","properties":{"note":{"type":"string","description":"New member note (maximum of 4096 characters)","example":"This is a note"}},"required":["note"]},"PublicMemberNote":{"type":"object","properties":{"uid":{"type":"string","description":"Member note UID."},"memberId":{"type":"string","description":"Uid of the member who owns the note"},"createdByMemberId":{"type":"string","description":"Member uid who created the note"},"updatedByMemberId":{"type":"string","description":"Member uid who updated the note"},"note":{"type":"string","description":"Member note"}},"required":["uid","memberId","createdByMemberId","updatedByMemberId","note"]},"UpdatePublicMemberNoteRequest":{"type":"object","properties":{"note":{"type":"string","description":"Member note (maximum of 4096 characters)","example":"This is a note"}},"required":["note"]},"ImportMemberRequest":{"type":"object","properties":{"fName":{"type":"string","description":"Member First Name","example":"John"},"lName":{"type":"string","description":"Member Last Name","example":"Doe"},"email":{"type":"string","description":"Member email must be a valid email","nullable":true,"default":null,"example":"johndoe@email.com"},"phone":{"type":"string","description":"Member phone","nullable":true,"default":null,"example":"5551112222"},"code":{"type":"string","description":"Member code act as employee number. It is also used to uniquely identify a member during third parties system integration and during importation","nullable":true,"default":null,"example":"1"},"hiringDate":{"type":"string","description":"Date in SQL format yyyy-mm-dd","nullable":true,"default":null,"example":"2021-01-31"},"hourlyWage":{"type":"number","description":"Default hourly wage used in all positions","nullable":true,"default":null,"example":18},"maxHoursPerWeek":{"type":"number","description":"Maximum hours of work per week. Must be between 0 and 168 hours.","nullable":true,"default":null,"example":40},"maxHoursPerPayPeriod":{"type":"number","description":"Maximum hours of work per pay period. Must be greater than 0","nullable":true,"default":null,"example":80},"emailNotification":{"type":"boolean","description":"Accept email notifications"},"pushNotification":{"type":"boolean","description":"Accept push notifications"},"locale":{"type":"string","description":"Evolia uses this locale when sending emails or sms to the member. Possible values are fr, en, es (french, english, spanish)","example":"en"},"skillCodes":{"type":"string","description":"Semicolon separated skill code","example":"S1;S2"},"skillNames":{"type":"string","description":"Semicolon skill name (skillCodes will take precedence over skillNames if set)","example":"SkillName1;SkillName2"},"skillWages":{"type":"string","description":"Hourly wage by skill. Use this format skillCode:amount. Elements must be separate by a semicolon","example":"S1:12.50;S2:15.25"},"initialExperienceHoursBySkill":{"type":"string","description":"Use this format skillCode:hourCount separate all entries with a semicolon","example":"S1:150;S2:250.5;S3:100"},"teamCodes":{"type":"string","description":"Semicolon separated team code","example":"T1;T2"},"teamNames":{"type":"string","description":"Semicolon separated team name (teamCodes will take precedence over teamNames if set)","example":"TeamName1;TeamName2"},"locationCodes":{"type":"string","description":"Semicolon separated location code","example":"L1;L2"},"locationNames":{"type":"string","description":"Semicolon separated location name (locationCodes will take precedence over locationNames if set)","example":"LocationName1;LocationName2"},"typeCode":{"type":"string","description":"Employment status code"},"pin":{"type":"string","description":"Pin is used to clock in punch console. The value is a number represented as string","example":"654321"},"gender":{"type":"string","description":"Member gender. P mean \"Prefer not to say\"","enum":["M","F","X","P"]},"birthdate":{"type":"string","description":"Date in SQL format yyyy-mm-dd","example":"2001-01-31"},"addressline1":{"type":"string","description":"Home address (line 1)"},"addressline2":{"type":"string","description":"Home address (line 2)"},"city":{"type":"string","description":"City of residence"},"state":{"type":"string","description":"State of residence"},"postalCode":{"type":"string","description":"Postal code / zip code of residence"},"country":{"type":"string","description":"Country of residence"},"primaryEmergencyContactName":{"type":"string","description":"Name of the person to contact in case of an emergency"},"primaryEmergencyContactPhone":{"type":"string","description":"Phone number of the person to contact in case of an emergency"},"primaryEmergencyContactNote":{"type":"string","description":"Note about the emergency contact"},"secondaryEmergencyContactName":{"type":"string","description":"Name of the second person to contact in case of an emergency"},"secondaryEmergencyContactPhone":{"type":"string","description":"Phone number of the second person to contact in case of an emergency"},"secondaryEmergencyContactNote":{"type":"string","description":"Note about the second emergency contact"},"status":{"type":"string","description":"Member status, active or inactive","enum":["active","inactive"],"default":"active"}},"required":["fName","lName"]},"MemberImportFileResponse":{"type":"object","properties":{"totalQueuedMembers":{"type":"number","description":"Total count of members put in the queue."},"updateMembersCount":{"type":"number","description":"Total count of member that will be updated."},"createMembersCount":{"type":"number","description":"Total count of member that will be created."},"errorsCount":{"type":"number","description":"Total error count contained in the file."},"errors":{"type":"object","description":"A list of error messages indicating the row number containing the error. Return null if no error."},"queueId":{"type":"string","description":"Queue Id"}},"required":["totalQueuedMembers","updateMembersCount","createMembersCount","errorsCount","errors","queueId"]},"GetPublicMembers":{"type":"object","properties":{"members":{"description":"The list of members matching the query","type":"array","items":{"$ref":"#/components/schemas/PublicMember"}},"locations":{"description":"The list of locations that are linked to the resulting members","type":"array","items":{"$ref":"#/components/schemas/PublicLocation"}},"skills":{"description":"The list of skills that are linked to the resulting members","type":"array","items":{"$ref":"#/components/schemas/PublicSkill"}},"teams":{"description":"The list of teams that are linked to the resulting members","type":"array","items":{"$ref":"#/components/schemas/PublicTeam"}}},"required":["members","locations","skills","teams"]},"PublicMembersRelationshipsUpdateRequest":{"type":"object","properties":{"members":{"description":"A list of members codes or uids to which structural elements will be linked to.See member.skillIds,  member.locationIds and member.teamIds. Note that this endpoint will override the values and not simply add the relationships to the members.","type":"array","items":{"type":"string"}},"teams":{"description":"If specified, members will be linked the those teams. The value can be either team codes or team uids.","type":"array","items":{"type":"string"}},"locations":{"description":"If specified, members will be linked the those locations. The value can be either location codes or location uids.","type":"array","items":{"type":"string"}},"skills":{"description":"If specified, members will be linked the those skills (positions). The value can be either skill codes or skill uids.","type":"array","items":{"type":"string"}}},"required":["members"]},"GetPagedDateAvailabilitiesRequest":{"type":"object","properties":{"sort":{"type":"object","description":"Sort field. Use 0 for ASC and -1 for DESC.","example":{"approval.status":-1}},"q":{"type":"string","description":"Search field, search trough fName, lName, email, phone or code member fields","example":"johndoe@"},"forMemberIds":{"description":"If specified, use this array of member UIDs to only get availabilities linked to those members","example":["memberId"],"type":"array","items":{"type":"string"}},"forTeamIds":{"description":"If specified, use this array of team UIDs to only get member availabilities linked to those teams","example":["teamId"],"type":"array","items":{"type":"string"}},"forLocationIds":{"description":"If specified, use this array of location UIDs to only get member availabilities linked to those locations","example":["locationId"],"type":"array","items":{"type":"string"}},"forSkillIds":{"description":"If specified, use this array of skill UIDs to only get member availabilities linked to those skills","example":["skillId"],"type":"array","items":{"type":"string"}},"skip":{"type":"number","description":"Skips over the specified number of items.","default":0,"example":0},"take":{"type":"number","description":"Limits the number of items.","default":1000,"example":25},"from":{"type":"number","description":"Timestamp, Get all availabilities from the specified date.","example":1787740063059},"to":{"type":"number","description":"Timestamp, Get all availabilities to the specified date.","example":1788172063060},"approvalStatus":{"type":"string","description":"Filter by availability approval status.","enum":["needs_approval","approved","refused"],"example":"approved"}}},"Approval":{"type":"object","properties":{"status":{"type":"string","description":"Approval status. NEEDS_APPROVAL, APPROVED or REFUSED"},"approverId":{"type":"string","description":"Member uid who approved the availability."},"refuserId":{"type":"string","description":"Member uid who refused the availability."},"approverCode":{"type":"string","description":"Member code who approved the availability."},"createdAt":{"type":"number","description":"Creation date of the approval."},"updatedAt":{"type":"number","description":"Updated date of the approval."},"updatedByMemberId":{"type":"string","description":"Member uid who updated the approval."},"updatedByMemberCode":{"type":"string","description":"Member code who updated the approval."},"reason":{"type":"string","description":"Reason for unapproved availability."}},"required":["status","approverId","refuserId","approverCode","createdAt","updatedAt","updatedByMemberId","updatedByMemberCode","reason"]},"PublicDateAvailability":{"type":"object","properties":{"uid":{"type":"string","description":"Availability UID."},"fromDate":{"type":"number","description":"Start date of this availability."},"toDate":{"type":"number","description":"End date of this availability."},"timeZone":{"type":"string","description":"Timezone of this availability."},"memberId":{"type":"string","description":"The member UID linked to this availability."},"memberCode":{"type":"object","description":"The member code linked to this availability."},"groupId":{"type":"string","description":"The group UID linked to this availability."},"available":{"type":"boolean","description":"Member availability status."},"note":{"type":"string","description":"Note linked to this availability."},"createdAt":{"type":"number","description":"Availability creation date."},"createdByMemberId":{"type":"string","description":"Member uid who created the availability"},"createdByMemberCode":{"type":"object","description":"Member code who created the availability"},"approval":{"description":"Approval object for this availability.","allOf":[{"$ref":"#/components/schemas/Approval"}]}},"required":["uid","fromDate","toDate","timeZone","memberId","memberCode","groupId","available","note","createdAt","createdByMemberId","createdByMemberCode","approval"]},"CreatePublicAvailabilityDate":{"type":"object","properties":{"date":{"type":"string","description":"Date in SQL format yyyy-mm-dd.","example":"2022-10-31"},"fromInM":{"type":"number","description":"Time from in minutes from 0 to 1440 (0 = 00h00, 1440 = 24h00).","example":560,"default":0},"toInM":{"type":"number","description":"Time to in minutes from 0 to 1440 (0 = 00h00, 1440 = 24h00).","example":1020,"default":1440},"available":{"type":"boolean","description":"Available or not for this date. If not set, the global available value will be use."},"approval":{"type":"string","description":"Availability approval status. If not set, the global approval value will be use.","enum":["needs_approval","approved","refused"]}},"required":["date"]},"CreatePublicDateAvailabilitiesRequest":{"type":"object","properties":{"dates":{"description":"Array of PublicAvailabilityDate.","type":"array","items":{"$ref":"#/components/schemas/CreatePublicAvailabilityDate"}},"timeZone":{"type":"string","description":"Time zone wanted. If not set the group time zone will be taken.","example":"America/Toronto"},"approval":{"type":"string","description":"Availability approval status. Acts as a global value for all dates. This value will be use if the approval property is not set in a date object.","enum":["needs_approval","approved","refused"],"default":"needs_approval"},"available":{"type":"boolean","description":"Available or not. Acts as a global value for all dates. This value will be use if the available property is not set in a date object."},"note":{"type":"string","description":"Note for the manager.","example":"Note for the manager"}},"required":["dates","available"]},"PublicAvailabilityDate":{"type":"object","properties":{"date":{"type":"string","description":"Date in SQL format yyyy-mm-dd.","example":"2022-10-31"},"fromInM":{"type":"number","description":"Time from in minutes from 0 to 1440 (0 = 00h00, 1440 = 24h00).","example":560,"default":0},"toInM":{"type":"number","description":"Time to in minutes from 0 to 1440 (0 = 00h00, 1440 = 24h00).","example":1020,"default":1440}},"required":["date"]},"UpdatePublicDateAvailabilityRequest":{"type":"object","properties":{"available":{"type":"boolean","example":true,"description":"Available or not for this date."},"date":{"description":"Array of PublicAvailabilityDate.","allOf":[{"$ref":"#/components/schemas/PublicAvailabilityDate"}]},"note":{"type":"string","description":"Note for the manager.","example":"Note for the manager"},"timeZone":{"type":"string","description":"Time zone wanted. If not set the group time zone will be taken.","example":"America/Toronto"}}},"GetDayAvailabilitiesRequest":{"type":"object","properties":{"sort":{"type":"object","description":"Sort field. Use 0 for ASC and -1 for DESC.","example":{"approval.status":-1}},"q":{"type":"string","description":"Search field, search trough fName, lName, email, phone or code member fields","example":"johndoe@"},"forMemberIds":{"description":"If specified, use this array of member UIDs to only get availabilities linked to those members","example":["memberId"],"type":"array","items":{"type":"string"}},"forTeamIds":{"description":"If specified, use this array of team UIDs to only get member availabilities linked to those teams","example":["teamId"],"type":"array","items":{"type":"string"}},"forLocationIds":{"description":"If specified, use this array of location UIDs to only get member availabilities linked to those locations","example":["locationId"],"type":"array","items":{"type":"string"}},"forSkillIds":{"description":"If specified, use this array of skill UIDs to only get member availabilities linked to those skills","example":["skillId"],"type":"array","items":{"type":"string"}},"skip":{"type":"number","description":"Skips over the specified number of items.","default":0,"example":0},"take":{"type":"number","description":"Limits the number of items.","default":1000,"example":25},"from":{"type":"number","description":"Timestamp, Get all availabilities from the specified date.","example":1787740063053},"to":{"type":"number","description":"Timestamp, Get all availabilities to the specified date.","example":1788172063054},"approvalStatus":{"type":"string","description":"Filter by availability approval status.","enum":["needs_approval","approved","refused"],"example":"approved"},"includeRelationships":{"type":"boolean"}}},"DayAvailabilityDetail":{"type":"object","properties":{}},"SimplifiedTeam":{"type":"object","properties":{"_id":{"type":"string","description":"Team UID."},"names":{"type":"object","description":"the name of the team in various locales. Accepted locales are en, fr, es","additionalProperties":{"type":"string"}},"code":{"type":"string","description":"Team code."}},"required":["_id","names","code"]},"SimplifiedSkill":{"type":"object","properties":{"_id":{"type":"string","description":"Skill UID."},"names":{"type":"object","description":"the name of the skill in various locales. Accepted locales are en, fr, es","additionalProperties":{"type":"string"}},"code":{"type":"string","description":"Skill code."}},"required":["_id","names","code"]},"LocData":{"type":"object","properties":{"abbrev":{"type":"string","description":"Location abbreviation."},"code":{"type":"string","description":"Location code."},"name":{"type":"string","description":"Location name."},"address":{"type":"string","description":"Location address."},"geo":{"type":"object","description":"Geolocation"}},"required":["abbrev","code","name","address","geo"]},"SimplifiedLocation":{"type":"object","properties":{"_id":{"type":"string","description":"Location UID."},"locData":{"description":"Location information.","allOf":[{"$ref":"#/components/schemas/LocData"}]}},"required":["_id","locData"]},"PublicDayAvailability":{"type":"object","properties":{"uid":{"type":"string","description":"Availability UID."},"allowReplacementsOutsideAvailabilities":{"type":"boolean","description":"Allow replacements outside availability."},"approval":{"description":"Approval object for this availability.","allOf":[{"$ref":"#/components/schemas/Approval"}]},"createdAt":{"type":"number","description":"Availability creation date."},"createdByMemberId":{"type":"string","description":"Member uid who created the availability"},"createdByMemberCode":{"type":"string","description":"Member code who created the availability"},"fromDate":{"type":"number","description":"Effective date from. Format: unix timestamp in milliseconds."},"groupId":{"type":"string","description":"The group UID linked to this availability."},"memberId":{"type":"string","description":"The member UID linked to this availability."},"memberCode":{"type":"string","description":"The member code linked to this availability."},"note":{"type":"string","description":"Note linked to this availability."},"preferredLocationIds":{"description":"Array of member's preferred location ids.","type":"array","items":{"type":"string"}},"preferredLocationCodes":{"description":"Array of member's preferred location codes.","type":"array","items":{"type":"string"}},"preferredMaxHoursPerPayPeriod":{"type":"number","description":"Maximum number of hours per pay period. Max: 168."},"preferredMaxHoursPerWeek":{"type":"number","description":"Maximum number of hours per week. Max: 168."},"preferredMaxRestingHours":{"type":"number","description":"Maximum hours between shifts."},"preferredMaxShiftsPerDay":{"type":"number","description":"Maximum number of shifts per day."},"preferredMaxShiftsPerWeek":{"type":"number","description":"Maximum number of shifts per week."},"preferredMaxWeekDays":{"type":"number","description":"Maximum number of weekdays. Max: 5."},"preferredMaxWeekendDays":{"type":"number","description":"Maximum number of weekend days. Max: 2."},"preferredMinHoursPerWeek":{"type":"number","description":"Minimum number of hours per week. Max: 168."},"preferredSkillIds":{"description":"Array of member's preferred skill ids.","type":"array","items":{"type":"string"}},"preferredSkillCodes":{"description":"Array of member's preferred skill codes.","type":"array","items":{"type":"string"}},"preferredTeamIds":{"description":"Array of member's preferred team ids.","type":"array","items":{"type":"string"}},"preferredTeamCodes":{"description":"Array of member's preferred team codes.","type":"array","items":{"type":"string"}},"toDate":{"type":"number","description":"Effective date to. Format: unix timestamp in milliseconds."},"days":{"description":"Array of DayAvailabilityDetail","type":"array","items":{"$ref":"#/components/schemas/DayAvailabilityDetail"}},"preferredTeams":{"description":"Array of preferredTeams if includeRelationships is true.","type":"array","items":{"$ref":"#/components/schemas/SimplifiedTeam"}},"preferredSkills":{"description":"Array of preferredSkills if includeRelationships is true.","type":"array","items":{"$ref":"#/components/schemas/SimplifiedSkill"}},"preferredLocations":{"description":"Array of preferredLocations if includeRelationships is true.","type":"array","items":{"$ref":"#/components/schemas/SimplifiedLocation"}}},"required":["uid","approval","createdAt","createdByMemberId","createdByMemberCode","groupId","memberId","memberCode","note"]},"DayAvailabilityTimeFrame":{"type":"object","properties":{"startInMin":{"type":"number","description":"Time from in minutes from 0 to 1400 (0 = 00h00, 1400 = 24h00)."},"endInMin":{"type":"number","description":"Time to in minutes from 0 to 1400 (0 = 00h00, 1400 = 24h00)."},"preferred":{"type":"boolean","description":"Is preferred day or not for this day."}},"required":["startInMin","endInMin"]},"DayAvailabilityDetailDto":{"type":"object","properties":{"isOn":{"type":"boolean","description":"Is available for the day or not."},"day":{"type":"number","description":"Week day. Javascript day number (0 = sunday, 1 = monday ... 6: saturday)"},"timeFrames":{"description":"Array of time frames for the day.","type":"array","items":{"$ref":"#/components/schemas/DayAvailabilityTimeFrame"}}},"required":["isOn","day"]},"WeekAvailabilityDetailDto":{"type":"object","properties":{"days":{"description":"Array of day availability. Day 0 to 6 required","type":"array","items":{"$ref":"#/components/schemas/DayAvailabilityDetailDto"}}},"required":["days"]},"CreateDayAvailabilityRequest":{"type":"object","properties":{"name":{"type":"string","description":"Name","example":"Back to school availability"},"fromDate":{"type":"number","description":"Effective date from. Format: unix timestamp in milliseconds.","example":1788172063045},"toDate":{"type":"number","description":"Effective date to. Format: unix timestamp in milliseconds.","example":1789381663046},"note":{"type":"string","description":"Note for the manager.","example":"Note for the manager."},"preferredMinHoursPerWeek":{"type":"number","description":"Minimum number of hours per week. Max: 168.","example":30},"preferredMaxHoursPerWeek":{"type":"number","description":"Maximum number of hours per week. Max: 168.","example":45},"preferredMaxHoursPerPayPeriod":{"type":"number","description":"Maximum number of hours per pay period. Max: 168.","example":90},"preferredMaxShiftsPerDay":{"type":"number","description":"Maximum number of shifts per day.","example":3},"preferredMaxShiftsPerWeek":{"type":"number","description":"Maximum number of shifts per week.","example":5},"preferredMaxWeekDays":{"type":"number","description":"Maximum number of weekdays. Max: 5.","example":5},"preferredMaxWeekendDays":{"type":"number","description":"Maximum number of weekend days. Max: 2.","example":2},"preferredMaxRestingHours":{"type":"number","description":"Maximum hours between shifts.","example":2},"preferredTeamIds":{"description":"Array of member's preferred team ids.","example":["teamId"],"type":"array","items":{"type":"string"}},"preferredLocationIds":{"description":"Array of member's preferred location ids.","example":["locationId"],"type":"array","items":{"type":"string"}},"preferredSkillIds":{"description":"Array of member's preferred skill ids.","example":["skillId"],"type":"array","items":{"type":"string"}},"allowReplacementsOutsideAvailabilities":{"type":"boolean","description":"Allow replacements outside availability."},"approverId":{"type":"string","description":""},"days":{"description":"Array of day availability. Day 0 to 6 required","type":"array","items":{"$ref":"#/components/schemas/DayAvailabilityDetailDto"}},"weeks":{"type":"array","items":{"$ref":"#/components/schemas/WeekAvailabilityDetailDto"}}}},"UpdatePublicDayAvailabilityRequest":{"type":"object","properties":{"fromDate":{"type":"number","description":"Effective date from. Format: unix timestamp in milliseconds.","example":1788172066497},"toDate":{"type":"number","description":"Effective date to. Format: unix timestamp in milliseconds.","example":1789381666497},"note":{"type":"string","description":"Note linked to this availability.","example":"Note for the manager"},"preferredMinHoursPerWeek":{"type":"number","description":"Minimum number of hours per week. Max: 168.","example":30},"preferredMaxHoursPerWeek":{"type":"number","description":"Maximum number of hours per week. Max: 168.","example":45},"preferredMaxHoursPerPayPeriod":{"type":"number","description":"Maximum number of hours per pay period. Max: 168.","example":90},"preferredMaxShiftsPerDay":{"type":"number","description":"Maximum number of shifts per day.","example":3},"preferredMaxShiftsPerWeek":{"type":"number","description":"Maximum number of shifts per week.","example":3},"preferredMaxWeekDays":{"type":"number","description":"Maximum number of weekdays. Max: 5.","example":5},"preferredMaxWeekendDays":{"type":"number","description":"Maximum number of weekend days. Max: 2.","example":2},"preferredMaxRestingHours":{"type":"number","description":"Maximum hours between shifts. Max: 168","example":2},"preferredTeamIds":{"description":"Array of member's preferred team ids.","example":["teamId"],"type":"array","items":{"type":"string"}},"preferredLocationIds":{"description":"Array of member's preferred location ids.","example":["locationId"],"type":"array","items":{"type":"string"}},"preferredSkillIds":{"description":"Array of member's preferred skill ids.","example":["skillId"],"type":"array","items":{"type":"string"}},"allowReplacementsOutsideAvailabilities":{"type":"boolean","description":"Allow replacements outside availability."},"approverId":{"type":"string","description":""},"days":{"type":"array","items":{"$ref":"#/components/schemas/DayAvailabilityDetailDto"}}},"required":["note"]},"PublicLeave":{"type":"object","properties":{"uid":{"type":"string","description":"unique leave id"},"status":{"type":"string","enum":["PENDING","DECLINED","APPROVED","PAID"],"description":"The approval status of the leave"},"bankId":{"type":"string","description":"The UID of the leave bank linked to this leave"},"bankName":{"type":"string","description":"The name of the leave bank linked to this leave"},"bankCode":{"type":"string","description":"The code of the leave bank linked to this leave"},"memberId":{"type":"string","description":"The member (employee) UID linked to this leave"},"memberCode":{"type":"string","description":"The member (employee) code linked to this leave"},"memberHourlyWage":{"type":"number","description":"Contains the member hourly wage specific to the skill of the leave or the member base hourlyWage."},"createdAt":{"type":"string","description":"Leave creation date and time. In ISO-8601 format"},"createdByMemberId":{"type":"string","description":"The member (an employee or manager) UID who created this leave"},"createdByMemberCode":{"type":"string","description":"The member (an employee or manager) code who created this leave"},"from":{"type":"string","description":"The starting date of the leave. In ISO-8601 format.","example":"2021-01-01T00:00:00.000-05:00"},"to":{"type":"string","description":"The ending date of the leave. In ISO-8601 format.","example":"2021-01-02T00:00:00.000-05:00"},"fromAllDay":{"type":"boolean","description":"When true the leave first day has no specific time range"},"toAllDay":{"type":"boolean","description":"When true the leave last day has no specific time range"},"hoursToWithdraw":{"type":"number","description":"The total number of hours to withdraw from the employee bank specified by bankName, bankCode and bankId"},"reason":{"type":"string","description":"The reason of the leave"},"declineReason":{"type":"string","description":"The reason the manager declined the leave"},"timeZone":{"type":"string","description":"The leave time zone.","example":"America/New_York"},"assignedManagerId":{"type":"string","description":"The member (a manager) UID who must approve this leave"},"assignedManagerCode":{"type":"string","description":"The member (a manager) code who must approve this leave"},"banked":{"type":"boolean","description":"When true the value is banked"},"bankedAt":{"type":"string","description":"The date at which the hours have been banked. In ISO-8601 format.","example":"2021-01-02T00:00:00.000-05:00"},"teamId":{"type":"string","description":"The team id linked to this leave"},"teamCode":{"type":"string","description":"The team code linked to this leave"},"skillId":{"type":"string","description":"The skill (position) id linked to this leave"},"skillCode":{"type":"string","description":"The skill (position) code linked to this leave"},"locationId":{"type":"string","description":"The location id linked to this leave"},"locationCode":{"type":"string","description":"The location code linked to this leave"}},"required":["uid","status","bankId","bankName","bankCode","memberId","memberCode","createdAt","createdByMemberId","createdByMemberCode","from","to","fromAllDay","toAllDay","hoursToWithdraw","reason","declineReason","timeZone","assignedManagerId","assignedManagerCode","banked","bankedAt"]},"CreatePublicLeaveRequest":{"type":"object","properties":{"memberId":{"type":"string","description":"The member (employee) UID to associate to the leave can be empty if the memberCode is set"},"memberCode":{"type":"string","description":"The member (employee) code to associate to the leave can be empty if the memberUId is set"},"bankName":{"type":"string","description":"The name of the leave bank associated to the leave can be empty if bankCode or bankId is set"},"bankCode":{"type":"string","description":"The code of the leave bank associated to the leave can be empty if bankName or bankId is set"},"bankId":{"type":"string","description":"The UID of the leave bank associated to the leave can be empty if bankCode or bankName is set.If bankId and bankCode and/or bankName are set, they must all refer to the same bank or else a conflict exception is thrown"},"from":{"type":"string","description":"The starting date of the leave. In ISO-8601 format.","example":"2021-01-01T00:00:00.000-05:00"},"to":{"type":"string","description":"The ending date of the leave. In ISO-8601 format.","example":"2021-01-02T00:00:00.000-05:00"},"reason":{"type":"string","description":"The reason of the leave"},"timeZone":{"type":"string","description":"Leave request time zone. If the specify the one from the company setting will be used","example":"America/New_York"},"fromAllDay":{"type":"boolean","description":"When true the leave first day has no specific time range"},"toAllDay":{"type":"boolean","description":"When true the leave last day has no specific time range"},"assignedManagerId":{"type":"string","description":"The member (a manager) UID who must approve this leave can be empty if the AssignedManagerId is set"},"assignedManagerCode":{"type":"string","description":"The member (a manager) UID who must approve this leave can be empty if the AssignedManagerCode is set"},"hoursToWithdraw":{"type":"number","description":"The total number of hours to withdraw from the employee bank specified by bankName and bankCode"},"teamId":{"type":"string","description":"teamId used to link with integration can be empty. teamId or teamCode can be set to determine team"},"teamCode":{"type":"string","description":"teamCode used to link with integration can be empty. teamId or teamCode can be set to determine team"},"skillId":{"type":"string","description":"skillId used to link with integration can be empty skillId. or skillCode can be set to determine skill"},"skillCode":{"type":"string","description":"skillCode used to link with integration can be empty. skillId or skillCode can be set to determine skill"},"locationId":{"type":"string","description":"locationId used to link with integration can be empty. locationId or locationCode can be set to determine location"},"locationCode":{"type":"string","description":"locationCode used to link with integration can be empty. locationId or locationCode can be set to determine location"},"managerNote":{"type":"string","description":"this note is visible to other managers"},"approbation":{"type":"string","description":"Leave request approbation state","enum":["PENDING","DECLINED","APPROVED","PAID"],"default":"PENDING"}},"required":["from","to","fromAllDay","toAllDay","hoursToWithdraw","managerNote"]},"UpdatePublicLeaveRequest":{"type":"object","properties":{"memberId":{"type":"string","description":"The member (employee) UID to associate to the leave can be empty if the memberCode is set"},"memberCode":{"type":"string","description":"The member (employee) code to associate to the leave can be empty if the memberUId is set"},"bankName":{"type":"string","description":"The name of the leave bank associated to the leave. Can be empty if bankCode or bankId is set"},"bankCode":{"type":"string","description":"The code of the leave bank associated to the leave. Can be empty if bankName or bankId is set"},"bankId":{"type":"string","description":"The UID of the leave bank associated to the leave. Can be empty if bankCode or bankName is set.If bankId and bankCode and/or bankName are set, they must all refer to the same bank or else a conflict exception is thrown"},"fromDate":{"type":"string","description":"The starting date of the leave. In ISO-8601 format.","example":"2021-01-01T00:00:00.000-05:00"},"toDate":{"type":"string","description":"The ending date of the leave. In ISO-8601 format.","example":"2021-01-02T00:00:00.000-05:00"},"reason":{"type":"string","description":"The reason of the leave"},"timeZone":{"type":"string"},"fromAllDay":{"type":"boolean","description":"When true the leave first day has no specific time range"},"toAllDay":{"type":"boolean","description":"When true the leave last day has no specific time range"},"assignedManagerId":{"type":"string","description":"The member (a manager) UID who must approve this leave can be empty if the AssignedManagerId is set"},"assignedManagerCode":{"type":"string","description":"The member (a manager) UID who must approve this leave can be empty if the AssignedManagerCode is set"},"hoursToWithdraw":{"type":"number","description":"The total number of hours to withdraw from the employee bank specified by bankName and bankCode"},"teamId":{"type":"string","description":"TeamId used to link with integration can be empty. teamId or teamCode can be set to determine team"},"teamCode":{"type":"string","description":"TeamCode used to link with integration can be empty. teamId or teamCode can be set to determine team"},"skillId":{"type":"string","description":"SkillId used to link with integration can be empty skillId. or skillCode can be set to determine skill"},"skillCode":{"type":"string","description":"SkillCode used to link with integration can be empty. skillId or skillCode can be set to determine skill"},"locationId":{"type":"string","description":"LocationId used to link with integration can be empty. locationId or locationCode can be set to determine location"},"locationCode":{"type":"string","description":"LocationCode used to link with integration can be empty. locationId or locationCode can be set to determine location"},"managerNote":{"type":"string","description":"this note will be only available for other manager"}},"required":["hoursToWithdraw","managerNote"]},"PublicLeaveBank":{"type":"object","properties":{"uid":{"type":"string","description":"Unique leave bank id."},"names":{"type":"object","description":"The name of the bank in various locales. Accepted locales are en, fr, es.","example":{"en":"Holidays","fr":"Vacances"},"additionalProperties":{"type":"string"}},"code":{"type":"string","description":"A human readable ID that can be use has an ID for other API calls. The code is also used to map a leave bank to an external system structural element."},"paid":{"type":"boolean","description":"if true, leaves for this bank is paid to the employee."},"unit":{"type":"string","description":"The bank type of unit","enum":["HOURS","DAYS","AMOUNT"]},"teamIds":{"type":"array","example":"[teamId1, teamId2]","description":"An array of team UID indicating on which team the bank is applied to.","items":{"type":"string"}},"teamCodes":{"type":"array","example":"[teamCode1, teamCode2]","description":"An array of team code indicating on which team the bank is applied to.","items":{"type":"string"}},"skillIds":{"type":"array","example":"[skillId1, skillId2]","description":"An array of skill UID indicating on which skill (position) the bank is applied to.","items":{"type":"string"}},"skillCodes":{"type":"array","example":"[skillCode1, skillCode2]","description":"An array of skill code indicating on which skill (position) the bank is applied to.","items":{"type":"string"}},"locationIds":{"type":"array","example":"[locationId1, locationId2]","description":"An array of location UID indicating on which location the bank is applied to.","items":{"type":"string"}},"locationCodes":{"type":"array","example":"[locationCode1, locationCode2]","description":"An array of location code indicating on which location  the bank is applied to.","items":{"type":"string"}},"minimumDelayInDays":{"type":"number","description":"The minimum number of days required between a leave request submission and the leave's start date."},"blockNegativeBalanceCreation":{"type":"boolean"},"blockNegativeBalanceApprobation":{"type":"boolean","description":"When true, leave requests for this bank cannot be approved if the balance is negative."},"amountRequired":{"type":"boolean","description":"If true, leave requests submitted for this bank must specify an amount greater than zero."},"reasonRequired":{"type":"boolean","description":"If true, leave requests submitted for this bank must specify a reason."},"organizationalStructureRequired":{"type":"boolean","description":"If true, leave requests submitted for this bank must be associated to organizational structure elements (team, location, skill)."},"excludeFromOvertime":{"type":"boolean","description":"If true, leave hours for this bank won't count towards overtime calculations."},"excludeFromHolidays":{"type":"boolean","description":"If true, leave hours for this bank won't count towards holiday calculations."},"hideBank":{"type":"boolean","description":"If true, the bank balance is hidden from the employees' profile."},"workdayDurationInM":{"type":"number","description":"Only relevant when unit is PublicLeaveBankUnit.DAYS.Indicates the typical duration of a workday in minutes. For 8 hours the value is be 480"},"exportToPayroll":{"type":"boolean","description":"If true, leave requests for this bank will be included in the timesheet report and exported to the payroll system."},"payrollExportHourlyWage":{"type":"boolean","description":"This property is only relevant if \"exportToPayroll\" is true.\nIf true, exported leave requests for this bank will include hourly wage"},"payrollEarningCode":{"type":"string","description":"This property is only relevant if \"exportToPayroll\" is true.\nIf specified, exported leave requests for this bank will have this earning code. If not specified, the code property is used."},"payrollBankUnit":{"type":"string","description":"This property is only relevant if \"exportToPayroll\" is true.\nThe unit type of the leave bank balance in the payroll system. A conversion will occur if different from unit","enum":["HOURS","DAYS","AMOUNT"]},"importBalances":{"type":"boolean","description":"If true, this bank's leave balances will be synchronized with data from the HR or payroll system."}},"required":["uid","names","paid","unit","exportToPayroll","importBalances"]},"CreatePublicSkillRequest":{"type":"object","properties":{"names":{"type":"object","description":"The name of the skill (position) in various locales. Accepted locales are en, fr, es","example":{"en":"cook","fr":"cuisinier"},"additionalProperties":{"type":"string"}},"code":{"type":"string","description":"A human readable ID that can be use has an ID for other API calls. The code is also used to map a skill to an external system structural element."},"abbrev":{"type":"string","description":"an abbreviation text, used in various place in the application where space is tight. Like on shifts of the schedule view.","example":"HQ"},"colorIndex":{"type":"number","description":"An index from 0 to 19 matching the skill color palette. Check the create position screen in Evolia settings.","example":16,"default":"a random color within the color palette"},"enableClocking":{"type":"boolean","description":"When true, shifts assigned to this skill are clockable by employees.","default":"false"},"dontAutoPropagate":{"type":"boolean","description":"Relevant only when enableClocking is false. When true, shift planned time is propagated as worked time in the timesheet","default":"false"},"externalId":{"type":"string","description":"A unique UID or a human readable ID that can be use has an ID for other API calls. The externalId can also be used to map a position to an external system structural element."},"custom":{"type":"object","description":"To set custom fields to a skill. You can pass a json objet where the values are string","example":{"field1":"value1","field2":"value2"},"additionalProperties":{"oneOf":[{"type":"string"}]}}},"required":["names"]},"UpdatePublicSkillRequest":{"type":"object","properties":{"names":{"type":"object","description":"The name of the skill (position) in various locales. Accepted locales are en, fr, es","example":{"en":"cook","fr":"cuisinier"},"additionalProperties":{"type":"string"}},"code":{"type":"string","description":"A human readable ID that can be use has an ID for other API calls. The code is also used to map a skill to an external system structural element."},"abbrev":{"type":"string","description":"an abbreviation text, used in various place in the application where space is tight. Like on shifts of the schedule view.","example":"HQ"},"externalId":{"type":"string","description":"A unique UID or a human readable ID that can be use has an ID for other API calls. The externalId can also be used to map a position to an external system structural element."},"colorIndex":{"type":"number","description":"An index from 0 to 19 matching the skill color palette. Check the create position screen in Evolia settings.","example":16},"enableClocking":{"type":"boolean","description":"When true, shifts linked to this skill (position) can be clocked in and out by employees.","default":"false"},"dontAutoPropagate":{"type":"boolean","description":"Only relevant for skills with enableClocking set to false. Set this to true to prevent automatic timesheet filling using scheduled hours.","default":"false"},"custom":{"type":"object","description":"To set custom fields to a skill. You can pass a json objet where the values are string. Will merge with previous values.","example":{"field1":"value1","field2":"value2"},"additionalProperties":{"oneOf":[{"type":"string"}]}}}},"ExportTimesheetRequest":{"type":"object","properties":{"fromDate":{"type":"number","description":"A unix timestamp. All resulting timesheet entries will have an end date after this date.","example":"1641013200000"},"toDate":{"type":"number","description":"A unix timestamp. All resulting timesheet entries will have a start date before this date.","example":"1641618000000"},"skillNames":{"description":"If specified, use this array of skill names to only get timesheet entries linked to those skills. A skill is a position the Evolia application but the API uses the skill term","example":["Cook","Manager"],"type":"array","items":{"type":"string"}},"teamNames":{"description":"If specified, use this array of team names to only get timesheet entries linked to those teams.","example":["Base Workers"],"type":"array","items":{"type":"string"}},"locationNames":{"description":"If specified, use this array of location names to only get timesheet entries linked to those locations.","example":["Main Office"],"type":"array","items":{"type":"string"}},"forMemberIds":{"description":"If specified, use this array of member UIDs or employee ids to only get timesheets linked to those members","example":[],"type":"array","items":{"type":"string"}},"lockedOnly":{"type":"boolean","description":"If true only locked timesheet entries are returned","default":false},"validatedOnly":{"type":"boolean","description":"If true only validated timesheet entries are returned","default":false},"withCancelled":{"type":"boolean","description":"If true, cancelled timesheet entries will also be returned. Cancelled entries have \"isCancelled\" set to true","default":false}},"required":["fromDate","toDate"]},"PublicTimeEntry":{"type":"object","properties":{"uid":{"type":"string","description":"Unique time entry id. Same as the shift (event)"},"externalId":{"type":"string","description":"Time entry externalId. Same as the shift (event).This externalId is provided when using the create or update event API."},"startsAt":{"type":"string","description":"Event Start date. In ISO-8601 format."},"endsAt":{"type":"string","description":"Event End date. In ISO-8601 format."},"firstName":{"type":"string","description":"When assigned, contains the member (employee) first name"},"lastName":{"type":"string","description":"When assigned, contains the member (employee) first name"},"memberId":{"type":"string","description":"When assigned, contains the member (employee) UID"},"memberCode":{"type":"string","description":"When assigned, contains the member (employee) code"},"memberEmail":{"type":"string","description":"When assigned, contains the member (employee) email"},"hourlyWage":{"type":"number","description":"When assigned, contains the member hourly wage specific to the position of the entry"},"positionId":{"type":"string","description":"The entry position UID (skill)"},"position":{"type":"string","description":"The entry position name (skill)"},"positionCode":{"type":"string","description":"The entry position code (skill)"},"locationId":{"type":"string","description":"The entry location UID"},"location":{"type":"string","description":"The entry location name"},"locationCode":{"type":"string","description":"The entry location code"},"subLocation":{"type":"string","description":"The entry sub-location code"},"subLocationId":{"type":"string","description":"The entry sub-location UID"},"subLocationCode":{"type":"string","description":"The entry sub-location code"},"teamId":{"type":"string","description":"The entry team UID"},"team":{"type":"string","description":"The entry team name"},"teamCode":{"type":"string","description":"The entry team code"},"isCancelled":{"type":"boolean","description":"If true this entry is cancelled"},"isDraft":{"type":"boolean","description":"If true this event is draft"},"note":{"type":"string","description":"The entry public note"},"employeeNote":{"type":"string","description":"The entry employee note"},"internalNote":{"type":"string","description":"The entry internal note. Only to visible to managers, supervisors and admin."},"clockedIn":{"type":"string","description":"Adjusted clock in time from company rules. This value is use to calculate the total worked hours. In ISO-8601 format."},"clockedInOriginal":{"type":"string","description":"The actual time when employee clocked in. In ISO-8601 format."},"clockedInNote":{"type":"string","description":"The note an employee may has left when clocking in."},"clockedInZone":{"type":"boolean","description":"If true, the employee has clocked in within the designated area of the work location."},"clockedInStatus":{"type":"string","description":"A text designating the status of the \"in\" clocking."},"clockedOut":{"type":"string","description":"Adjusted clock out time from company rules. This value is use to calculate the total worked hours. In ISO-8601 format."},"clockedOutOriginal":{"type":"string","description":"The actual time when employee clocked out. In ISO-8601 format."},"clockedOutNote":{"type":"string","description":"The note an employee may has left when clocking out."},"clockedOutZone":{"type":"boolean","description":"If true, the employee has clocked out within the designated area of the work location."},"clockedOutStatus":{"type":"string","description":"A text designating the status of the \"out\" clocking."},"clockingMgrNote":{"type":"string","description":"A note left by managers on the clocking of time entry.Not to be confused the event note."},"unpaidBreaks":{"type":"number","description":"Total unpaid breaks duration in hours and decimal. Ex: a 15 minutes is 0.25"},"paidBreaks":{"type":"number","description":"Total paid breaks duration in hours and decimal. Ex: a 15 minutes is 0.25"},"paidAmount":{"type":"number","description":"Paid amount"},"workingHours":{"type":"number","description":"Worked hours with decimal. Ex 8h30 is 8.5"},"plannedHours":{"type":"number","description":"Planned hours with decimal. Ex 8h30 is 8.5. Based on start time and end time, minus unpaid breaks, plus paidPreparationTimeInM"},"paidPreparationTimeInM":{"type":"number","description":"The paid preparation time in minutes."},"lockedAt":{"type":"string","description":"Clocking update date and time. In ISO-8601 format."},"validatedAt":{"type":"string","description":"Clocking validation date and time. In ISO-8601 format."}},"required":["uid","startsAt","endsAt","positionId","position","positionCode","teamId","team","teamCode","clockedInZone","clockedInStatus","clockedOutZone","clockedOutStatus","unpaidBreaks","paidBreaks","workingHours","plannedHours","paidPreparationTimeInM"]},"CreatePublicTeamRequest":{"type":"object","properties":{"names":{"type":"object","description":"the name of the team in various locales. Accepted locales are en, fr, es","example":{"en":"customer service","fr":"service client"},"additionalProperties":{"type":"string"}},"division":{"type":"string","description":"If specified, the team will be linked to this division. The value can be either a division code or a division uid."},"locations":{"description":"If specified, the team will be linked the locations. The value can be either location codes or location uids.","type":"array","items":{"type":"string"}},"skills":{"description":"If specified, the team will be linked the skills (positions). The value can be either skill codes or skill uids.","type":"array","items":{"type":"string"}},"timeZone":{"type":"string","description":"If specified, the team time zone. The possible values can be seen here https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. If not specified to company time zone will be used. The team time zone is used to preset the time zone of shifts created on the this team.","example":"America/New_York"},"code":{"type":"string","description":"A human readable ID that can be use has an ID for other API calls. The code is also used to map a team to an external system structural element."},"externalId":{"type":"string","description":"A unique UID or a human readable ID that can be use has an ID for other API calls. The externalId can also be used to map a team to an external system structural element."},"custom":{"type":"object","description":"To set custom fields to a team. You can pass a json objet where the values are string","example":{"field1":"value1","field2":"value2"},"additionalProperties":{"oneOf":[{"type":"string"}]}}},"required":["names"]},"UpdatePublicTeamRequest":{"type":"object","properties":{"names":{"type":"object","description":"the name of the team in various locales. Accepted locales are en, fr, es","example":{"en":"customer service","fr":"service client"},"additionalProperties":{"type":"string"}},"division":{"type":"string","description":"If specified, the team will be linked to this division. The value can be either a division code or a division uid."},"locations":{"description":"If specified, the team will be linked the locations. The value can be either location codes or location uids.","type":"array","items":{"type":"string"}},"skills":{"description":"If specified, the team will be linked the skills (positions). The value can be either skill codes or skill uids.","type":"array","items":{"type":"string"}},"timeZone":{"type":"string","description":"If specified, the team time zone. The possible values can be seen here https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. If not specified to company time zone will be used. The team time zone is used to preset the time zone of shifts created on the this team.","example":"America/New_York"},"code":{"type":"string","description":"A human readable ID that can be use has an ID for other API calls. The code is also used to map a team to an external system structural element."},"externalId":{"type":"string","description":"A unique UID or a human readable ID that can be use has an ID for other API calls. The externalId can also be used to map a team to an external system structural element."},"custom":{"type":"object","description":"To set custom fields to a team. You can pass a json objet where the values are string. Will merge with previous values.","example":{"field1":"value1","field2":"value2"},"additionalProperties":{"oneOf":[{"type":"string"}]}}}},"PublicBudget":{"type":"object","properties":{"uid":{"type":"string","description":"unique budget id"},"names":{"type":"object","description":"Multilingual name as a map indexed by locale (\"en\" or \"fr\")","additionalProperties":{"type":"string"},"example":{"en":"Main Office Budget","fr":"Budget Maison Mère"}},"value":{"type":"number","description":"The value (amount) of the budget"},"teamIds":{"description":"the budget team UIDs","type":"array","items":{"type":"string"}},"teamCodes":{"description":"the budget team codes","type":"array","items":{"type":"string"}},"skillIds":{"description":"the budget skill (position) UIDs","type":"array","items":{"type":"string"}},"skillICodes":{"description":"the budget skill (position) codes","type":"array","items":{"type":"string"}},"locationIds":{"description":"the budget location UIDs","type":"array","items":{"type":"string"}},"locationCodes":{"description":"the budget location codes","type":"array","items":{"type":"string"}},"effectiveFrom":{"type":"number","description":"If specified, the effective start date of the budget"},"effectiveTo":{"type":"number","description":"If specified, the effective end date of the budget"}},"required":["uid","names","value"]},"TimeClockClockAtRequest":{"type":"object","properties":{"memberCode":{"type":"string","description":"The member code of the employee clocking in or out"},"at":{"type":"number","description":"A unix timestamp of the clocked time. If not specified the current time is used"},"teamId":{"type":"string","description":"The ID of the team used to match or assign a team to the shift.\n\n**If provided:** The system looks for a corresponding shift under this team. If none exists, the new shift is linked to this team.\n\n**If omitted, the system applies these fallback rules:**\n1. **Primary Team:** Uses the member's primary team (if set).\n2. **Single Team:** If no primary team is set, but the member belongs to exactly one team, that team is used.\n3. **Validation Error:** If the member has multiple teams (and no primary), you *must* explicitly specify a team."},"teamCode":{"type":"string","description":"An optional team, referred by code. See teamId fo more details"},"locationId":{"type":"string","description":"The ID of the location used to match or assign a location to the shift.\n\n**If provided:** The system looks for a corresponding shift under this location. If none exists, the new shift is linked to this location.\n\n**If omitted, the system applies these fallback rules:**\n1. **Primary Location:** Uses the member's primary location (if set).\n2. **Single Location:** If no primary location is set, but the member belongs to exactly one location, that location is used.\n3. **Validation Error:** If the member has multiple locations (and no primary), you *must* explicitly specify a location."},"locationCode":{"type":"string","description":"An optional location, referred by code. See locationId for more details"},"skillId":{"type":"string","description":"The ID of the skill used to match or assign a skill to the shift.\n\n**If provided:** The system looks for a corresponding shift under this skill. If none exists, the new shift is linked to this skill.\n\n**If omitted, the system applies these fallback rules:**\n1. **Primary Skill:** Uses the member's primary skill (if set).\n2. **Single Skill:** If no primary skill is set, but the member belongs to exactly one skill, that skill is used.\n3. **Validation Error:** If the member has multiple skill (and no primary), you *must* explicitly specify a skill."},"skillCode":{"type":"string","description":"An optional skill, referred by code. See skillId for more details"}},"required":["memberCode"]},"SetClockingBreak":{"type":"object","properties":{"inAt":{"type":"number","description":"Break start — unix timestamp in ms"},"outAt":{"type":"number","description":"Break end — unix timestamp in ms"}},"required":["inAt","outAt"]},"SetClockingRequest":{"type":"object","properties":{"memberCode":{"type":"string","description":"Employee code"},"conflictBehavior":{"type":"string","enum":["THROW_EXCEPTION","THROW_EXCEPTION_ONLY_IF_SET_BY_EMPLOYEE","OVERRIDE"],"default":"THROW_EXCEPTION","description":"What to do when the matched event already has an existing clocking data. Default: THROW_EXCEPTION."},"allowCreateUnplannedShift":{"type":"boolean","default":true,"description":"When true, an unplanned shift is created if no shift exists near the requested start date and time. If false, an exception is thrown."},"teamId":{"type":"string","description":"The ID of the team used to match or assign a team to the shift.\n\n**If provided:** The system looks for a corresponding shift under this team. If none exists, the new shift is linked to this team.\n\n**If omitted, the system applies these fallback rules:**\n1. **Primary Team:** Uses the member's primary team (if set).\n2. **Single Team:** If no primary team is set, but the member belongs to exactly one team, that team is used.\n3. **Validation Error:** If the member has multiple teams (and no primary), you *must* explicitly specify a team."},"teamCode":{"type":"string","description":"An optional team, referred by code. See teamId for more details"},"locationId":{"type":"string","description":"The ID of the location used to match or assign a location to the shift.\n\n**If provided:** The system looks for a corresponding shift under this location. If none exists, the new shift is linked to this location.\n\n**If omitted, the system applies these fallback rules:**\n1. **Primary Location:** Uses the member's primary location (if set).\n2. **Single Location:** If no primary location is set, but the member belongs to exactly one location, that location is used.\n3. **Validation Error:** If the member has multiple locations (and no primary), you *must* explicitly specify a location."},"locationCode":{"type":"string","description":"An optional location, referred by code. See locationId for more details"},"skillId":{"type":"string","description":"The ID of the skill used to match or assign a skill to the shift.\n\n**If provided:** The system looks for a corresponding shift under this skill. If none exists, the new shift is linked to this skill.\n\n**If omitted, the system applies these fallback rules:**\n1. **Primary Skill:** Uses the member's primary skill (if set).\n2. **Single Skill:** If no primary skill is set, but the member belongs to exactly one skill, that skill is used.\n3. **Validation Error:** If the member has multiple skill (and no primary), you *must* explicitly specify a skill."},"skillCode":{"type":"string","description":"An optional skill, referred by code. See skillId for more details"},"variant":{"type":"string","enum":["TIMESTAMPS","ISO_DATE","SHIFT_DATE"]},"inAt":{"type":"number","description":"[TIMESTAMPS] Clock-in unix timestamp in ms"},"outAt":{"type":"number","description":"[TIMESTAMPS] Clock-out unix timestamp in ms"},"breaks":{"description":"[TIMESTAMPS] Unpaid break entries","type":"array","items":{"$ref":"#/components/schemas/SetClockingBreak"}},"startDate":{"type":"string","description":"[ISO_DATE] Clock-in — ISO-8601 datetime"},"endDate":{"type":"string","description":"[ISO_DATE] Clock-out — ISO-8601 datetime"},"workedHours":{"type":"number","description":"[ISO_DATE / SHIFT_DATE] Total paid hours. Mutually exclusive with unpaidBreakMinutes."},"unpaidBreakMinutes":{"type":"number","description":"Total unpaid break in minutes. Mutually exclusive with workedHours."},"shiftDate":{"type":"string","description":"[SHIFT_DATE] Date of the shift — YYYY-MM-DD"},"startTime":{"type":"string","description":"[SHIFT_DATE] Clock-in time — HH:mm:ss (24h)"},"endTime":{"type":"string","description":"[SHIFT_DATE] Clock-out time — HH:mm:ss (24h). Next day inferred when < startTime."},"timeZone":{"type":"string","description":"[SHIFT_DATE] When using SHIFT_DATE mode the shiftDate time zone cannot be determined. You should provide one. If none is provided, the company time zone is used."}},"required":["memberCode","variant"]}}}}