openapi: 3.1.0 info: title: Absentify API description: 'The Absentify REST API provides comprehensive absence management capabilities for Microsoft 365-integrated organizations. Manage members, departments, leave types, requests, allowances, public holidays, and workspace settings. The API requires the Plus plan and uses API key authentication. Rate limit: 150 requests per second per IP.' version: 1.0.0 contact: url: https://absentify.com/docs email: support@absentify.com license: name: Proprietary url: https://absentify.com/terms-and-conditions x-generated-from: official-openapi-spec servers: - url: https://api.absentify.com/api/v1 tags: - name: Departments - name: Leave types - name: Members - name: Requests - name: Public holidays - name: Workspace - name: Absences externalDocs: url: https://absentify.com/docs/en/api-reference paths: /members: get: operationId: member-getMembers summary: Absentify Get All Members description: Get all members with optional filters for departments, status, employment dates, admin status, approval process, approvers, allowance types, name, birthday month, and manager type tags: - Members security: - ApiKey: [] parameters: - in: query name: department_ids schema: type: array items: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ - in: query name: status schema: type: string enum: - INACTIVE - ACTIVE - ARCHIVED - in: query name: employment_start_date_from schema: type: string - in: query name: employment_start_date_to schema: type: string - in: query name: employment_end_date_from schema: type: string - in: query name: employment_end_date_to schema: type: string - in: query name: is_admin schema: type: boolean - in: query name: approval_process schema: type: string enum: - Linear_all_have_to_agree - Linear_one_has_to_agree - Parallel_all_have_to_agree - Parallel_one_has_to_agree - in: query name: has_approvers schema: type: boolean - in: query name: allowance_type_id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ - in: query name: name schema: type: string - in: query name: birthday_month schema: type: number minimum: 1 maximum: 12 - in: query name: manager_type schema: type: string enum: - Member - Manager responses: '200': description: Successful response content: application/json: schema: type: array items: type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' createdAt: type: string updatedAt: type: string allowances: type: array items: type: object properties: remaining: type: number brought_forward: type: number allowance: type: number taken: type: number year: type: number compensatory_time_off: type: number updatedAt: type: string createdAt: type: string id: type: string allowance_type: type: object properties: id: type: string name: type: string ignore_allowance_limit: type: boolean required: - id - name - ignore_allowance_limit additionalProperties: false required: - remaining - brought_forward - allowance - taken - year - compensatory_time_off - updatedAt - createdAt - id - allowance_type additionalProperties: false allowance_type_configurations: type: array items: type: object properties: id: type: string allowance_type_id: type: string default: type: boolean disabled: type: boolean required: - id - allowance_type_id - default - disabled additionalProperties: false allowance_type_configurtaions: description: 'DEPRECATED: Use allowance_type_configurations instead' type: array items: type: object properties: id: type: string allowance_type_id: type: string default: type: boolean disabled: type: boolean required: - id - allowance_type_id - default - disabled additionalProperties: false approval_process: type: string enum: - Linear_all_have_to_agree - Linear_one_has_to_agree - Parallel_all_have_to_agree - Parallel_one_has_to_agree status: type: string enum: - INACTIVE - ACTIVE - ARCHIVED birthday: anyOf: - type: string - type: 'null' employment_start_date: anyOf: - type: string - type: 'null' employment_end_date: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' departments: type: array items: type: object properties: id: type: string name: type: string manager_type: type: string enum: - Member - Manager required: - id - name - manager_type additionalProperties: false is_admin: type: boolean has_approvers: type: array items: type: object properties: member: type: object properties: id: type: string name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - name - email additionalProperties: false required: - member additionalProperties: false approver_config: type: object properties: type: type: string enum: - custom - department - microsoft department_id: anyOf: - type: string - type: 'null' microsoft_sync_level: anyOf: - type: number - type: 'null' required: - type - department_id - microsoft_sync_level additionalProperties: false required: - id - custom_id - name - createdAt - updatedAt - allowances - allowance_type_configurations - allowance_type_configurtaions - approval_process - status - birthday - employment_start_date - employment_end_date - email - departments - is_admin - has_approvers - approver_config additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: member-inviteMember summary: Absentify Invite a Member description: Invite a member tags: - Members security: - ApiKey: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 255 email: anyOf: - type: string format: email pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$ - type: 'null' department_ids: minItems: 1 type: array items: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: - id employment_start_date: anyOf: - type: string - type: 'null' public_holiday_id: type: string annual_allowance_current_year: type: number annual_allowance_next_year: type: number birthday: anyOf: - type: string - type: 'null' custom_id: anyOf: - type: string - type: 'null' defaultAllowances: type: array items: type: object properties: id: type: string current_year: type: number next_year: type: number default: type: boolean disabled: type: boolean required: - id - current_year - next_year required: - name - email - department_ids - employment_start_date - public_holiday_id - annual_allowance_current_year - annual_allowance_next_year - birthday - custom_id - defaultAllowances responses: '200': description: Successful response content: application/json: schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /members/{id}: get: operationId: member-getMemberById summary: Absentify Read a Member by Id description: Read a member by id tags: - Members security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true responses: '200': description: Successful response content: application/json: schema: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' createdAt: type: string updatedAt: type: string allowances: type: array items: type: object properties: remaining: type: number brought_forward: type: number allowance: type: number taken: type: number year: type: number compensatory_time_off: type: number updatedAt: type: string createdAt: type: string id: type: string allowance_type: type: object properties: id: type: string name: type: string ignore_allowance_limit: type: boolean required: - id - name - ignore_allowance_limit additionalProperties: false required: - remaining - brought_forward - allowance - taken - year - compensatory_time_off - updatedAt - createdAt - id - allowance_type additionalProperties: false allowance_type_configurations: type: array items: type: object properties: id: type: string allowance_type_id: type: string default: type: boolean disabled: type: boolean required: - id - allowance_type_id - default - disabled additionalProperties: false allowance_type_configurtaions: description: 'DEPRECATED: Use allowance_type_configurations instead' type: array items: type: object properties: id: type: string allowance_type_id: type: string default: type: boolean disabled: type: boolean required: - id - allowance_type_id - default - disabled additionalProperties: false approval_process: type: string enum: - Linear_all_have_to_agree - Linear_one_has_to_agree - Parallel_all_have_to_agree - Parallel_one_has_to_agree status: type: string enum: - INACTIVE - ACTIVE - ARCHIVED birthday: anyOf: - type: string - type: 'null' employment_start_date: anyOf: - type: string - type: 'null' employment_end_date: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' departments: type: array items: type: object properties: id: type: string name: type: string manager_type: type: string enum: - Member - Manager required: - id - name - manager_type additionalProperties: false is_admin: type: boolean has_approvers: type: array items: type: object properties: member: type: object properties: id: type: string name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - name - email additionalProperties: false required: - member additionalProperties: false approver_config: type: object properties: type: type: string enum: - custom - department - microsoft department_id: anyOf: - type: string - type: 'null' microsoft_sync_level: anyOf: - type: number - type: 'null' required: - type - department_id - microsoft_sync_level additionalProperties: false schedules: type: array items: type: object properties: id: type: string from: anyOf: - type: string - type: 'null' monday_am_start: type: string monday_am_end: type: string monday_pm_start: type: string monday_pm_end: type: string monday_am_enabled: type: boolean monday_pm_enabled: type: boolean monday_deduct_fullday: type: boolean tuesday_am_start: type: string tuesday_am_end: type: string tuesday_pm_start: type: string tuesday_pm_end: type: string tuesday_am_enabled: type: boolean tuesday_pm_enabled: type: boolean tuesday_deduct_fullday: type: boolean wednesday_am_start: type: string wednesday_am_end: type: string wednesday_pm_start: type: string wednesday_pm_end: type: string wednesday_am_enabled: type: boolean wednesday_pm_enabled: type: boolean wednesday_deduct_fullday: type: boolean thursday_am_start: type: string thursday_am_end: type: string thursday_pm_start: type: string thursday_pm_end: type: string thursday_am_enabled: type: boolean thursday_pm_enabled: type: boolean thursday_deduct_fullday: type: boolean friday_am_start: type: string friday_am_end: type: string friday_pm_start: type: string friday_pm_end: type: string friday_am_enabled: type: boolean friday_pm_enabled: type: boolean friday_deduct_fullday: type: boolean saturday_am_start: type: string saturday_am_end: type: string saturday_pm_start: type: string saturday_pm_end: type: string saturday_am_enabled: type: boolean saturday_pm_enabled: type: boolean saturday_deduct_fullday: type: boolean sunday_am_start: type: string sunday_am_end: type: string sunday_pm_start: type: string sunday_pm_end: type: string sunday_am_enabled: type: boolean sunday_pm_enabled: type: boolean sunday_deduct_fullday: type: boolean updatedAt: type: string createdAt: type: string required: - id - from - monday_am_start - monday_am_end - monday_pm_start - monday_pm_end - monday_am_enabled - monday_pm_enabled - monday_deduct_fullday - tuesday_am_start - tuesday_am_end - tuesday_pm_start - tuesday_pm_end - tuesday_am_enabled - tuesday_pm_enabled - tuesday_deduct_fullday - wednesday_am_start - wednesday_am_end - wednesday_pm_start - wednesday_pm_end - wednesday_am_enabled - wednesday_pm_enabled - wednesday_deduct_fullday - thursday_am_start - thursday_am_end - thursday_pm_start - thursday_pm_end - thursday_am_enabled - thursday_pm_enabled - thursday_deduct_fullday - friday_am_start - friday_am_end - friday_pm_start - friday_pm_end - friday_am_enabled - friday_pm_enabled - friday_deduct_fullday - saturday_am_start - saturday_am_end - saturday_pm_start - saturday_pm_end - saturday_am_enabled - saturday_pm_enabled - saturday_deduct_fullday - sunday_am_start - sunday_am_end - sunday_pm_start - sunday_pm_end - sunday_am_enabled - sunday_pm_enabled - sunday_deduct_fullday - updatedAt - createdAt additionalProperties: false required: - id - custom_id - name - createdAt - updatedAt - allowances - allowance_type_configurations - allowance_type_configurtaions - approval_process - status - birthday - employment_start_date - employment_end_date - email - departments - is_admin - has_approvers - approver_config - schedules additionalProperties: false - type: 'null' '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: member-updateMember summary: Absentify Update a Member description: Update a member tags: - Members security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true requestBody: required: true content: application/json: schema: type: object properties: is_admin: type: boolean department_ids: minItems: 1 type: array items: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: - id employment_start_date: anyOf: - type: string - type: 'null' employment_end_date: anyOf: - type: string - type: 'null' public_holiday_id: type: string birthday: anyOf: - type: string - type: 'null' custom_id: anyOf: - type: string - type: 'null' status: type: string enum: - INACTIVE - ACTIVE - ARCHIVED responses: '200': description: Successful response content: application/json: schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: member-deleteMember summary: Absentify Delete a Member description: Delete a member, all data will be deleted permanently tags: - Members security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true responses: '200': description: Successful response content: application/json: schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /members/microsoft/{microsoft_user_id}: get: operationId: member-getMemberByMicrosoftId summary: Absentify Read a Member by Microsoft User Id description: Read a member Microsoft user id tags: - Members security: - ApiKey: [] parameters: - in: path name: microsoft_user_id schema: type: string required: true responses: '200': description: Successful response content: application/json: schema: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' createdAt: type: string updatedAt: type: string allowances: type: array items: type: object properties: remaining: type: number brought_forward: type: number allowance: type: number taken: type: number year: type: number compensatory_time_off: type: number updatedAt: type: string createdAt: type: string id: type: string allowance_type: type: object properties: id: type: string name: type: string ignore_allowance_limit: type: boolean required: - id - name - ignore_allowance_limit additionalProperties: false required: - remaining - brought_forward - allowance - taken - year - compensatory_time_off - updatedAt - createdAt - id - allowance_type additionalProperties: false allowance_type_configurations: type: array items: type: object properties: id: type: string allowance_type_id: type: string default: type: boolean disabled: type: boolean required: - id - allowance_type_id - default - disabled additionalProperties: false allowance_type_configurtaions: description: 'DEPRECATED: Use allowance_type_configurations instead' type: array items: type: object properties: id: type: string allowance_type_id: type: string default: type: boolean disabled: type: boolean required: - id - allowance_type_id - default - disabled additionalProperties: false approval_process: type: string enum: - Linear_all_have_to_agree - Linear_one_has_to_agree - Parallel_all_have_to_agree - Parallel_one_has_to_agree status: type: string enum: - INACTIVE - ACTIVE - ARCHIVED birthday: anyOf: - type: string - type: 'null' employment_start_date: anyOf: - type: string - type: 'null' employment_end_date: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' departments: type: array items: type: object properties: id: type: string name: type: string manager_type: type: string enum: - Member - Manager required: - id - name - manager_type additionalProperties: false is_admin: type: boolean has_approvers: type: array items: type: object properties: member: type: object properties: id: type: string name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - name - email additionalProperties: false required: - member additionalProperties: false approver_config: type: object properties: type: type: string enum: - custom - department - microsoft department_id: anyOf: - type: string - type: 'null' microsoft_sync_level: anyOf: - type: number - type: 'null' required: - type - department_id - microsoft_sync_level additionalProperties: false schedules: type: array items: type: object properties: id: type: string from: anyOf: - type: string - type: 'null' monday_am_start: type: string monday_am_end: type: string monday_pm_start: type: string monday_pm_end: type: string monday_am_enabled: type: boolean monday_pm_enabled: type: boolean monday_deduct_fullday: type: boolean tuesday_am_start: type: string tuesday_am_end: type: string tuesday_pm_start: type: string tuesday_pm_end: type: string tuesday_am_enabled: type: boolean tuesday_pm_enabled: type: boolean tuesday_deduct_fullday: type: boolean wednesday_am_start: type: string wednesday_am_end: type: string wednesday_pm_start: type: string wednesday_pm_end: type: string wednesday_am_enabled: type: boolean wednesday_pm_enabled: type: boolean wednesday_deduct_fullday: type: boolean thursday_am_start: type: string thursday_am_end: type: string thursday_pm_start: type: string thursday_pm_end: type: string thursday_am_enabled: type: boolean thursday_pm_enabled: type: boolean thursday_deduct_fullday: type: boolean friday_am_start: type: string friday_am_end: type: string friday_pm_start: type: string friday_pm_end: type: string friday_am_enabled: type: boolean friday_pm_enabled: type: boolean friday_deduct_fullday: type: boolean saturday_am_start: type: string saturday_am_end: type: string saturday_pm_start: type: string saturday_pm_end: type: string saturday_am_enabled: type: boolean saturday_pm_enabled: type: boolean saturday_deduct_fullday: type: boolean sunday_am_start: type: string sunday_am_end: type: string sunday_pm_start: type: string sunday_pm_end: type: string sunday_am_enabled: type: boolean sunday_pm_enabled: type: boolean sunday_deduct_fullday: type: boolean updatedAt: type: string createdAt: type: string required: - id - from - monday_am_start - monday_am_end - monday_pm_start - monday_pm_end - monday_am_enabled - monday_pm_enabled - monday_deduct_fullday - tuesday_am_start - tuesday_am_end - tuesday_pm_start - tuesday_pm_end - tuesday_am_enabled - tuesday_pm_enabled - tuesday_deduct_fullday - wednesday_am_start - wednesday_am_end - wednesday_pm_start - wednesday_pm_end - wednesday_am_enabled - wednesday_pm_enabled - wednesday_deduct_fullday - thursday_am_start - thursday_am_end - thursday_pm_start - thursday_pm_end - thursday_am_enabled - thursday_pm_enabled - thursday_deduct_fullday - friday_am_start - friday_am_end - friday_pm_start - friday_pm_end - friday_am_enabled - friday_pm_enabled - friday_deduct_fullday - saturday_am_start - saturday_am_end - saturday_pm_start - saturday_pm_end - saturday_am_enabled - saturday_pm_enabled - saturday_deduct_fullday - sunday_am_start - sunday_am_end - sunday_pm_start - sunday_pm_end - sunday_am_enabled - sunday_pm_enabled - sunday_deduct_fullday - updatedAt - createdAt additionalProperties: false required: - id - custom_id - name - createdAt - updatedAt - allowances - allowance_type_configurations - allowance_type_configurtaions - approval_process - status - birthday - employment_start_date - employment_end_date - email - departments - is_admin - has_approvers - approver_config - schedules additionalProperties: false - type: 'null' '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /members/email/{email}: get: operationId: member-getMemberByEmail summary: Absentify Read a Member by Email description: Read a member email tags: - Members security: - ApiKey: [] parameters: - in: path name: email schema: type: string required: true responses: '200': description: Successful response content: application/json: schema: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' createdAt: type: string updatedAt: type: string allowances: type: array items: type: object properties: remaining: type: number brought_forward: type: number allowance: type: number taken: type: number year: type: number compensatory_time_off: type: number updatedAt: type: string createdAt: type: string id: type: string allowance_type: type: object properties: id: type: string name: type: string ignore_allowance_limit: type: boolean required: - id - name - ignore_allowance_limit additionalProperties: false required: - remaining - brought_forward - allowance - taken - year - compensatory_time_off - updatedAt - createdAt - id - allowance_type additionalProperties: false allowance_type_configurations: type: array items: type: object properties: id: type: string allowance_type_id: type: string default: type: boolean disabled: type: boolean required: - id - allowance_type_id - default - disabled additionalProperties: false allowance_type_configurtaions: description: 'DEPRECATED: Use allowance_type_configurations instead' type: array items: type: object properties: id: type: string allowance_type_id: type: string default: type: boolean disabled: type: boolean required: - id - allowance_type_id - default - disabled additionalProperties: false approval_process: type: string enum: - Linear_all_have_to_agree - Linear_one_has_to_agree - Parallel_all_have_to_agree - Parallel_one_has_to_agree status: type: string enum: - INACTIVE - ACTIVE - ARCHIVED birthday: anyOf: - type: string - type: 'null' employment_start_date: anyOf: - type: string - type: 'null' employment_end_date: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' departments: type: array items: type: object properties: id: type: string name: type: string manager_type: type: string enum: - Member - Manager required: - id - name - manager_type additionalProperties: false is_admin: type: boolean has_approvers: type: array items: type: object properties: member: type: object properties: id: type: string name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - name - email additionalProperties: false required: - member additionalProperties: false approver_config: type: object properties: type: type: string enum: - custom - department - microsoft department_id: anyOf: - type: string - type: 'null' microsoft_sync_level: anyOf: - type: number - type: 'null' required: - type - department_id - microsoft_sync_level additionalProperties: false schedules: type: array items: type: object properties: id: type: string from: anyOf: - type: string - type: 'null' monday_am_start: type: string monday_am_end: type: string monday_pm_start: type: string monday_pm_end: type: string monday_am_enabled: type: boolean monday_pm_enabled: type: boolean monday_deduct_fullday: type: boolean tuesday_am_start: type: string tuesday_am_end: type: string tuesday_pm_start: type: string tuesday_pm_end: type: string tuesday_am_enabled: type: boolean tuesday_pm_enabled: type: boolean tuesday_deduct_fullday: type: boolean wednesday_am_start: type: string wednesday_am_end: type: string wednesday_pm_start: type: string wednesday_pm_end: type: string wednesday_am_enabled: type: boolean wednesday_pm_enabled: type: boolean wednesday_deduct_fullday: type: boolean thursday_am_start: type: string thursday_am_end: type: string thursday_pm_start: type: string thursday_pm_end: type: string thursday_am_enabled: type: boolean thursday_pm_enabled: type: boolean thursday_deduct_fullday: type: boolean friday_am_start: type: string friday_am_end: type: string friday_pm_start: type: string friday_pm_end: type: string friday_am_enabled: type: boolean friday_pm_enabled: type: boolean friday_deduct_fullday: type: boolean saturday_am_start: type: string saturday_am_end: type: string saturday_pm_start: type: string saturday_pm_end: type: string saturday_am_enabled: type: boolean saturday_pm_enabled: type: boolean saturday_deduct_fullday: type: boolean sunday_am_start: type: string sunday_am_end: type: string sunday_pm_start: type: string sunday_pm_end: type: string sunday_am_enabled: type: boolean sunday_pm_enabled: type: boolean sunday_deduct_fullday: type: boolean updatedAt: type: string createdAt: type: string required: - id - from - monday_am_start - monday_am_end - monday_pm_start - monday_pm_end - monday_am_enabled - monday_pm_enabled - monday_deduct_fullday - tuesday_am_start - tuesday_am_end - tuesday_pm_start - tuesday_pm_end - tuesday_am_enabled - tuesday_pm_enabled - tuesday_deduct_fullday - wednesday_am_start - wednesday_am_end - wednesday_pm_start - wednesday_pm_end - wednesday_am_enabled - wednesday_pm_enabled - wednesday_deduct_fullday - thursday_am_start - thursday_am_end - thursday_pm_start - thursday_pm_end - thursday_am_enabled - thursday_pm_enabled - thursday_deduct_fullday - friday_am_start - friday_am_end - friday_pm_start - friday_pm_end - friday_am_enabled - friday_pm_enabled - friday_deduct_fullday - saturday_am_start - saturday_am_end - saturday_pm_start - saturday_pm_end - saturday_am_enabled - saturday_pm_enabled - saturday_deduct_fullday - sunday_am_start - sunday_am_end - sunday_pm_start - sunday_pm_end - sunday_am_enabled - sunday_pm_enabled - sunday_deduct_fullday - updatedAt - createdAt additionalProperties: false required: - id - custom_id - name - createdAt - updatedAt - allowances - allowance_type_configurations - allowance_type_configurtaions - approval_process - status - birthday - employment_start_date - employment_end_date - email - departments - is_admin - has_approvers - approver_config - schedules additionalProperties: false - type: 'null' '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /members/custom_id/{custom_id}: get: operationId: member-getMemberByCustomId summary: Absentify Read a Member by Custom_id description: Read a member by custom_id tags: - Members security: - ApiKey: [] parameters: - in: path name: custom_id schema: type: string required: true responses: '200': description: Successful response content: application/json: schema: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' createdAt: type: string updatedAt: type: string allowances: type: array items: type: object properties: remaining: type: number brought_forward: type: number allowance: type: number taken: type: number year: type: number compensatory_time_off: type: number updatedAt: type: string createdAt: type: string id: type: string allowance_type: type: object properties: id: type: string name: type: string ignore_allowance_limit: type: boolean required: - id - name - ignore_allowance_limit additionalProperties: false required: - remaining - brought_forward - allowance - taken - year - compensatory_time_off - updatedAt - createdAt - id - allowance_type additionalProperties: false allowance_type_configurations: type: array items: type: object properties: id: type: string allowance_type_id: type: string default: type: boolean disabled: type: boolean required: - id - allowance_type_id - default - disabled additionalProperties: false allowance_type_configurtaions: description: 'DEPRECATED: Use allowance_type_configurations instead' type: array items: type: object properties: id: type: string allowance_type_id: type: string default: type: boolean disabled: type: boolean required: - id - allowance_type_id - default - disabled additionalProperties: false approval_process: type: string enum: - Linear_all_have_to_agree - Linear_one_has_to_agree - Parallel_all_have_to_agree - Parallel_one_has_to_agree status: type: string enum: - INACTIVE - ACTIVE - ARCHIVED birthday: anyOf: - type: string - type: 'null' employment_start_date: anyOf: - type: string - type: 'null' employment_end_date: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' departments: type: array items: type: object properties: id: type: string name: type: string manager_type: type: string enum: - Member - Manager required: - id - name - manager_type additionalProperties: false is_admin: type: boolean has_approvers: type: array items: type: object properties: member: type: object properties: id: type: string name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - name - email additionalProperties: false required: - member additionalProperties: false approver_config: type: object properties: type: type: string enum: - custom - department - microsoft department_id: anyOf: - type: string - type: 'null' microsoft_sync_level: anyOf: - type: number - type: 'null' required: - type - department_id - microsoft_sync_level additionalProperties: false schedules: type: array items: type: object properties: id: type: string from: anyOf: - type: string - type: 'null' monday_am_start: type: string monday_am_end: type: string monday_pm_start: type: string monday_pm_end: type: string monday_am_enabled: type: boolean monday_pm_enabled: type: boolean monday_deduct_fullday: type: boolean tuesday_am_start: type: string tuesday_am_end: type: string tuesday_pm_start: type: string tuesday_pm_end: type: string tuesday_am_enabled: type: boolean tuesday_pm_enabled: type: boolean tuesday_deduct_fullday: type: boolean wednesday_am_start: type: string wednesday_am_end: type: string wednesday_pm_start: type: string wednesday_pm_end: type: string wednesday_am_enabled: type: boolean wednesday_pm_enabled: type: boolean wednesday_deduct_fullday: type: boolean thursday_am_start: type: string thursday_am_end: type: string thursday_pm_start: type: string thursday_pm_end: type: string thursday_am_enabled: type: boolean thursday_pm_enabled: type: boolean thursday_deduct_fullday: type: boolean friday_am_start: type: string friday_am_end: type: string friday_pm_start: type: string friday_pm_end: type: string friday_am_enabled: type: boolean friday_pm_enabled: type: boolean friday_deduct_fullday: type: boolean saturday_am_start: type: string saturday_am_end: type: string saturday_pm_start: type: string saturday_pm_end: type: string saturday_am_enabled: type: boolean saturday_pm_enabled: type: boolean saturday_deduct_fullday: type: boolean sunday_am_start: type: string sunday_am_end: type: string sunday_pm_start: type: string sunday_pm_end: type: string sunday_am_enabled: type: boolean sunday_pm_enabled: type: boolean sunday_deduct_fullday: type: boolean updatedAt: type: string createdAt: type: string required: - id - from - monday_am_start - monday_am_end - monday_pm_start - monday_pm_end - monday_am_enabled - monday_pm_enabled - monday_deduct_fullday - tuesday_am_start - tuesday_am_end - tuesday_pm_start - tuesday_pm_end - tuesday_am_enabled - tuesday_pm_enabled - tuesday_deduct_fullday - wednesday_am_start - wednesday_am_end - wednesday_pm_start - wednesday_pm_end - wednesday_am_enabled - wednesday_pm_enabled - wednesday_deduct_fullday - thursday_am_start - thursday_am_end - thursday_pm_start - thursday_pm_end - thursday_am_enabled - thursday_pm_enabled - thursday_deduct_fullday - friday_am_start - friday_am_end - friday_pm_start - friday_pm_end - friday_am_enabled - friday_pm_enabled - friday_deduct_fullday - saturday_am_start - saturday_am_end - saturday_pm_start - saturday_pm_end - saturday_am_enabled - saturday_pm_enabled - saturday_deduct_fullday - sunday_am_start - sunday_am_end - sunday_pm_start - sunday_pm_end - sunday_am_enabled - sunday_pm_enabled - sunday_deduct_fullday - updatedAt - createdAt additionalProperties: false required: - id - custom_id - name - createdAt - updatedAt - allowances - allowance_type_configurations - allowance_type_configurtaions - approval_process - status - birthday - employment_start_date - employment_end_date - email - departments - is_admin - has_approvers - approver_config - schedules additionalProperties: false - type: 'null' '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /members/{id}/approvers: put: operationId: member-updateMemberApprovers summary: Absentify Update Approvers for a Member description: "\n This endpoint allows updating the approvers for a specific member based on the chosen approval process.\n Depending on the provided configuration:\n - If Microsoft profile managers are used, department and custom approvers are ignored.\n - If department settings are used, Microsoft profile managers and custom approvers are ignored.\n - If custom approvers are provided, Microsoft profile managers and department settings are ignored.\n\n **No Approver (Self-Approval):**\n To set \"no approver\" for a member, provide an empty array: `approvers: []`.\n The system will automatically configure the member as their own approver (self-approval),\n which is internally recognized as \"no approver\" throughout the application.\n\n The 'id' and 'approval_process' fields are always required.\n " tags: - Members security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true requestBody: required: true content: application/json: schema: type: object properties: approval_process: type: string enum: - Linear_all_have_to_agree - Linear_one_has_to_agree - Parallel_all_have_to_agree - Parallel_one_has_to_agree microsoft_settings: type: object properties: use_profile_managers: type: boolean profile_managers_level: anyOf: - type: integer minimum: -9007199254740991 maximum: 9007199254740991 - type: 'null' required: - use_profile_managers - profile_managers_level department_settings: type: object properties: use_department_settings: type: boolean department_id: anyOf: - type: string - type: 'null' required: - use_department_settings - department_id approvers: type: array items: type: object properties: member_id: type: string predecessor_manager_id: anyOf: - type: string - type: 'null' required: - member_id - predecessor_manager_id required: - approval_process responses: '200': description: Successful response content: application/json: schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /members/{id}/allowance/{allowance_type_id}/{year}: put: operationId: member-updateMemberAllowance summary: Absentify Update a Member's Allowance description: Update a member's allowance and optionally configure if this allowance type should be default or disabled for the member tags: - Members security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true - in: path name: allowance_type_id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true - in: path name: year schema: type: number required: true requestBody: required: true content: application/json: schema: type: object properties: allowance: type: number compensatory_time_off: type: number brought_forward: type: number reason: type: string overwrite_brought_forward: type: boolean set_as_default: type: boolean disabled: type: boolean required: - allowance - compensatory_time_off responses: '200': description: Successful response content: application/json: schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /members/{id}/schedule: post: operationId: member-addMemberSchedule summary: Absentify Add a Member's Schedule description: Add a member's schedule tags: - Members security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true requestBody: required: true content: application/json: schema: type: object properties: from: type: string monday_am_start: type: string monday_am_end: type: string monday_pm_start: type: string monday_pm_end: type: string monday_am_enabled: type: boolean monday_pm_enabled: type: boolean monday_deduct_fullday: type: boolean tuesday_am_start: type: string tuesday_am_end: type: string tuesday_pm_start: type: string tuesday_pm_end: type: string tuesday_am_enabled: type: boolean tuesday_pm_enabled: type: boolean tuesday_deduct_fullday: type: boolean wednesday_am_start: type: string wednesday_am_end: type: string wednesday_pm_start: type: string wednesday_pm_end: type: string wednesday_am_enabled: type: boolean wednesday_pm_enabled: type: boolean wednesday_deduct_fullday: type: boolean thursday_am_start: type: string thursday_am_end: type: string thursday_pm_start: type: string thursday_pm_end: type: string thursday_am_enabled: type: boolean thursday_pm_enabled: type: boolean thursday_deduct_fullday: type: boolean friday_am_start: type: string friday_am_end: type: string friday_pm_start: type: string friday_pm_end: type: string friday_am_enabled: type: boolean friday_pm_enabled: type: boolean friday_deduct_fullday: type: boolean saturday_am_start: type: string saturday_am_end: type: string saturday_pm_start: type: string saturday_pm_end: type: string saturday_am_enabled: type: boolean saturday_pm_enabled: type: boolean saturday_deduct_fullday: type: boolean sunday_am_start: type: string sunday_am_end: type: string sunday_pm_start: type: string sunday_pm_end: type: string sunday_am_enabled: type: boolean sunday_pm_enabled: type: boolean sunday_deduct_fullday: type: boolean required: - from - monday_am_start - monday_am_end - monday_pm_start - monday_pm_end - monday_am_enabled - monday_pm_enabled - monday_deduct_fullday - tuesday_am_start - tuesday_am_end - tuesday_pm_start - tuesday_pm_end - tuesday_am_enabled - tuesday_pm_enabled - tuesday_deduct_fullday - wednesday_am_start - wednesday_am_end - wednesday_pm_start - wednesday_pm_end - wednesday_am_enabled - wednesday_pm_enabled - wednesday_deduct_fullday - thursday_am_start - thursday_am_end - thursday_pm_start - thursday_pm_end - thursday_am_enabled - thursday_pm_enabled - thursday_deduct_fullday - friday_am_start - friday_am_end - friday_pm_start - friday_pm_end - friday_am_enabled - friday_pm_enabled - friday_deduct_fullday - saturday_am_start - saturday_am_end - saturday_pm_start - saturday_pm_end - saturday_am_enabled - saturday_pm_enabled - saturday_deduct_fullday - sunday_am_start - sunday_am_end - sunday_pm_start - sunday_pm_end - sunday_am_enabled - sunday_pm_enabled - sunday_deduct_fullday responses: '200': description: Successful response content: application/json: schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /members/{member_id}/schedule/{id}: put: operationId: member-updateMemberSchedule summary: Absentify Update a Member's Schedule description: Update a member's schedule tags: - Members security: - ApiKey: [] parameters: - in: path name: member_id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true requestBody: required: true content: application/json: schema: type: object properties: from: type: string monday_am_start: type: string monday_am_end: type: string monday_pm_start: type: string monday_pm_end: type: string monday_am_enabled: type: boolean monday_pm_enabled: type: boolean monday_deduct_fullday: type: boolean tuesday_am_start: type: string tuesday_am_end: type: string tuesday_pm_start: type: string tuesday_pm_end: type: string tuesday_am_enabled: type: boolean tuesday_pm_enabled: type: boolean tuesday_deduct_fullday: type: boolean wednesday_am_start: type: string wednesday_am_end: type: string wednesday_pm_start: type: string wednesday_pm_end: type: string wednesday_am_enabled: type: boolean wednesday_pm_enabled: type: boolean wednesday_deduct_fullday: type: boolean thursday_am_start: type: string thursday_am_end: type: string thursday_pm_start: type: string thursday_pm_end: type: string thursday_am_enabled: type: boolean thursday_pm_enabled: type: boolean thursday_deduct_fullday: type: boolean friday_am_start: type: string friday_am_end: type: string friday_pm_start: type: string friday_pm_end: type: string friday_am_enabled: type: boolean friday_pm_enabled: type: boolean friday_deduct_fullday: type: boolean saturday_am_start: type: string saturday_am_end: type: string saturday_pm_start: type: string saturday_pm_end: type: string saturday_am_enabled: type: boolean saturday_pm_enabled: type: boolean saturday_deduct_fullday: type: boolean sunday_am_start: type: string sunday_am_end: type: string sunday_pm_start: type: string sunday_pm_end: type: string sunday_am_enabled: type: boolean sunday_pm_enabled: type: boolean sunday_deduct_fullday: type: boolean required: - from - monday_am_start - monday_am_end - monday_pm_start - monday_pm_end - monday_am_enabled - monday_pm_enabled - monday_deduct_fullday - tuesday_am_start - tuesday_am_end - tuesday_pm_start - tuesday_pm_end - tuesday_am_enabled - tuesday_pm_enabled - tuesday_deduct_fullday - wednesday_am_start - wednesday_am_end - wednesday_pm_start - wednesday_pm_end - wednesday_am_enabled - wednesday_pm_enabled - wednesday_deduct_fullday - thursday_am_start - thursday_am_end - thursday_pm_start - thursday_pm_end - thursday_am_enabled - thursday_pm_enabled - thursday_deduct_fullday - friday_am_start - friday_am_end - friday_pm_start - friday_pm_end - friday_am_enabled - friday_pm_enabled - friday_deduct_fullday - saturday_am_start - saturday_am_end - saturday_pm_start - saturday_pm_end - saturday_am_enabled - saturday_pm_enabled - saturday_deduct_fullday - sunday_am_start - sunday_am_end - sunday_pm_start - sunday_pm_end - sunday_am_enabled - sunday_pm_enabled - sunday_deduct_fullday responses: '200': description: Successful response content: application/json: schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /members/{id}/representatives: put: operationId: member-updateMemberRepresentatives summary: Absentify Update Representatives for a Member description: "\n This endpoint allows updating the representatives for a specific member.\n It also configures how representative approvals work for this member.\n The 'id', 'representative_approval_process', 'member_can_reorder_representatives',\n 'member_can_choose_representatives', 'required_representatives_count', and 'representatives' fields are always required.\n " tags: - Members security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true requestBody: required: true content: application/json: schema: type: object properties: representative_approval_process: type: string enum: - Linear - Parallel member_can_reorder_representatives: type: boolean member_can_choose_representatives: type: boolean required_representatives_count: type: integer minimum: 0 maximum: 9007199254740991 representatives: type: array items: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: - representative_approval_process - member_can_reorder_representatives - member_can_choose_representatives - required_representatives_count - representatives responses: '200': description: Successful response content: application/json: schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK get: operationId: member-getMemberRepresentatives summary: Absentify Get a Member's Representative Settings and List description: Retrieves the representative configuration (such as approval process, ability to choose/reorder) and the list of representatives for a specific member. tags: - Members security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true responses: '200': description: Successful response content: application/json: schema: type: object properties: representative_approval_process: anyOf: - type: string enum: - Linear - Parallel - type: 'null' member_can_reorder_representatives: anyOf: - type: boolean - type: 'null' member_can_choose_representatives: anyOf: - type: boolean - type: 'null' required_representatives_count: anyOf: - type: integer minimum: 0 maximum: 9007199254740991 - type: 'null' representatives: type: array items: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ name: anyOf: - type: string - type: 'null' required: - id - name additionalProperties: false required: - representative_approval_process - member_can_reorder_representatives - member_can_choose_representatives - required_representatives_count - representatives additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /departments: get: operationId: department-getDepartments summary: Absentify Get All Departments description: Get all departments tags: - Departments security: - ApiKey: [] parameters: [] responses: '200': description: Successful response content: application/json: schema: type: array items: type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: type: string createdAt: type: string updatedAt: type: string approval_process: type: string enum: - Linear_all_have_to_agree - Linear_one_has_to_agree - Parallel_all_have_to_agree - Parallel_one_has_to_agree maximum_absent: anyOf: - type: integer minimum: -9007199254740991 maximum: 9007199254740991 - type: 'null' members: type: array items: type: object properties: id: type: string name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' custom_id: anyOf: - type: string - type: 'null' manager_type: type: string enum: - Member - Manager required: - id - name - email - custom_id - manager_type additionalProperties: false required: - id - custom_id - name - createdAt - updatedAt - approval_process - maximum_absent - members additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: department-createDepartment summary: Absentify Create a Department description: Create a department tags: - Departments security: - ApiKey: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: name: type: string custom_id: anyOf: - type: string - type: 'null' default_allowance: type: number maximum_absent: type: number approval_process: type: string enum: - Linear_all_have_to_agree - Linear_one_has_to_agree - Parallel_all_have_to_agree - Parallel_one_has_to_agree manager_member: type: array items: type: object properties: member_id: type: string predecessor_manager_id: anyOf: - type: string - type: 'null' required: - member_id - predecessor_manager_id default_department_allowances: type: array items: type: object properties: id: type: string value: type: number required: - id - value required: - name - custom_id - default_allowance - maximum_absent - approval_process - manager_member - default_department_allowances responses: '200': description: Successful response content: application/json: schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /departments/{id}: get: operationId: department-getDepartmentByid summary: Absentify Read a Department by Id description: Read a department by id tags: - Departments security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true responses: '200': description: Successful response content: application/json: schema: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: type: string createdAt: type: string updatedAt: type: string approval_process: type: string enum: - Linear_all_have_to_agree - Linear_one_has_to_agree - Parallel_all_have_to_agree - Parallel_one_has_to_agree maximum_absent: anyOf: - type: integer minimum: -9007199254740991 maximum: 9007199254740991 - type: 'null' members: type: array items: type: object properties: id: type: string name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' custom_id: anyOf: - type: string - type: 'null' manager_type: type: string enum: - Member - Manager required: - id - name - email - custom_id - manager_type additionalProperties: false required: - id - custom_id - name - createdAt - updatedAt - approval_process - maximum_absent - members additionalProperties: false - type: 'null' '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: department-updateDepartment summary: Absentify Update a Department description: Update a department tags: - Departments security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true requestBody: required: true content: application/json: schema: type: object properties: custom_id: anyOf: - type: string - type: 'null' name: type: string maximum_absent: type: integer minimum: -9007199254740991 maximum: 9007199254740991 approval_process: type: string enum: - Linear_all_have_to_agree - Linear_one_has_to_agree - Parallel_all_have_to_agree - Parallel_one_has_to_agree manager_member: type: array items: type: object properties: member_id: type: string predecessor_manager_id: anyOf: - type: string - type: 'null' required: - member_id - predecessor_manager_id default_department_allowances: type: array items: type: object properties: id: type: string value: type: number required: - id - value required: - default_department_allowances responses: '200': description: Successful response content: application/json: schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: department-DeleteDepartmentById summary: Absentify Delete a Department description: Delete a department tags: - Departments security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true responses: '200': description: Successful response content: application/json: schema: type: 'null' '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /leave_types: get: operationId: leaveTypes-getLeaveTypes summary: Absentify Get All Leave Types description: Get all leave types tags: - Leave types security: - ApiKey: [] parameters: [] responses: '200': description: Successful response content: application/json: schema: type: array items: type: object properties: id: type: string name: type: string createdAt: type: string updatedAt: type: string color: type: string icon: type: string needs_approval: type: boolean deleted: type: boolean deleted_at: anyOf: - type: string - type: 'null' deleted_by: anyOf: - type: object properties: id: type: string name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - name - email additionalProperties: false - type: 'null' maximum_absent: type: boolean leave_unit: type: string enum: - days - half_days - hours - minutes_30 - minutes_15 - minutes_10 - minutes_5 - minutes_1 position: type: number take_from_allowance: type: boolean privacy_hide_leavetype: type: boolean outlook_synchronization_show_as: type: string enum: - free - tentative - busy - oof - workingElsewhere - unknown outlook_synchronization_subject: anyOf: - type: string - type: 'null' allowance_type: anyOf: - type: object properties: id: type: string name: type: string ignore_allowance_limit: type: boolean allowance_unit: type: string enum: - days - hours required: - id - name - ignore_allowance_limit - allowance_unit additionalProperties: false - type: 'null' counts_as_leave: type: boolean required: - id - name - createdAt - updatedAt - color - icon - needs_approval - deleted - deleted_at - deleted_by - maximum_absent - leave_unit - position - take_from_allowance - privacy_hide_leavetype - outlook_synchronization_show_as - outlook_synchronization_subject - allowance_type - counts_as_leave additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: leaveTypes-createLeaveType summary: Absentify Create a Leave Type description: Create a leave type tags: - Leave types security: - ApiKey: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 255 color: type: string needs_approval: type: boolean maximum_absent: type: boolean leave_unit: type: string enum: - days - half_days - hours - minutes_30 - minutes_15 - minutes_10 - minutes_5 - minutes_1 position: type: number take_from_allowance: type: boolean privacy_hide_leavetype: type: boolean outlook_synchronization_show_as: type: string enum: - free - tentative - busy - oof - workingElsewhere - unknown outlook_synchronization_subject: anyOf: - type: string - type: 'null' icon: type: string enum: - NoIcon - Umbrella - Anchor - Archive - Award - Briefcase - Calendar - Cast - Clock - Coffee - Compass - Battery - Emoji - Gift - Frown - Image - Sun - Zap - Home - Users reason_mandatory: type: boolean reason_hint_text: anyOf: - type: string - type: 'null' allowance_type_id: anyOf: - type: string - type: 'null' ignore_schedule: type: boolean sync_option: type: string enum: - Disabled - All - OnlyApproved ignore_public_holidays: type: boolean reason_visibility_public: type: boolean counts_as_leave: default: true type: boolean required: - name - color - needs_approval - maximum_absent - leave_unit - position - take_from_allowance - privacy_hide_leavetype - outlook_synchronization_show_as - outlook_synchronization_subject - icon - reason_mandatory - reason_hint_text - allowance_type_id - ignore_schedule - sync_option - ignore_public_holidays - reason_visibility_public responses: '200': description: Successful response content: application/json: schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /leave_types/{id}: get: operationId: leaveTypes-getLeaveTypeById summary: Absentify Read a Leave Type by Id description: Read a leave type by id tags: - Leave types security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true responses: '200': description: Successful response content: application/json: schema: anyOf: - type: object properties: id: type: string name: type: string createdAt: type: string updatedAt: type: string color: type: string icon: type: string needs_approval: type: boolean deleted: type: boolean deleted_at: anyOf: - type: string - type: 'null' deleted_by: anyOf: - type: object properties: id: type: string name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - name - email additionalProperties: false - type: 'null' maximum_absent: type: boolean leave_unit: type: string enum: - days - half_days - hours - minutes_30 - minutes_15 - minutes_10 - minutes_5 - minutes_1 position: type: number take_from_allowance: type: boolean privacy_hide_leavetype: type: boolean outlook_synchronization_show_as: type: string enum: - free - tentative - busy - oof - workingElsewhere - unknown outlook_synchronization_subject: anyOf: - type: string - type: 'null' allowance_type: anyOf: - type: object properties: id: type: string name: type: string ignore_allowance_limit: type: boolean allowance_unit: type: string enum: - days - hours required: - id - name - ignore_allowance_limit - allowance_unit additionalProperties: false - type: 'null' counts_as_leave: type: boolean required: - id - name - createdAt - updatedAt - color - icon - needs_approval - deleted - deleted_at - deleted_by - maximum_absent - leave_unit - position - take_from_allowance - privacy_hide_leavetype - outlook_synchronization_show_as - outlook_synchronization_subject - allowance_type - counts_as_leave additionalProperties: false - type: 'null' '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: leaveTypes-updateLeaveType summary: Absentify Update a Leave Type description: Update a leave type tags: - Leave types security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 255 color: type: string needs_approval: type: boolean maximum_absent: type: boolean leave_unit: type: string enum: - days - half_days - hours - minutes_30 - minutes_15 - minutes_10 - minutes_5 - minutes_1 position: type: integer minimum: -9007199254740991 maximum: 9007199254740991 take_from_allowance: type: boolean privacy_hide_leavetype: type: boolean outlook_synchronization_show_as: type: string enum: - free - tentative - busy - oof - workingElsewhere - unknown outlook_synchronization_subject: anyOf: - type: string - type: 'null' icon: type: string enum: - NoIcon - Umbrella - Anchor - Archive - Award - Briefcase - Calendar - Cast - Clock - Coffee - Compass - Battery - Emoji - Gift - Frown - Image - Sun - Zap - Home - Users reason_mandatory: type: boolean reason_hint_text: anyOf: - type: string - type: 'null' allowance_type_id: anyOf: - type: string - type: 'null' sync_option: type: string enum: - Disabled - All - OnlyApproved counts_as_leave: type: boolean responses: '200': description: Successful response content: application/json: schema: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ - type: 'null' '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: leaveTypes-DeleteLeaveTypeById summary: Absentify Delete a Leave Type description: Delete a leave type tags: - Leave types security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true - in: query name: deleted schema: type: boolean required: true - in: query name: deleted_by_member_id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true responses: '200': description: Successful response content: application/json: schema: type: 'null' '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /leave_types/{id}/restore: put: operationId: leaveTypes-restoreLeaveType summary: Absentify Restore an Archived Leave Type description: Restore an archived leave type to make it available for user selection in the UI again tags: - Leave types security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true responses: '200': description: Successful response content: application/json: schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /workspace: get: operationId: workspace-getCurrentWorkspace summary: Absentify Get Current Workspace Settings description: Get current workspace settings tags: - Workspace security: - ApiKey: [] parameters: [] responses: '200': description: Successful response content: application/json: schema: type: object properties: id: type: string createdAt: type: string global_date_format: type: string global_language: type: string global_time_format: type: string enum: - H12 - H24 global_timezone: type: string global_week_start: type: string global_name_format: type: string enum: - Microsoft_DisplayName - First - Last - FirstLast - LastFirst name: type: string updatedAt: type: string privacy_show_calendarview: type: boolean privacy_show_otherdepartments: type: boolean privacy_show_absences_in_past: type: boolean fiscal_year_start_month: type: integer minimum: 0 maximum: 11 required: - id - createdAt - global_date_format - global_language - global_time_format - global_timezone - global_week_start - global_name_format - name - updatedAt - privacy_show_calendarview - privacy_show_otherdepartments - privacy_show_absences_in_past - fiscal_year_start_month additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: workspace-updateSettings summary: Absentify Update the Workspace Settings description: Update the workspace settings tags: - Workspace security: - ApiKey: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 255 global_name_format: type: string enum: - Microsoft_DisplayName - First - Last - FirstLast - LastFirst privacy_show_calendarview: type: boolean privacy_show_otherdepartments: type: boolean privacy_show_absences_in_past: type: boolean display_logo: type: string enum: - ShowLogoAndName - ShowLogo allow_manager_past_request_cancellation: type: boolean fiscal_year_start_month: type: integer minimum: 0 maximum: 11 responses: '200': description: Successful response content: application/json: schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /public_holidays: get: operationId: publicHolidays-getPublicHolidays summary: Absentify Get All Public Holidays description: Get all public holidays tags: - Public holidays security: - ApiKey: [] parameters: [] responses: '200': description: Successful response content: application/json: schema: type: array items: type: object properties: id: type: string name: type: string createdAt: type: string updatedAt: type: string country_code: anyOf: - type: string - type: 'null' county_code: anyOf: - type: string - type: 'null' public_holiday_days: type: array items: type: object properties: id: type: string date: type: string year: type: number custom_value: type: boolean duration: type: string enum: - Morning - Afternoon - FullDay updatedAt: type: string createdAt: type: string public_holiday_day_languages: type: array items: type: object properties: id: type: string name: type: string language: type: string required: - id - name - language additionalProperties: false required: - id - date - year - custom_value - duration - updatedAt - createdAt - public_holiday_day_languages additionalProperties: false required: - id - name - createdAt - updatedAt - country_code - county_code - public_holiday_days additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /public_holidays/{id}: get: operationId: publicHolidays-getPublicHolidayById summary: Absentify Read a Public Holiday by Id description: Read a public holiday by id tags: - Public holidays security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true responses: '200': description: Successful response content: application/json: schema: anyOf: - type: object properties: id: type: string name: type: string createdAt: type: string updatedAt: type: string country_code: anyOf: - type: string - type: 'null' county_code: anyOf: - type: string - type: 'null' public_holiday_days: type: array items: type: object properties: id: type: string date: type: string year: type: number custom_value: type: boolean duration: type: string enum: - Morning - Afternoon - FullDay updatedAt: type: string createdAt: type: string public_holiday_day_languages: type: array items: type: object properties: id: type: string name: type: string language: type: string required: - id - name - language additionalProperties: false required: - id - date - year - custom_value - duration - updatedAt - createdAt - public_holiday_day_languages additionalProperties: false required: - id - name - createdAt - updatedAt - country_code - county_code - public_holiday_days additionalProperties: false - type: 'null' '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /requests: get: operationId: request-getRequests summary: Absentify Get All Requests description: Get all requests tags: - Requests security: - ApiKey: [] parameters: - in: query name: start schema: type: string required: true - in: query name: end schema: type: string required: true - in: query name: status schema: type: string enum: - PENDING - APPROVED - DECLINED - CANCELED - in: query name: request_member_ids schema: type: string - in: query name: department_ids schema: type: string responses: '200': description: Successful response content: application/json: schema: type: array items: anyOf: - type: object properties: id: type: string createdAt: type: string updatedAt: type: string end: type: string start: type: string start_at: type: string enum: - morning - afternoon end_at: type: string enum: - lunchtime - end_of_day leave_unit: type: string enum: - days - half_days - hours - minutes_30 - minutes_15 - minutes_10 - minutes_5 - minutes_1 request_creator_member: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - custom_id - name - email additionalProperties: false - type: 'null' leave_type: type: object properties: name: type: string id: type: string leave_unit: type: string enum: - days - half_days - hours - minutes_30 - minutes_15 - minutes_10 - minutes_5 - minutes_1 required: - name - id - leave_unit additionalProperties: false approval_process: type: string enum: - Linear_all_have_to_agree - Linear_one_has_to_agree - Parallel_all_have_to_agree - Parallel_one_has_to_agree cancel_reason: anyOf: - type: string - type: 'null' canceld_by_member: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - custom_id - name - email additionalProperties: false - type: 'null' requester_member: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - custom_id - name - email additionalProperties: false - type: 'null' reason: anyOf: - type: string - type: 'null' take_from_allowance: type: boolean allowance_type: anyOf: - type: object properties: id: type: string name: type: string ignore_allowance_limit: type: boolean allowance_unit: type: string enum: - days - hours required: - id - name - ignore_allowance_limit - allowance_unit additionalProperties: false - type: 'null' workday_absence_duration: type: number duration: type: number status: type: string canceld_date: anyOf: - type: string - type: 'null' request_approvers: type: array items: type: object properties: reason: anyOf: - type: string - type: 'null' status: type: string enum: - PENDING - APPROVED - DECLINED - CANCELED - APPROVED_BY_ANOTHER_MANAGER - DECLINED_BY_ANOTHER_MANAGER - CANCELED_BY_ANOTHER_MANAGER status_changed_by_member: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - custom_id - name - email additionalProperties: false - type: 'null' status_changed_date: anyOf: - type: string - type: 'null' approver_member: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - custom_id - name - email additionalProperties: false - type: 'null' required: - reason - status - status_changed_by_member - status_changed_date - approver_member additionalProperties: false required: - id - createdAt - updatedAt - end - start - start_at - end_at - leave_unit - request_creator_member - leave_type - approval_process - cancel_reason - canceld_by_member - requester_member - reason - take_from_allowance - allowance_type - workday_absence_duration - duration - status - canceld_date - request_approvers additionalProperties: false - type: 'null' '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: request-createRequest summary: Absentify Create a Request description: 'Create a leave request. **Date/Time Format:** All dates must be in ISO 8601 format with UTC timezone (e.g., ''2024-01-15T09:00:00Z''). **Day-based leave types (leave_unit: days):** - Use start_at: ''morning'' or ''afternoon'' to specify when the absence starts - Use end_at: ''lunchtime'' or ''end_of_day'' to specify when the absence ends - Example full day: start=''2024-01-15T00:00:00Z'', end=''2024-01-15T00:00:00Z'', start_at=''morning'', end_at=''end_of_day'' - Example half day (morning): start=''2024-01-15T00:00:00Z'', end=''2024-01-15T00:00:00Z'', start_at=''morning'', end_at=''lunchtime'' **Hour-based leave types (leave_unit: hours):** - Include the exact time in the start and end timestamps - The start_at and end_at parameters are ignored - Example: start=''2024-01-15T09:00:00Z'', end=''2024-01-15T12:30:00Z'' for a 9:00-12:30 UTC absence' tags: - Requests security: - ApiKey: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: end: type: string start: type: string start_at: type: string enum: - morning - afternoon end_at: type: string enum: - lunchtime - end_of_day leave_type_id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ reason: type: string requester_member_id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: - end - start - leave_type_id - requester_member_id responses: '200': description: Successful response content: application/json: schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /requests_per_day: get: operationId: request-getRequestsPerDay summary: Absentify Get All Requests Per Day description: Get all requests per day tags: - Requests security: - ApiKey: [] parameters: - in: query name: start schema: type: string required: true - in: query name: end schema: type: string required: true - in: query name: status schema: type: string enum: - PENDING - APPROVED - DECLINED - CANCELED - in: query name: request_member_ids schema: type: string - in: query name: department_ids schema: type: string responses: '200': description: Successful response content: application/json: schema: type: array items: anyOf: - type: object properties: id: type: string createdAt: type: string updatedAt: type: string end: type: string start: type: string start_at: type: string enum: - morning - afternoon end_at: type: string enum: - lunchtime - end_of_day leave_unit: type: string enum: - days - half_days - hours - minutes_30 - minutes_15 - minutes_10 - minutes_5 - minutes_1 day: type: string month: type: string weekday: type: string fullday: type: string request_creator_member: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - custom_id - name - email additionalProperties: false - type: 'null' leave_type: type: object properties: name: type: string id: type: string leave_unit: type: string enum: - days - half_days - hours - minutes_30 - minutes_15 - minutes_10 - minutes_5 - minutes_1 required: - name - id - leave_unit additionalProperties: false approval_process: type: string enum: - Linear_all_have_to_agree - Linear_one_has_to_agree - Parallel_all_have_to_agree - Parallel_one_has_to_agree cancel_reason: anyOf: - type: string - type: 'null' canceld_by_member: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - custom_id - name - email additionalProperties: false - type: 'null' requester_member: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - custom_id - name - email additionalProperties: false - type: 'null' reason: anyOf: - type: string - type: 'null' take_from_allowance: type: boolean allowance_type: anyOf: - type: object properties: id: type: string name: type: string ignore_allowance_limit: type: boolean allowance_unit: type: string enum: - days - hours required: - id - name - ignore_allowance_limit - allowance_unit additionalProperties: false - type: 'null' workday_absence_duration: type: number duration: type: number status: type: string canceld_date: anyOf: - type: string - type: 'null' request_approvers: type: array items: type: object properties: reason: anyOf: - type: string - type: 'null' status: type: string enum: - PENDING - APPROVED - DECLINED - CANCELED - APPROVED_BY_ANOTHER_MANAGER - DECLINED_BY_ANOTHER_MANAGER - CANCELED_BY_ANOTHER_MANAGER status_changed_by_member: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - custom_id - name - email additionalProperties: false - type: 'null' status_changed_date: anyOf: - type: string - type: 'null' approver_member: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - custom_id - name - email additionalProperties: false - type: 'null' required: - reason - status - status_changed_by_member - status_changed_date - approver_member additionalProperties: false required: - id - createdAt - updatedAt - end - start - start_at - end_at - leave_unit - day - month - weekday - fullday - request_creator_member - leave_type - approval_process - cancel_reason - canceld_by_member - requester_member - reason - take_from_allowance - allowance_type - workday_absence_duration - duration - status - canceld_date - request_approvers additionalProperties: false - type: 'null' '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /requests/{id}: get: operationId: request-getRequestById summary: Absentify Read a Request by Id description: Read a request by id tags: - Requests security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true responses: '200': description: Successful response content: application/json: schema: anyOf: - type: object properties: id: type: string createdAt: type: string updatedAt: type: string end: type: string start: type: string start_at: type: string enum: - morning - afternoon end_at: type: string enum: - lunchtime - end_of_day leave_unit: type: string enum: - days - half_days - hours - minutes_30 - minutes_15 - minutes_10 - minutes_5 - minutes_1 request_creator_member: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - custom_id - name - email additionalProperties: false - type: 'null' leave_type: type: object properties: name: type: string id: type: string leave_unit: type: string enum: - days - half_days - hours - minutes_30 - minutes_15 - minutes_10 - minutes_5 - minutes_1 required: - name - id - leave_unit additionalProperties: false approval_process: type: string enum: - Linear_all_have_to_agree - Linear_one_has_to_agree - Parallel_all_have_to_agree - Parallel_one_has_to_agree cancel_reason: anyOf: - type: string - type: 'null' canceld_by_member: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - custom_id - name - email additionalProperties: false - type: 'null' requester_member: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - custom_id - name - email additionalProperties: false - type: 'null' take_from_allowance: type: boolean allowance_type: anyOf: - type: object properties: id: type: string name: type: string ignore_allowance_limit: type: boolean allowance_unit: type: string enum: - days - hours required: - id - name - ignore_allowance_limit - allowance_unit additionalProperties: false - type: 'null' reason: anyOf: - type: string - type: 'null' workday_absence_duration: type: number duration: type: number status: type: string canceld_date: anyOf: - type: string - type: 'null' request_approvers: type: array items: type: object properties: reason: anyOf: - type: string - type: 'null' status: type: string enum: - PENDING - APPROVED - DECLINED - CANCELED - APPROVED_BY_ANOTHER_MANAGER - DECLINED_BY_ANOTHER_MANAGER - CANCELED_BY_ANOTHER_MANAGER status_changed_by_member: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - custom_id - name - email additionalProperties: false - type: 'null' status_changed_date: anyOf: - type: string - type: 'null' approver_member: anyOf: - type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - custom_id - name - email additionalProperties: false - type: 'null' predecessor_request_member_approver_id: anyOf: - type: string - type: 'null' required: - reason - status - status_changed_by_member - status_changed_date - approver_member - predecessor_request_member_approver_id additionalProperties: false required: - id - createdAt - updatedAt - end - start - start_at - end_at - leave_unit - request_creator_member - leave_type - approval_process - cancel_reason - canceld_by_member - requester_member - take_from_allowance - allowance_type - reason - workday_absence_duration - duration - status - canceld_date - request_approvers additionalProperties: false - type: 'null' '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /requests/recurring: post: operationId: request-createRecurringRequests summary: Absentify Create Recurring Requests description: Create multiple recurring requests based on a recurrence pattern tags: - Requests security: - ApiKey: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: leave_type_id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ requester_member_id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ reason: type: string repeat: type: string enum: - daily - weekly - monthly interval: type: integer minimum: 1 maximum: 100 from: type: string until: anyOf: - type: string - type: 'null' count: anyOf: - type: integer minimum: 1 maximum: 365 - type: 'null' start_time: type: object properties: hour: type: integer minimum: 0 maximum: 23 minute: type: integer minimum: 0 maximum: 59 required: - hour - minute end_time: type: object properties: hour: type: integer minimum: 0 maximum: 23 minute: type: integer minimum: 0 maximum: 59 required: - hour - minute half_day: type: string enum: - full_day - morning - afternoon weekDays: anyOf: - type: string - type: 'null' day: anyOf: - anyOf: - type: integer minimum: 1 maximum: 31 - type: string - type: 'null' month: anyOf: - type: integer minimum: 1 maximum: 12 - type: 'null' pos: anyOf: - anyOf: - type: integer minimum: -1 maximum: 5 - type: string - type: 'null' exDates: type: array items: type: string files: type: array items: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ representative_member_ids: type: array items: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ ignoreMaximumAbsence: type: boolean admin_approval_option: type: string enum: - approve_request_immediately - go_through_the_normal_approval_process required: - leave_type_id - requester_member_id - repeat - interval - from - until - count - weekDays - day - month - pos responses: '200': description: Successful response content: application/json: schema: type: object properties: created: type: number requestIds: type: array items: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ recurrenceId: type: string required: - created - requestIds - recurrenceId additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /requests/{id}/approve: post: operationId: request-approveRequest summary: Absentify Approve a Request description: Approve a pending request on behalf of the user who created the API token. The API automatically finds the next pending approval and approves it. tags: - Requests security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true responses: '200': description: Successful response content: application/json: schema: type: object properties: success: type: boolean message: type: string required: - success - message additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /requests/{id}/decline: post: operationId: request-declineRequest summary: Absentify Decline a Request description: Decline a pending request on behalf of the user who created the API token. The API automatically finds the next pending approval and declines it with the provided reason. tags: - Requests security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true requestBody: required: true content: application/json: schema: type: object properties: decline_reason: type: string minLength: 1 required: - decline_reason responses: '200': description: Successful response content: application/json: schema: type: object properties: success: type: boolean message: type: string required: - success - message additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /requests/{id}/approve_representative: post: operationId: request-approveRequestRepresentative summary: Absentify Approve a Request as a Representative description: Approve a request as a representative/substitute on behalf of the user who created the API token. The API automatically finds the pending representative approval. tags: - Requests security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true responses: '200': description: Successful response content: application/json: schema: type: object properties: success: type: boolean message: type: string required: - success - message additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /requests/{id}/decline_representative: post: operationId: request-declineRequestRepresentative summary: Absentify Decline a Request as a Representative description: Decline a request as a representative/substitute on behalf of the user who created the API token. The API automatically finds the pending representative approval. tags: - Requests security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true requestBody: required: true content: application/json: schema: type: object properties: reason: type: string minLength: 1 responses: '200': description: Successful response content: application/json: schema: type: object properties: success: type: boolean message: type: string required: - success - message additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /requests/{id}/cancel: post: operationId: request-cancelRequest summary: Absentify Cancel a Request description: Cancel a request on behalf of the user who created the API token. The user must be the requester, an admin, or a department manager with appropriate permissions. tags: - Requests security: - ApiKey: [] parameters: - in: path name: id schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ required: true requestBody: required: true content: application/json: schema: type: object properties: cancel_reason: type: string minLength: 1 required: - cancel_reason responses: '200': description: Successful response content: application/json: schema: type: object properties: success: type: boolean message: type: string required: - success - message additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK /absences_per_day: get: operationId: absences-getAbsencesPerDay summary: Absentify Get All Requests and Public Holiday Per Member Per Day description: Get all requests and public holiday per member per day tags: - Absences security: - ApiKey: [] parameters: - in: query name: start schema: type: string required: true - in: query name: end schema: type: string required: true - in: query name: request_member_ids schema: type: string - in: query name: department_ids schema: type: string responses: '200': description: Successful response content: application/json: schema: type: array items: anyOf: - type: object properties: type: type: string enum: - request - public_holiday member: type: object properties: id: type: string custom_id: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' email: anyOf: - type: string - type: 'null' required: - id - custom_id - name - email additionalProperties: false date: type: string start_at: anyOf: - type: string enum: - morning - afternoon - type: 'null' end_at: anyOf: - type: string enum: - lunchtime - end_of_day - type: 'null' request: anyOf: - type: object properties: id: type: string duration: type: number workday_absence_duration: type: number status: anyOf: - type: string - type: 'null' take_from_allowance: type: boolean allowance_type: anyOf: - type: object properties: id: type: string name: type: string ignore_allowance_limit: type: boolean allowance_unit: type: string enum: - days - hours required: - id - name - ignore_allowance_limit - allowance_unit additionalProperties: false - type: 'null' leave_type: anyOf: - type: object properties: name: type: string id: anyOf: - type: string - type: 'null' leave_unit: type: string enum: - days - half_days - hours - minutes_30 - minutes_15 - minutes_10 - minutes_5 - minutes_1 required: - name - id - leave_unit additionalProperties: false - type: 'null' required: - id - duration - workday_absence_duration - status - take_from_allowance - allowance_type - leave_type additionalProperties: false - type: 'null' public_holiday_day: anyOf: - type: object properties: id: type: string duration: type: string names: type: array items: type: object properties: language: type: string name: type: string required: - language - name additionalProperties: false required: - id - duration - names additionalProperties: false - type: 'null' required: - type - member - date - start_at - end_at - request - public_holiday_day additionalProperties: false - type: 'null' '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: error.BAD_REQUEST: title: Invalid input data error (400) description: The error information example: code: BAD_REQUEST message: Invalid input data issues: [] type: object properties: message: description: The error message example: Invalid input data type: string code: description: The error code example: BAD_REQUEST type: string issues: description: An array of issues that were responsible for the error example: [] type: array items: type: object properties: message: type: string required: - message additionalProperties: false required: - message - code additionalProperties: false error.UNAUTHORIZED: title: Authorization not provided error (401) description: The error information example: code: UNAUTHORIZED message: Authorization not provided issues: [] type: object properties: message: description: The error message example: Authorization not provided type: string code: description: The error code example: UNAUTHORIZED type: string issues: description: An array of issues that were responsible for the error example: [] type: array items: type: object properties: message: type: string required: - message additionalProperties: false required: - message - code additionalProperties: false error.FORBIDDEN: title: Insufficient access error (403) description: The error information example: code: FORBIDDEN message: Insufficient access issues: [] type: object properties: message: description: The error message example: Insufficient access type: string code: description: The error code example: FORBIDDEN type: string issues: description: An array of issues that were responsible for the error example: [] type: array items: type: object properties: message: type: string required: - message additionalProperties: false required: - message - code additionalProperties: false error.NOT_FOUND: title: Not found error (404) description: The error information example: code: NOT_FOUND message: Not found issues: [] type: object properties: message: description: The error message example: Not found type: string code: description: The error code example: NOT_FOUND type: string issues: description: An array of issues that were responsible for the error example: [] type: array items: type: object properties: message: type: string required: - message additionalProperties: false required: - message - code additionalProperties: false error.INTERNAL_SERVER_ERROR: title: Internal server error error (500) description: The error information example: code: INTERNAL_SERVER_ERROR message: Internal server error issues: [] type: object properties: message: description: The error message example: Internal server error type: string code: description: The error code example: INTERNAL_SERVER_ERROR type: string issues: description: An array of issues that were responsible for the error example: [] type: array items: type: object properties: message: type: string required: - message additionalProperties: false required: - message - code additionalProperties: false Member: title: Member description: A member (employee) in the absentify workspace. type: object properties: id: type: string description: Unique identifier of the member. example: '500123' custom_id: type: string description: Custom identifier for the member. example: EMP001 name: type: string description: Name of the member. example: Jane Smith email: type: string format: email description: Email address of the member. example: jsmith@example.com status: type: string description: Current status of the member. example: ACTIVE is_admin: type: boolean description: Whether the member is an admin. example: false approval_process: type: string description: Approval process type for this member. example: CUSTOM employment_start_date: type: string format: date description: Employment start date. example: '2024-01-15' employment_end_date: type: string format: date nullable: true description: Employment end date if applicable. example: birthday: type: string format: date nullable: true description: Birthday of the member. example: '1990-06-15' createdAt: type: string format: date-time description: Timestamp when the member was created. example: '2025-03-15T14:30:00Z' updatedAt: type: string format: date-time description: Timestamp when the member was last updated. example: '2025-06-01T09:00:00Z' Department: title: Department description: A department in the absentify workspace. type: object properties: id: type: string description: Unique identifier of the department. example: '500999' name: type: string description: Name of the department. example: Engineering createdAt: type: string format: date-time description: Timestamp when the department was created. example: '2025-01-01T00:00:00Z' updatedAt: type: string format: date-time description: Timestamp when the department was last updated. example: '2025-06-01T09:00:00Z' LeaveType: title: LeaveType description: A leave type defined in the absentify workspace. type: object properties: id: type: string description: Unique identifier of the leave type. example: '500789' name: type: string description: Name of the leave type. example: Vacation leave_unit: type: string description: Unit for this leave type (days or hours). example: DAYS color: type: string description: Color code for this leave type. example: '#4CAF50' icon: type: string description: Icon for this leave type. example: beach createdAt: type: string format: date-time description: Timestamp when the leave type was created. example: '2025-01-01T00:00:00Z' updatedAt: type: string format: date-time description: Timestamp when the leave type was last updated. example: '2025-06-01T09:00:00Z' Request: title: Request description: A leave request in absentify. type: object properties: id: type: string description: Unique identifier of the request. example: '500456' start: type: string format: date description: Start date of the request. example: '2025-06-01' start_at: type: string description: Time of day when the leave starts. example: morning end: type: string format: date description: End date of the request. example: '2025-06-05' end_at: type: string description: Time of day when the leave ends. example: afternoon status: type: string description: Current status of the request. example: APPROVED reason: type: string description: Reason for the leave request. example: Annual vacation duration: type: number description: Duration of the leave. example: 5 createdAt: type: string format: date-time description: Timestamp when the request was created. example: '2025-05-15T10:00:00Z' updatedAt: type: string format: date-time description: Timestamp when the request was last updated. example: '2025-05-16T09:00:00Z' PublicHolidayCalendar: title: PublicHolidayCalendar description: A public holiday calendar in absentify. type: object properties: id: type: string description: Unique identifier of the calendar. example: '500888' name: type: string description: Name of the public holiday calendar. example: United States Federal Holidays country: type: string description: Country code for the public holidays. example: US createdAt: type: string format: date-time description: Timestamp when the calendar was created. example: '2025-01-01T00:00:00Z' updatedAt: type: string format: date-time description: Timestamp when the calendar was last updated. example: '2025-06-01T09:00:00Z' Absence: title: Absence description: An absence entry for a specific date and member. type: object properties: id: type: string description: Unique identifier of the absence. example: '500321' date: type: string format: date description: Date of the absence. example: '2025-06-02' duration: type: number description: Duration of the absence (0.5 for half day, 1 for full day). example: 1 request_id: type: string description: ID of the associated leave request. example: '500456' Workspace: title: Workspace description: Workspace settings and configuration. type: object properties: id: type: string description: Unique identifier of the workspace. example: '500001' name: type: string description: Name of the workspace. example: Acme Corporation createdAt: type: string format: date-time description: Timestamp when the workspace was created. example: '2024-01-01T00:00:00Z' updatedAt: type: string format: date-time description: Timestamp when the workspace was last updated. example: '2025-06-01T09:00:00Z' securitySchemes: ApiKey: type: apiKey name: X-API-KEY in: header ApiKeyAuth: type: apiKey in: header name: x-api-key description: API key from your absentify account settings. Requires Plus plan.