---
x-topics:
- title: Registering an application
  content: Contact your account manager to receive a `client_id` and `client_secret`
    with the desired scopes.
- title: Requests and responses
  content: |-
    # Requests

    ## Array query parameters

    Array query parameters should be passed using the following syntax:

    `name[]=value1&name[]=value2`

    Note that in case of an array containing a single value the syntax is `name[]=value`. The syntax `name=value` will not be accepted.

    ## Object query parameters

    Object query parameters should be passed using the following syntax:

    `location[latitude]=value&location[longitude]=value`

    ## Request body

    All API request bodies should contain JSON strings where relevant and should be accompanied by the corresponding `Content-Type: application/json` header.

    # Responses

    ## Response body

    All successful API response bodies (having a response code 2xx) will contain a `data` object where the actual results of the request can be found.
    Endpoints that support [pagination](../topic/topic-pagination) will also contain a `meta` object where pagination data can be found.

    In case of a non-successful response, the response body will contain an `errors` array.

    ## Error response codes
    A `400` response code indicates a malformed request. The request should not be retried without changes.

    A `401` response code indicates an unauthorized request. This response can be expected when the `Authorization` header value is invalid, expired or missing. The request should not be retried with the same `Authorization` header value.

    A `403` response code indicates a forbidden request. The provided `Authorization` header value is valid but the request is prohibited due to other permission restrictions (e.g., missing scopes or organizational settings).

    A `404` response code indicates a resource that cannot be found. This response code will be returned in case of a non-existent URL being used or a non-existent resource ID being used in a valid URL structure.

    A `405` response code indicates that the HTTP method being used is not supported for the target URL. The request should not be retried without changes.

    A `409` response code indicates a conflict, caused by concurrent operations, that resulted in a situation where the requested operation could not be performed simultaneously with another operation. The request can be retried without changes but will most likely result in another error response code.

    A `422` response code indicates a failed business validation. More information on the business validation concerned can be found in [Error codes](../topic/topic-error-codes) by looking up the specific error code mentioned in the `errors` array in the response body.

    A `429` response code indicates that too many requests were sent in a given amount of time. See [Rate limiting](../topic/topic-rate-limiting).

    Any other response code can be considered unexpected and can be reported to [support_engage@pexip.com](mailto:support_engage@pexip.com).
- title: Languages & translations
  content: |-
    # Languages

    When indicating a specific language, one of the following supported languages can be used:

    * `en`
    * `nl`
    * `fr`
    * `de`
    * `no`
    * `da`
    * `es`
    * `el`

    These language codes are compliant with the [ISO-639-1 language codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).

    # Translatable resources

    The API can be localized by passing a "language tag" in the [`Accept-Language` header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language) in requests, as described in [RFC-5646](https://tools.ietf.org/html/rfc5646). This will result in translatable resources being returned in the requested language, if available.

    When the requested language is not available, the property will be returned as `null`.

    ## Fallback mechanisms

    When the `*` wildcard is passed in the `Accept-Language` header or no `Accept-Language` header is provided at all, the content will be returned in the default enterprise language, if available.

    When the content is not available in the default enterprise language, it will be returned in any available language.

    When the content is not available in any language, the property will be returned as `null`.
- title: Countries
  content: When indicating a specific country, a country code that is compliant with
    [ISO-3166-1 alpha-2 country codes](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
    should be used.
- title: Dates & time
  content: |-
    # Formats

    For specific points in time (often referred to as DateTimes), string that are compliant with [RFC-3339](https://www.rfc-editor.org/rfc/rfc3339) can be used.

    Note that there are some restrictions that apply:
    * Only the `T` separator is supported (not a lowercased `t` or a whitespace or any other character)
    * The "unknown offset" `-00:00` is not supported

    For dates (without a specific time indication), the same format as the date section of [RFC-3339](https://www.rfc-editor.org/rfc/rfc3339) can be used, e.g. `2022-08-17`.

    For times (without a specific date indication), the military time format (`HH:mm`) can be used, e.g. `19:05`.

    # Time zones

    The Pexip Engage REST API supports time zone formats according to the [IANA Time Zone Database format](https://www.iana.org/time-zones), but not necessarily the latest version.
- title: Collection resource properties
  content: |-
    When a resource has a property that is a collection, this collection can also be modified. Although making a `PATCH` request allows to pass only specific properties that need to be changed, passing such a collection property in a `PATCH` request will replace the entire collection. This means that it is not possible to add/update/remove specific items in the collection.

    Taking the [Form questions endpoints](../operation/operation-getformquestions) as an example, a `GET /forms/123/questions/456` response might look as follows:
    ```json
    {
      "data": {
        "id": "456",
        "inputType": "SELECT",
        "order": 5,
        "required": true,
        "label": {
          "language": "en",
          "value": "Marital status"
        },
        ...
        "answerOptions": [
          {
            "label": {
              "language": "en",
              "value": "Single"
            },
            "value": "single",
            "externalId": null,
            "order": 0,
            "translations": {
              "label": [
                {
                  "language": "en",
                  "value": "Single"
                },
                {
                  "language": "nl",
                  "value": "Alleenstaand"
                }
              ]
            }
          },
          {
            "label": {
              "language": "en",
              "value": "Married"
            },
            "value": "married",
            "externalId": null,
            "order": 1,
            "translations": {
              "label": [
                {
                  "language": "en",
                  "value": "Married"
                },
                {
                  "language": "nl",
                  "value": "Getrouwd"
                }
              ]
            }
          }
        ]
      }
    }
    ```

    A `PATCH /forms/123/questions/456` request body to make the question optional and add an answer option should be made as follows:

    ```json
    {
      "required": false,
      "answerOptions": [
        {
          "label": {
            "language": "en",
            "value": "Single"
          },
          "value": "single",
          "externalId": null,
          "order": 0,
          "translations": {
            "label": [
              {
                "language": "en",
                "value": "Single"
              },
              {
                "language": "nl",
                "value": "Alleenstaand"
              }
            ]
          }
        },
        {
          "label": {
            "language": "en",
            "value": "Married"
          },
          "value": "married",
          "externalId": null,
          "order": 1,
          "translations": {
            "label": [
              {
                "language": "en",
                "value": "Married"
              },
              {
                "language": "nl",
                "value": "Getrouwd"
              }
            ]
          }
        },
        {
          "label": {
            "language": "en",
            "value": "Widowed"
          },
          "value": "widowed",
          "externalId": null,
          "order": 2,
          "translations": {
            "label": [
              {
                "language": "en",
                "value": "Widowed"
              },
              {
                "language": "nl",
                "value": "Verweduwd"
              }
            ]
          }
        }
      ]
    }
    ```

    Note that even though the first two answer options remained untouched, they still need to be provided in the request because of the behavior of the `PATCH` operation on collection properties (replacement of the entire collection).
- title: Pagination
  content: |-
    Most endpoints that return lists of data allow to pass an `offset` and `limit` for pagination, where the `offset` is a zero-based record index in the result set. Note that these endpoints will set the `offset` to `0` and the `limit` to `25` by default, unless specified otherwise.

    When pagination is used, the following information is added as a `meta` object in the response:

    ```json
    "meta": {
      "offset": 0,
      "limit": 25,
      "totalCount": 500
    }
    ```
- title: Eventual consistency
  content: |-
    Pexip Engage uses a distributed architecture to provide a performant, scalable and resilient platform on which customers can rely. This means that the system processes requests across multiple servers, and data updates may not be immediately consistent across all servers. Rather than strong (immediate) consistency, the API guarantees [eventual consistency](https://en.wikipedia.org/wiki/Eventual_consistency).

    Eventual consistency is a model where all updates to data will eventually be consistent, but it may take some time for all servers to have the updated data. This is because data updates are made asynchronously across the distributed system, and different servers may have different versions of the data at different times.

    When using the API, developers should take into account that data consistency may not be immediate across all servers. Developers should design their applications to tolerate this eventual consistency, by avoiding assumptions about the data's state or using strategies such as retries when necessary.

    Taking the [Create subjects endpoint](../operation/operation-createsubject) and [Update subject scheduling settings endpoint](../operation/operation-updatesubjectschedulingsettings) as an example for provisioning a subject with some corresponding scheduling settings.

    The two endpoints mentioned must be called for this purpose:
    1. Create a subject using the [Create subjects endpoint](../operation/operation-createsubject) endpoint.

        A `POST /subjects` request with request body

        ```json
        {
          "translations": {
            "name": [
              {
                "language": "en",
                "value": "My subject"
              }
            ]
          },
          "subjectGroupId": "123",
        }
        ```

        which returns

        ```json
        {
          "id": "456"
        }
        ```

    2. Patch the scheduling settings using the [Update subject scheduling settings endpoint](../operation/operation-updatesubjectschedulingsettings) endpoint.

        A `PUT /subjects/456/scheduling-settings` request with request body

        ```json
        [
          {
            "meetingType": "OFFICE"
          },
          {
            "meetingType": "PHONE"
          }
        ]
        ```

    It cannot be assumed that the server processing the second API call immediately knows about the newly created subject from the first API call. Such an assumption could cause the second API call to unexpectedly fail due to an unhandled error.

    To adequately deal with this situation, a retry mechanism could be implemented. Such a mechanism can then respond to an error resulting from the second API call by waiting a while before trying again. If the error persists, you can respond by waiting a little longer before trying again. This can be repeated until a certain limit is reached and an error is thrown. See also [exponential backoff](https://en.wikipedia.org/wiki/Exponential_backoff).
- title: Rate limiting
  content: |-
    The Pexip Engage REST API implements [rate limiting](https://en.wikipedia.org/wiki/Rate_limiting) as a way to ensure stability, reliability, and security. This means that developers need to keep in mind that there are limits to the number of requests that can be made in a given period of time.

    The specific rate limits for our API are subject to change and may vary depending on the specific endpoint being accessed. Currently, a maximum of 3,000 requests per minute and 4 concurrent requests are allowed from a single IP address.

    When a rate limit is exceeded, the API will respond with a `429` HTTP status code.

    To cope with rate limiting, the following measures can be taken:
    * Implement queuing to perform API calls asynchronously in a sequential order (e.g., using RabbitMQ, Apache Kafka, ...)
    * Implement [exponential backoff](https://en.wikipedia.org/wiki/Exponential_backoff) to handle rate limiting errors
- title: File uploading
  content: |-
    Uploading a file related to a resource is done in three steps:

    1. Get a file URL and corresponding authorized file upload URL
    2. Upload the file
    3. Update the relevant resource property with the file URL

    Taking the employee profile picture as an example, the following steps should be done:

    1. Get a file URL and the corresponding upload authorization using the [Get authorized profile picture upload URL endpoint](../operation/operation-getauthorizedprofilepictureurl) endpoint.

        A `GET /employees/profile-picture-url?file-name=my_picture.png` request returns

        ```json
        {
          "data": {
            "url": "https://pexipengage.blob.core.windows.net/acme/231734f7-8ac6-4a81-8bf9-9ed9820ccd4f-my_picture.png",
            "authorizedUrl": "https://pexipengage.blob.core.windows.net/acme/231734f7-8ac6-4a81-8bf9-9ed9820ccd4f-my_picture.png?sv=2019-07-07&ss=b&srt=c&sp=w&se=2023-04-30T00%3A00%3A00Z&st=2023-04-17T00%3A00%3A00Z&spr=https&sig=your_signature"
          }
        }
        ```

    2. Upload the file to the received `authorizedUrl`

        A `PUT` request with the binary file in the request body. Also add the the following request header `x-ms-blob-type: BlockBlob`.

    3. Update the employee `profilePictureUrl` property using the [Update an employee](../operation/operation-updateemployeebyid) endpoint.

        A `PATCH /employees/1234` request with request body

        ```json
        {
          "profilePictureUrl": "https://pexipengage.blob.core.windows.net/acme/231734f7-8ac6-4a81-8bf9-9ed9820ccd4f-my_picture.png"
        }
        ```

        which contains the received `url` from the first step.
- title: Error codes
  content: |-
    Below, a list of error codes that can be received as part of an error response with the `422` response code, indicating a failed business validation.

    | Code | Parameters | Description |
    | --- | --- | --- |
    | `ANSWER_SELECTED_OPTIONS_FOR_NON_SELECTION_TYPE` | | Cannot provide selected answer options for a question that is not of input type `SELECT` or `MULTI_SELECT`. |
    | `ANSWER_VALUE_FOR_SELECTION_TYPE` | | Cannot provide single answer value for a question with input type `SELECT` or `MULTI_SELECT`. |
    | `APPLIED_TEMPLATE_DEFAULT_TEMPLATE` | | The default availability template cannot be applied. |
    | `APPLIED_TEMPLATE_OVERLAP` | `type`, `overlappingAppliedTemplateId` | The applied template overlaps with an existing applied template. |
    | `APPLIED_TEMPLATE_START_AFTER_END` | | The `endDate` must be greater than or equal to the `startDate` of an applied template. |
    | `APPOINTMENT_COMPLETION_TOO_EARLY` | `completionAllowedDaysBeforeStart` | Appointments cannot be completed earlier than a specific number of days before their start time. This number is configured in the enterprise settings. |
    | `APPOINTMENT_PRIMARY_CUSTOMER_MISSING` | | An appointment needs at least one `PRIMARY` `CUSTOMER` participant. |
    | `APPOINTMENT_PRIMARY_EMPLOYEE_MISSING` | | An appointment needs at least one `PRIMARY` `EMPLOYEE` participant. |
    | `APPOINTMENT_PRIMARY_PARTICIPANT_ADDED_OR_REMOVED` | | `PRIMARY` appointment participants cannot be added or removed. |
    | `APPOINTMENT_LOCATION_REQUIRED` | | An on-location appointment must have a location. |
    | `APPOINTMENT_NO_AVAILABILITY` | | No employees available on the chosen time slot. |
    | `APPOINTMENT_PARTICIPANTS_NOT_UNIQUE` | | Participants need to be unique. |
    | `APPOINTMENT_START_AFTER_END` | | The `end` must be strictly greater than the `start` of an appointment. |
    | `APPOINTMENT_STATUS_INVALID` | `allowedStates` | The operation cannot be performed on the appointment because the appointment status does not allow it. |
    | `APPOINTMENT_MEETING_TYPE_UPDATE_NOT_ALLOWED` | | The new meeting type must be different from the current meeting type. |
    | `AVAILABILITY_TEMPLATE_DEFAULT_TEMPLATE_MODIFICATION_NOT_ALLOWED` | | The default availability template cannot be modified. |
    | `AVAILABILITY_TIME_RANGE_DAY_TEMPLATE_WITH_DAY_OF_WEEK` | | The day of the week cannot be set on availability time ranges for `DAY` availability templates. |
    | `AVAILABILITY_TIME_RANGE_MAX_PER_DAY_EXCEEDED` | | The maximum amount of allowed time ranges per day (25) is reached. |
    | `AVAILABILITY_TIME_RANGE_START_AFTER_END` | | The `end` must be strictly greater than or equal to the `start` of an availability time range. |
    | `AVAILABILITY_TIME_RANGE_WEEK_TEMPLATE_WITHOUT_DAY_OF_WEEK` | | The day of the week must be set on availability time ranges for `WEEK` availability templates. |
    | `CUSTOMER_NOT_IDENTIFIABLE` | | A customer must have at least one of the following fields: `externalId`, `customerNumber`, `email`, `lastName`, `company`, `phoneNumber`. |
    | `EMPLOYEE_ALREADY_ACTIVE` | | The employee cannot be activated because it is already active. |
    | `EMPLOYEE_EMAIL_ALREADY_IN_USE` | | The provided email address for the employee is already in use for another employee. |
    | `EMPLOYEE_OFFICE_RELATION_ROLE_MISMATCH` | | The office relation roles should match the available employee roles. |
    | `EMPLOYEE_ONLINE_PLANNING_NON_AGENT` | | Online planning can only be enabled for `ACTIVE` employees with the `AGENT` role. |
    | `EMPLOYEE_SUSPENDED` | | The operation cannot be performed on the employe because the employee is `SUSPENDED`. |
    | `EMPLOYEE_UPDATE_STATUS_PENDING` | | Cannot set employee status to `PENDING`. |
    | `FETCH_CONFIGURATION_LINKED_TO_QUESTION_ON_DELETE` | | A fetch configuration can only be deleted if it is not linked to a question. |
    | `FILE_SCAN_MALICIOUS` | | The scan result of the file is malicious and can not be downloaded. |
    | `FILE_SCAN_PENDING` | | The scan result of the file is pending and can not be downloaded. |
    | `FILE_URL_INVALID` | | The provided URL for an uploaded file is invalid. |
    | `LEAD_SEGMENT_CODE_ALREADY_IN_USE` | | The provided code for the lead segment is already in use for another lead segment. |
    | `LISTING_TIME_SLOT_EMPLOYEE_NOT_LINKED` | `missingEmployees` | Employees assigned to a listing time slot must be linked to the parent listing. |
    | `LISTING_TIME_SLOT_OVERLAP` | | Listing time slots cannot overlap. |
    | `LOCATION_GEOCODING_FAILED` | | The geolocation could not be determined for the provided location. |
    | `LOCATION_TIME_ZONE_RESOLUTION_FAILED` | | An error occurred while determining the time zone for the given location. |
    | `QUESTION_FETCH_TYPE_WITHOUT_FETCH_CONFIGURATION` | | A question with input type `FETCH` should have a fetch configuration ID. |
    | `QUESTION_NON_FETCH_TYPE_WITH_FETCH_CONFIGURATION` | | Only a question with input type `FETCH` can have a fetch configuration ID. |
    | `QUESTION_NON_SELECTION_TYPE_WITH_ANSWER_OPTIONS` | | Answer options cannot be configured for a question that is not of type `SELECT` or `MULTI_SELECT`. |
    | `QUESTION_SELECTION_TYPE_WITHOUT_ANSWER_OPTIONS` | | A question with input type `SELECT` or `MULTI_SELECT` should have at least one answer option. |
    | `SETTING_APPOINTMENT_EARLIEST_LATEST_POSSIBLE_INVALID` | | The `appointmentLatestPossible` enterprise setting must be greater than or equal to `appointmentEarliestPossible`. |
    | `SETTING_MANAGEABILITY_MODIFICATION_NOT_ALLOWED` | `key` | Cannot update a manageable enterprise setting to a non-manageable enterprise setting. |
    | `SETTING_NON_MANAGEABLE` | `key` | Cannot update a non-manageable enterprise setting. |
    | `SETTING_VALUE_INVALID` | `key` | The value of the enterprise setting is invalid. |
    | `SUBJECT_GROUP_NOT_EMPTY_ON_DELETE` | | A subject group can only be deleted if it has no subjects. |
    | `TIMETABLE_NOT_SCHEDULABLE` | | The requested combination is not schedulable. |
    | `UNAVAILABILITY_OVERLAP` | | The user-defined unavailability overlaps with another existing user-defined unavailability. |

    More information about error responses, other than the ones with the `422` response code, can be found in [Error response codes](../topic/topic-requests-and-responses#topic-error-response-codes).
- title: Provisioning
  content: |-
    Rather than manually maintaining the employees and offices in Pexip Engage, it is possible to set up an automated provisioning mechanism that synchronizes with an external source.

    There are two mechanisms that can be used for automated provisioning:

    1. Use our [SCIM 2.0](https://www.simplecloud.info)-compliant API in combination with a compatible user directory
    2. Build a custom provisioning integration using the [Employee endpoints](../group/endpoint-employees) and [Office endpoints](../group/endpoint-offices)

    # SCIM 2.0

    A lot of user directory systems support provisioning users to other systems using SCIM 2.0, like Microsoft Azure Active Directory and Google Workspaces. This is the fastest way to get automated user provisioning set up as it requires no additional development.

    Note that our SCIM-compliant API currently only supports provisioning employee information and roles but not offices and relations between offices and employees.

    Contact your account manager to request more information and guidance.

    # Custom

    A custom integration is needed when the user directory in use is not capable of provisioning users to Pexip Engage using 2.0 or when other resources need to be provisioned, such as offices or relations between offices and employees.

    Provisioning is ideally done incrementally. This means that changes to employees/offices should be detected in the external system and then translated into the corresponding API call to Pexip Engage to synchronize the data.

    Taking the provisioning of employees as an example, the following could be done:

    * On creation of a new employee, make a `POST /employees` request with request body

        ```json
        {
          "firstName": "John",
          "lastName": "Doe",
          "email": "john.doe@acme.com",
          "function": "Advisor"
          "externalId": "ABC123",
          "availableRoles": ["AGENT"]
        }
        ```

        where the `externalId` property contains the ID of the employee from the user directory.

    * On modification of an employee, first make a `GET /employees?external-id=ABC123` request to find the employee ID in Pexip Engage (let's say `1234`) and then make a `PATCH /employees/1234` request with request body

        ```json
        {
          "function": "Senior Advisor"
        }
        ```

    * On deletion of an employee, first make a `GET /employees?external-id=ABC123` request to find the employee ID in Pexip Engage (let's say `1234`) and then make a `DELETE /employees/1234` request.

    It is recommended to work with an external ID (as shown in this example) instead of storing the Pexip Engage ID of the employee in the user directory as the Pexip Engage ID structure is subject to change, which would break the integration if relied upon.

    Note that building a custom integration for user provisioning that hooks into our SCIM-compliant API, rather than the [Employee endpoints](../group/endpoint-employees), can still be recommended as it might ease a possible transition to a compatible user directory in the future.
- title: Webhooks
  content: |-
    Webhooks provide a powerful method to track appointments and to take actions within external systems. Review these best practices to ensure your webhooks remain secure and function seamlessly with your integration.

    # Retry logic

    If an error occurs when sending the webhook (a non-`2xx` response is received, the connection is lost or the request times out), we automatically try again with a delay. The current retry logic is as follows:
    * A webhook is sent and will time out after 5 seconds.
    * The webhook is re-sent with a delay of 2 seconds and will time out after 10 seconds.
    * The webhook is re-sent with a delay of 10 seconds and will time out after 30 seconds.
    * After three errors, the webhook is not retried.

    This retry logic can thus survive an unavailability of the receiver of 50 seconds, including successful processing time.

    # Event handling

    Handling webhook events correctly is crucial to making sure your integration's business logic works as expected.

    ## Handle duplicate events

    Webhook endpoints might occasionally receive the same event more than once. We advise you to guard against duplicated event receipts by making your event processing [idempotent](https://en.wikipedia.org/wiki/Idempotence). One way of doing this is logging the `id` of the event you've processed, and then not processing already-logged events. The `id` is guaranteed to be unique for a single event and remains the same during retries.

    ## Order of events

    Pexip Engage does not guarantee delivery of events in the order in which they are generated. Your endpoint should not expect delivery of these events in this order and should handle this accordingly. One way of doing this is by logging specific time-based resource properties, included in the payload, and then not processing events that have a value for this time-based resource property which is before an already logged event. For example, each change to an appointment will result in a updated `updatedAt` timestamp property of the appointment. This can be used to compare incoming events with already logged events for the same appointment `id`.

    # Security

    Keeping your endpoints secure is critical to protecting your customers' information. Pexip Engage provides several ways for you to verify events are coming from Pexip Engage in a secure manner.

    ## Receive events with an HTTPS server

    If you use an HTTPS URL for your webhook endpoint, Pexip Engage validates that the connection to your server is secure before sending your webhook data. For this to work, your server must be correctly configured to support HTTPS with a valid server certificate.

    ## Verify events are sent from Pexip Engage

    Verify webhook signatures to confirm that received events are sent from Pexip Engage.

    To do this, we have added a number of extra headers.
    * `X-Pexip-Signature-v1`
    * `X-Pexip-Request-Timestamp`

    The signature header contains the HMAC SHA-256 hash of the request. To validate if the request header is valid for the receiving payload, the receiver should first validate the timestamp of the request. The timestamp should not be older than 5 minutes. Next, the receiver needs to calculate the same hash using the secret token of the webhook configuration. The hash is calculated using the following format:

    ```javascript
    ${webhookConfiguration.method}${webhookConfiguration.url}${payload}${timestamp}
    ```

    Additionally, Pexip Engage sends webhook events from a set list of IP addresses. Only trust events coming from these IP addresses. These IP addresses are:
    * Production: `20.73.202.25`
    * Staging: `20.76.6.66`
- title: Compression
  content: |-
    To improve performance and reduce bandwidth usage, the Pexip Engage API supports HTTP response compression.

    # How it works
    When your client includes an `Accept-Encoding` header specifying one or more supported compression algorithms, the server will automatically compress the response using a matching algorithm. The response will then include a `Content-Encoding` header indicating which algorithm was applied.

    If no preference is specified (`*`), the server will default to `gzip`.

    ## Example request
    ```
    GET /appointments HTTP/1.1
    Host: api.pexipengage.com
    Accept-Encoding: br, gzip
    ```

    ## Example response
    ```
    HTTP/1.1 200 OK
    Content-Encoding: br
    Content-Type: application/json
    ...
    ```

    # Supported algorithms
    The API currently supports the following compression methods:
    * `br` – Brotli compression
    * `gzip` – Gzip compression
    * `*` – No specific preference (defaults to gzip)

    > Note: The list of supported compression algorithms may be extended or changed in the future.

    # Best practices
    * Compression is automatically applied by the server if the `Accept-Encoding` header is supplied; no additional configuration is required.
    * Be aware that compression can increase CPU usage on both client and server sides.
    * For very small payloads, compression may not provide a significant benefit.
- title: API upgrades
  content: |-
    Pexip Engage considers the following changes to be backwards-compatible. Implementations consuming webhooks or making requests to an API endpoint should be able to handle the following API upgrades, without the need to make changes to the implementation.
    * Addition of new resources.
    * New optional request parameters to existing API methods.
    * Additional properties added to existing resources.
    * Change in the length or format of opaque strings. For example, adding or removing fixed prefixes to IDs.
    * Change in the order of properties on existing responses.
    * Addition of new values to existing enums.
    * Addition of new event types.
    * Undocumented API methods can have breaking changes at any point
- title: Migrating from the legacy API
  content: |-
    # Important changes

    Migrating from the legacy API requires a full re-evaluation of existing API and webhook integrations as every endpoint will require some change. To guide you, we are listing some of the most important changes.

    ## OAuth 2.0 standardization

    All authentication interaction has been fully standardized towards OAuth 2.0.

    ### Removed support for custom grant types

    The following custom grant types are no longer supported and have not been replaced:

    * `office365_code`
    * `public_client`
    * `public_client_password`
    * `resource_code`
    * `saml`

    Only the `client_credentials` grant type is supported, which was already and is still compliant to OAuth 2.0.

    ### Removed support for `application/json` content type in access token request

    [As specified by the OAuth 2.0 specification](https://www.rfc-editor.org/rfc/rfc6749#section-4.4.1), the content type for the access token request must be `application/x-www-form-urlencoded`. The `application/json` is no longer be allowed.

    ### Optional scopes

    When requesting an access token, the desired scopes must always be provided. By default, the scopes will be empty unlike before.

    ### Removed `/identity` endpoint

    The `/identity` endpoint to retrieve information about the current access token has been removed. Access tokens are now valid [JSON Web Tokens (JWTs)](https://jwt.io/) and thus contain all information in an encoded form.

    ## Removed support for request content types other than `application/json`

    [Except for OAuth 2.0 requests](../topic/topic-migrating-from-the-legacy-api#topic-removed-support-for-code-class-code-inline-application-json-code-content-type-in-access-token-request), all requests should use `application/json` as content type. The content types `multipart/form-data` and `x-www-form-urlencoded` are no longer supported.

    ## Changed casing conventions

    Path and query parameters in URLs will consistently follow a `kebab-case` naming convention.

    Request and response bodies will consistently contain JSON-structured data where property names follow a `camelCase` naming convention.

    `external-id` properties are now case-sensitive. This should be taken into account when querying the API but also when creating plugin configurations.

    ## Changed pagination mechanism and parameters

    Pagination is applied by default rather than on-demand.

    The query parameters to control the mechanism have also been modified to require a record offset instead (`offset`) of a page index (`page`). The `per_page` query parameters has been renamed to `limit`.

    The `meta` object in the response body has also been restructured. The old `meta` object properties can be derived from the new ones as follows:

    * `total` = `totalCount`
    * `per_page` = `limit`
    * `current_page` = (`offset`/`limit`)+1, assuming `offset` is a multiple of `limit`
    * `last_page` = ceiling(`totalCount`/`limit`)
    * `from` = `offset`+1
    * `to` = `offset`+`limit`

    See also [Pagination](../topic/topic-pagination).

    ## Removed support for some array query parameter syntax

    The syntax for passing array query parameters in requests has changed.

    Specifically, the syntax `name=value` is no longer supported for array query parameters.

    See also [Array query parameters](../topic/topic-requests-and-responses#topic-array-query-parameters).

    ## Removed `enterprise_id` references

    The `enterprise_id` references have been removed from all request and response bodies as the enterprise is implied by the URL.

    ## Changed translatable resource mechanisms

    The data structure for returning translatable resources has been changed. Apart from how the translated data is returned, also when data is returned has been changed. Translatable resources will always be returned, regardless of whether translations exist for the requested language, unlike before where translatable resources would not be returned if no translations exist for the requested language. Instead, the translatable properties of the resource are returned as `null` if no translation exists for the requested language.

    The data structure for managing translatable resources has been changed. Translated data is now always explicitly passed together with the language of the translation, unlike deriving it from the `Content-Language` header, which is no longer used.

    There is no requirement to have a translation for a resource available in the default enterprise language anymore. When `*` is passed in the `Accept-Language` header value, the system will first try to find a translation for the default enterprise language but will then return any translation that exists if no translation is available for the default enterprise language.

    Translations will always be returned for a property if they match the requested language, independent of whether other properties have translations for the same language. The "fully translated" concept therefore no longer exists.

    Also see [Translatable resources](../topic/topic-languages-translations#topic-translatable-resources) and the request and response bodies for translatable resources, as documented here.

    ## Changed location structure

    Locations are now translatable, allowing to define specific parts of an address in multiple languages.

    The postal code and geolocation (coordinates) components of locations have also been made optional, unlike before. In case no geolocation component is provided, it is automatically calculated by the system.

    ## Removed `include` query parameter for all endpoints

    The possibility to include related resources when requesting one or multiple resources, using the `include` query parameter has been removed. A number of endpoints now return some of the content, that could be explicitly included before, by default. Other inclusion possibilities require separate additional API calls.

    ## Replaced subject questions, outcome lists, cancellation reasons, appointment answers and outcome remarks with forms

    It is now possible to build highly-customizable [forms](../group/endpoint-forms) that can be linked to subjects for use as a questionnaire during appointment creation, appointment cancellation and appointment completion. This replaces the old subject questions, outcome (lists) and cancellation reasons.

    Although the same features (and more) are still available using the forms, it is recommended to thoroughly investigate the [new endpoints](../group/endpoint-forms) to see how old API calls can be translated into new ones.

    ## Availability template model changes

    The explicit differentiation between day and week templates has been replaced with a general availability template concept where each availability template has a type, indicating whether it is a day or week template.

    ### Removed endpoints

    The `/contacts/:contact_id/day_templates` and `/contacts/:contact_id/week_templates` endpoints have therefore been replaced with the [Availability templates](../group/endpoint-availability-templates) endpoints.

    ### Time zones for availability templates

    Availability templates now have a time zone property. This is the time zone that should be used to interpret the time ranges defined in the availability template when it is applied on a specific day. Before, the time zone that was used to interpret the time ranges was the time zone of each office assigned to the time range.

    As an example: a time range from 09:00-12:00 linked to both the Brussels and London offices would result in availability from 09:00-12:00 in Brussels and also 09:00-12:00 in London time zone when applying it on a specific day, resulting in a total availability of 4 hours. This will no longer be the case as the reference time zone on the availability template will be used instead, resulting in a total availability of 3 hours.

    ### Removed 'special' unavailability day template

    See [user-defined unavailability](../topic/topic-migrating-from-the-legacy-api#topic-user-defined-unavailability)

    ### Default template property

    The default template for a specific employee can now be derived from an `isDefault` property on the availability templates.

    ### Time range availability settings structure

    The interface of the availability settings related to a specific time range has changed. The related availability settings now contain a full view including potential subject-specific overrides. They are always stored using a single `PUT` request rather than a combination of `POST`, `PATCH` and `DELETE` requests.

    Note that the `auto_accept` property has been replaced by a `forceManualAccept` property and that the meaning differs slightly. The `auto_accept` property could either be `null` or `false`, which translated to the `forceManualAccept` property being `false` or `true` respectively.

    Also the `uses_subject_specific_settings` property has been renamed to `overridesDefault`.

    ## Appointment model changes

    ### Removed properties

    The following appointment properties have been removed without replacement:

    * `uuid`
    * `is_success`

    The `customer_showed` appointment property has been removed in favor of a newly added `NO_SHOW` appointment status which can be set by setting `noShow` to `true` in the [Complete appointment](operation/operation-completeappointment#operation-completeappointment-body-noshow) request.

    The `occurred` appointment state has been removed but can still be derived by checking whether the appointment status is `ACCEPTED`/`COMPLETED` and the appointment `end` timestamp is in the past.

    The `cancelled_by_*` appointment properties have been removed without replacement. In the near future, it will become possible to request appointment history information however. This will contain the cancellation audit information.

    ### Removed appointment possibilities

    The appointment model has been simplified by removing the concept of "appointment possibilities". All information that was previously stored on the possibility level is now stored on the appointment itself.

    ### Additional participants for appointments

    Appointments now allow to specify multiple employee participants and multiple customer participants, unlike the one-to-one appointment before. One-to-one appointments should therefore now be created as an appointment with two participants: one having type `EMPLOYEE` and role `PRIMARY` and another one having type `CUSTOMER` and role `PRIMARY`.

    ### Separate endpoints for appointment operations

    Specific appointment operations, such as cancelling, completing and rescheduling appointments, should now be done using simple and intuitive endpoints rather than having to perform a generic update on some specific appointment properties to achieve the desired result.

    ### Removed audit modification

    The possibility to set the initiator and modifier audit information on appointments has been removed and will be automatically determined from now on.

    ### Removed scheduling rules bypass

    The possibility to bypass specific scheduling rules while creating/rescheduling/reassigning appointments has been removed. The scheduling rules that should be applied will be automatically determined from now on, based on the user performing the operation.

    ### Removed appointment deletion endpoint

    The endpoint to delete an appointment has been removed without replacement. Appointments should instead always be cancelled instead.

    ### Removed available contacts endpoint

    The `/appointments/:appointment_id/available_contacts` endpoint has been removed without replacement. The `/defined-availability` and `/timetable` endpoints should be used instead to determine employee availability at the time of the appointment.

    ### Removed calendar links endpoint

    The `/appointments/:appointment_id/calendar_links` endpoint has been replaced with the [Calendar event](../group/endpoint-calendar-event) endpoints.

    ### Removed messages endpoint

    The `/appointments/:appointment_id/messages` endpoints have been removed. Transient operation-related messages should now be passed as part of the specific operation requests instead.

    ## Defined availability changes

    ### Removed location query parameters

    The `location` query parameters have been removed as they are not relevant anymore for calculating defined availability. They were necessary to take into account region coverage limitations but this was deemed to be too complex. Instead, region coverage limitations are now not taken into account when calculating defined availability.

    ### Removed properties

    The `estimated_duration`, `granularity`, `time_slot_granularity` `time_slot_earliest_possible`, `time_slot_latest_possible` and `trailing_buffer_time` properties have been removed from the defined availability response as they are only relevant for timetable calculation but not for defined availability.

    ## Employee model changes

    ### Merged contact, admin, office manager, central planner, employee and user resources

    The contact, admin, office manager, central planner, employee and user resources have been merged into a single employee resource.

    The roles assigned to an employee are to be found in the `availableRoles` property and depending on the role, some other role-specific properties will be set.

    ### Removed properties

    The following employee properties have been removed without replacement:

    * `user.gender`
    * `user.date_of_birth`
    * `admin.is_owner`
    * `contact.introduction`

    The `contact.is_active` property has been renamed to `onlinePlanning`.

    ### Removed endpoints

    The following endpoints have been removed without replacement:

    * `/users/:user_id/calendars`
    * `/users/:user_id/sync_accounts`
    * `/users/:user_id` (activation)
    * `/employee_activations`

    ### Removed possibility to set password for user on creation

    It is no longer possible to set a password for a user through the API. Instead, a user should set its own password using an invitation link which the system will send.

    ### Translatable employee function

    The function property for employees with the `AGENT` role is now translatable.

    ### Changed process for uploading profile picture

    The process for uploading a profile picture for an employee has been changed and now requires two steps. See [File uploading](../topic/topic-file-uploading).

    ## Customer model changes

    ### Removed properties

    The following customer properties have been removed without replacement:

    * `preferred_office_id`
    * `preferred_contact_id`
    * `gender`
    * `date_of_birth`
    * `profile_picture`

    ### Removed endpoints

    The following endpoints have been removed without replacement:

    * `/customers/:customer_id/profile_pictures`

    ## Enterprise and settings model changes

    ### Removed enterprise resource

    The enterprise resource does not exist on its own anymore. All enterprise information, the logo and settings have been merged into a single `/settings` endpoint.

    ### Removed endpoints

    The following endpoints have been removed without replacement:

    * `/enterprises`
    * `/enterprises/:enterprise_id`
    * `/enterprise_messages`

    ## Lead segment model changes

    ### Scheduling settings

    The `/lead_segment_subjects` endpoint, which allows to specify allowed subject and meeting type combinations for a lead segment has been replaced by the `/lead-segments/:id/scheduling-settings` endpoint.

    ### Removed properties

    The `is_preferred` property has been removed from the lead segment scheduling settings structure without replacement.

    ## Office model changes

    ### Scheduling and availability settings

    The `/offices/:office_id/subject_availability_settings` endpoint, which allows to specify allowed subject and meeting type combinations and their respective availability settings for an office has been replaced by the `/offices/{id}/subject-scheduling-settings` endpoint and the `/offices/{id}/subject-availability-settings` endpoint.

    ### Renamed properties

    The `title` property has been renamed to `name` for consistency purposes.

    ### Translatable properties

    The following properties are now translatable:
    * `name`
    * `description`
    * `directions`
    * `parkingInfo`

    ## Subject model changes

    ### Scheduling and availability settings

    The `/subjects/:subject_id/availability_settings` endpoint, which allows to specify allowed meeting types and their respective availability settings for a subject has been replaced by the `/subjects/{id}/scheduling-settings` endpoint and the `/subjects/:id/availability-settings` endpoint.

    ### Renamed models and properties

    The `title` property for subjects has been renamed to `name` for consistency purposes.

    The `is_shortlist` property for subjects has been renamed to `enabledForCustomerUse` for clarity purposes.

    The Subject Category concept has been renamed to Subject Group.

    ### Removed properties

    The following subject properties have been removed without replacement:

    * `is_active`
    * `is_default`
    * `timezone`

    ## Support members

    The concept of support members has been removed without replacement.

    ## Timetable changes

    ### Removed postal code and country location query parameters

    It is not longer possible to pass a location to the timetable endpoint using postal code and country. Coordinates should be used instead.

    ### Removed properties

    The `max_concurrent_appointments` and `scheduled_concurrent_appointments` have been removed from timetable response without replacement.

    ### Added contextual information

    Next to the actual time slots, the timetable endpoint now also returns information about the duration, earliest and latest possible time slot. This information can be used when making timetable calls to know the range in which time slots can be offered.

    ## Unavailability changes

    ### Removed query parameters

    The `offices`, `subjects`, `format[timezone]` and `ignore_skedify_appointments` query parameters have been removed without replacement.

    ### Removed context

    The context of each specific unavailability will not be returned in the response anymore. Only the type, start and end time will be returned, together with an optional external ID.

    ### User-defined unavailability

    A new concept has been added, called user-defined unavailability. This is a replacement for what used to be a 'special' day template, allowing to introduce days of unavailability. User-defined availability can be created for a specific employee on specific dates and can also be removed again. This is similar to applying the 'special' day template for a specific employee on specific days in the legacy.

    ## Webhook configuration changes

    The possibility to configure a webhook to use a specific client certificate when making requests has been removed.

    This was typically used for certificate pinning is recommended against by Pexip to avoid complications with your integration when we roll out new certificates for our systems.

    DigiCert, one of the major CAs, also recommends against [certificate pinning](https://www.digicert.com/blog/certificate-pinning-what-is-certificate-pinning).

    # Migration assistance

    Although this documentation should already answer a lot of questions, we understand that you might have some additional questions or would like some advice. Contact your account manager to request advice from one of our experts.
openapi: 3.1.0
info:
  title: Pexip Engage REST API
  description: This document describes the specification of the Pexip Engage REST
    API, hereafter referenced as 'the API'. This contains a description of the functionality
    that is made available by the API, as well as the architectural style it should
    use and the protocol by which it is offered. When there is room for interpretation
    in any of these aspects, this document also tries to specify how the API must
    resolve these ambiguities. We do this to provide a reference document, both to
    the implementers and the consumers of the API, and to ensure there is a unified
    interface that all parties must adhere to and can rely on for their own use.
  version: 10.5.0
  termsOfService: https://engage.pexip.com/license
  contact:
    email: support_engage@pexip.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
components:
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth.development.pexipengage.com/realms/{enterprise}/protocol/openid-connect/token
          scopes:
            engage:appointments:readOnly: Reading appointments
            engage:appointments:readWrite: Managing appointments
            engage:availability:readOnly: Reading availability
            engage:availability:readWrite: Managing availability
            engage:callbackRequests:readOnly: Reading callback requests
            engage:callbackRequests:readWrite: Managing callback requests
            engage:customers:readOnly: Reading customers
            engage:customers:readWrite: Managing customers
            engage:employees:readOnly: Reading employees
            engage:employees:readWrite: Managing employees
            engage:expertises:readOnly: Reading expertises
            engage:expertises:readWrite: Managing expertises
            engage:externalCalendars:readOnly: Reading external calendars
            engage:externalCalendars:readWrite: Managing external calendars
            engage:favoriteAgents:readOnly: Reading favorite agents
            engage:favoriteAgents:readWrite: Managing favorite agents
            engage:forms:readOnly: Reading forms
            engage:forms:readWrite: Managing forms
            engage:leadSegments:readOnly: Reading lead segments
            engage:leadSegments:readWrite: Managing lead segments
            engage:listings:readOnly: Reading listings
            engage:listings:readWrite: Managing listings
            engage:offices:readOnly: Reading offices
            engage:offices:readWrite: Managing offices
            engage:regions:readOnly: Reading region
            engage:regions:readWrite: Managing regions
            engage:settings:readOnly: Reading enterprise settings
            engage:settings:readWrite: Managing enterprise settings
            engage:subjects:readOnly: Reading subjects
            engage:subjects:readWrite: Managing subjects
            engage:templates:readOnly: Reading templates
            engage:templates:readWrite: Managing templates
            engage:translations:readOnly: Reading translations
            engage:translations:readWrite: Managing translations
            engage:webhooks:readOnly: Reading webhooks
            engage:webhooks:readWrite: Managing webhooks
  schemas:
    PagingMetadata:
      type: object
      required:
      - offset
      - limit
      - totalCount
      properties:
        offset:
          type: integer
          minimum: 0
          default: 0
        limit:
          type: integer
          minimum: 0
          default: 25
        totalCount:
          type: integer
          minimum: 0
      additionalProperties: false
    Offset:
      type: string
      default: '0'
      examples:
      - '0'
      - '50'
      format: positive-integer
    Limit:
      type: string
      default: '25'
      examples:
      - '25'
      format: positive-integer
      pattern: "^([1-9]|[1-9][0-9]{1,2}|1000)$"
      errorMessage:
        pattern: Limit must be between 1 and 1000.
    LocationSummary:
      type: object
      required:
      - city
      - state
      - street1
      - street2
      - countryCode
      - formattedAddress
      - geolocation
      properties:
        city:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        state:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        street1:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        street2:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        postalCode:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - '9000'
          - type: 'null'
        countryCode:
          type: string
          minLength: 2
          maxLength: 2
          examples:
          - BE
        formattedAddress:
          type: string
          minLength: 1
        geolocation:
          type: object
          required:
          - latitude
          - longitude
          properties:
            latitude:
              type: number
              minimum: -90
              maximum: 90
              examples:
              - 51.0479466
            longitude:
              type: number
              minimum: -180
              maximum: 180
              examples:
              - 3.6912248
          additionalProperties: false
      additionalProperties: false
    LocationDetail:
      type: object
      required:
      - city
      - state
      - street1
      - street2
      - countryCode
      - formattedAddress
      - geolocation
      - translations
      properties:
        city:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        state:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        street1:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        street2:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        postalCode:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - '9000'
          - type: 'null'
        countryCode:
          type: string
          minLength: 2
          maxLength: 2
          examples:
          - BE
        formattedAddress:
          type: string
          minLength: 1
        geolocation:
          type: object
          required:
          - latitude
          - longitude
          properties:
            latitude:
              type: number
              minimum: -90
              maximum: 90
              examples:
              - 51.0479466
            longitude:
              type: number
              minimum: -180
              maximum: 180
              examples:
              - 3.6912248
          additionalProperties: false
        translations:
          type: object
          required:
          - city
          - street1
          properties:
            city:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 1
            state:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 0
            street1:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 1
            street2:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 0
          additionalProperties: false
    AnswerDetail:
      type: object
      required:
      - id
      - form
      - question
      - answerType
      - createdAt
      - updatedAt
      properties:
        value:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - A colleague
          - type: 'null'
        selectedAnswerOptions:
          anyOf:
          - type: array
            items:
              type: object
              required:
              - id
              properties:
                id:
                  type: string
                  minLength: 1
                  examples:
                  - '123'
              additionalProperties: false
          - type: 'null'
        files:
          anyOf:
          - type: array
            items:
              type: object
              required:
              - id
              properties:
                id:
                  type: string
                  minLength: 1
                  examples:
                  - '123'
              additionalProperties: false
          - type: 'null'
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        form:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        question:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        answerType:
          type: string
          enum:
          - APPOINTMENT_CANCELLATION
          - APPOINTMENT_COMPLETION
          - CALLBACK_REQUEST
          - QUALIFICATION
          - SUBJECT_QUESTIONNAIRE
          - UNAVAILABILITY
          examples:
          - SUBJECT_QUESTIONNAIRE
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
      additionalProperties: false
    ParticipantDetail:
      type: object
      required:
      - role
      - participant
      - type
      properties:
        role:
          type: string
          enum:
          - PRIMARY
          - SECONDARY
          examples:
          - PRIMARY
        participant:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
        type:
          type: string
          enum:
          - CUSTOMER
          - EMPLOYEE
          examples:
          - EMPLOYEE
        videoUrl:
          anyOf:
          - type: string
            minLength: 1
            format: uri
            examples:
            - https://wwww.example.net/abc123
          - type: 'null'
        videoTestUrl:
          anyOf:
          - type: string
            minLength: 1
            format: uri
            examples:
            - https://wwww.example.net/abc123
          - type: 'null'
      additionalProperties: false
    AppointmentUserCommunication:
      type: object
      required:
      - notifications
      - reminders
      properties:
        notifications:
          type: string
          enum:
          - DEFAULT
          - DISABLED
          examples:
          - DEFAULT
          - DISABLED
        reminders:
          type: string
          enum:
          - DEFAULT
          - DISABLED
          examples:
          - DEFAULT
          - DISABLED
      additionalProperties: false
    AppointmentSummary:
      type: object
      required:
      - id
      - uuid
      - subject
      - office
      - appointmentParticipants
      - answers
      - meetingType
      - status
      - hybrid
      - trailingBufferTime
      - metadata
      - userCommunication
      - createdAt
      - createdByType
      - createdFrom
      - updatedAt
      - updatedByType
      - updatedFrom
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        uuid:
          type: string
          minLength: 1
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        start:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T09:00:00.000Z'
          - type: 'null'
        end:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T10:00:00.000Z'
          - type: 'null'
        subject:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        office:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        appointmentParticipants:
          type: array
          items:
            "$ref": "#/components/schemas/ParticipantDetail"
          minItems: 2
        answers:
          type: array
          items:
            "$ref": "#/components/schemas/AnswerDetail"
        callbackRequest:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        listing:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        leadSegment:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        meetingRoom:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        meetingType:
          type: string
          enum:
          - OFFICE
          - ON_LOCATION
          - PHONE
          - VIDEO
          examples:
          - OFFICE
        status:
          type: string
          enum:
          - ACCEPTED
          - ALTERNATIVE_DATE_REQUESTED
          - CANCELLED
          - COMPLETED
          - INCOMING_REQUEST
          - NO_SHOW
          - OUTGOING_INVITE
          examples:
          - ACCEPTED
        hybrid:
          type: boolean
        trailingBufferTime:
          type: integer
          minimum: 0
          examples:
          - 5
        internalNotes:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - Lorem ipsum
          - type: 'null'
        messageForCustomer:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - Lorem ipsum
          - type: 'null'
        metadata:
          anyOf:
          - type: object
            properties: {}
            additionalProperties: true
          - type: 'null'
        userCommunication:
          "$ref": "#/components/schemas/AppointmentUserCommunication"
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        createdBy:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        createdByType:
          type: string
          enum:
          - CUSTOMER
          - EMPLOYEE
          - OTHER
          examples:
          - EMPLOYEE
        createdFrom:
          type: string
          enum:
          - BACKOFFICE_APP
          - OTHER
          - PARTNER_BOOKING_APP
          - PLUGIN
          examples:
          - BACKOFFICE_APP
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedBy:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        updatedByType:
          type: string
          enum:
          - CUSTOMER
          - EMPLOYEE
          - OTHER
          examples:
          - EMPLOYEE
        updatedFrom:
          type: string
          enum:
          - BACKOFFICE_APP
          - OTHER
          - PARTNER_BOOKING_APP
          - PLUGIN
          examples:
          - BACKOFFICE_APP
        location:
          anyOf:
          - "$ref": "#/components/schemas/LocationSummary"
          - type: 'null'
      additionalProperties: false
    AppointmentDetail:
      type: object
      required:
      - id
      - uuid
      - subject
      - office
      - appointmentParticipants
      - answers
      - meetingType
      - status
      - hybrid
      - trailingBufferTime
      - metadata
      - userCommunication
      - createdAt
      - createdByType
      - createdFrom
      - updatedAt
      - updatedByType
      - updatedFrom
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        uuid:
          type: string
          minLength: 1
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        start:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T09:00:00.000Z'
          - type: 'null'
        end:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T10:00:00.000Z'
          - type: 'null'
        subject:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        office:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        appointmentParticipants:
          type: array
          items:
            "$ref": "#/components/schemas/ParticipantDetail"
          minItems: 2
        answers:
          type: array
          items:
            "$ref": "#/components/schemas/AnswerDetail"
        callbackRequest:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        listing:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        leadSegment:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        meetingRoom:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        meetingType:
          type: string
          enum:
          - OFFICE
          - ON_LOCATION
          - PHONE
          - VIDEO
          examples:
          - OFFICE
        status:
          type: string
          enum:
          - ACCEPTED
          - ALTERNATIVE_DATE_REQUESTED
          - CANCELLED
          - COMPLETED
          - INCOMING_REQUEST
          - NO_SHOW
          - OUTGOING_INVITE
          examples:
          - ACCEPTED
        hybrid:
          type: boolean
        trailingBufferTime:
          type: integer
          minimum: 0
          examples:
          - 5
        internalNotes:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - Lorem ipsum
          - type: 'null'
        messageForCustomer:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - Lorem ipsum
          - type: 'null'
        metadata:
          anyOf:
          - type: object
            properties: {}
            additionalProperties: true
          - type: 'null'
        userCommunication:
          "$ref": "#/components/schemas/AppointmentUserCommunication"
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        createdBy:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        createdByType:
          type: string
          enum:
          - CUSTOMER
          - EMPLOYEE
          - OTHER
          examples:
          - EMPLOYEE
        createdFrom:
          type: string
          enum:
          - BACKOFFICE_APP
          - OTHER
          - PARTNER_BOOKING_APP
          - PLUGIN
          examples:
          - BACKOFFICE_APP
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedBy:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        updatedByType:
          type: string
          enum:
          - CUSTOMER
          - EMPLOYEE
          - OTHER
          examples:
          - EMPLOYEE
        updatedFrom:
          type: string
          enum:
          - BACKOFFICE_APP
          - OTHER
          - PARTNER_BOOKING_APP
          - PLUGIN
          examples:
          - BACKOFFICE_APP
        location:
          anyOf:
          - "$ref": "#/components/schemas/LocationDetail"
          - type: 'null'
      additionalProperties: false
    CallbackRequestSummary:
      type: object
      required:
      - id
      - answers
      - callbackRequestParticipants
      - meetingType
      - metadata
      - office
      - status
      - subject
      - createdAt
      - createdByType
      - createdFrom
      - updatedAt
      - updatedByType
      - updatedFrom
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        answers:
          type: array
          items:
            "$ref": "#/components/schemas/AnswerDetail"
        callbackRequestParticipants:
          type: array
          items:
            "$ref": "#/components/schemas/ParticipantDetail"
          minItems: 1
        listing:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        leadSegment:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        meetingType:
          anyOf:
          - type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
          - type: 'null'
        metadata:
          anyOf:
          - type: object
            properties: {}
            additionalProperties: true
          - type: 'null'
        office:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        status:
          type: string
          enum:
          - COMPLETED
          - OPEN
          - REJECTED
          examples:
          - OPEN
        subject:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        internalNotes:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - Lorem ipsum
          - type: 'null'
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        createdByType:
          type: string
          enum:
          - CUSTOMER
          - EMPLOYEE
          - OTHER
          examples:
          - EMPLOYEE
        createdFrom:
          type: string
          enum:
          - BACKOFFICE_APP
          - OTHER
          - PARTNER_BOOKING_APP
          - PLUGIN
          examples:
          - PLUGIN
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedByType:
          type: string
          enum:
          - CUSTOMER
          - EMPLOYEE
          - OTHER
          examples:
          - EMPLOYEE
        updatedFrom:
          type: string
          enum:
          - BACKOFFICE_APP
          - OTHER
          - PARTNER_BOOKING_APP
          - PLUGIN
          examples:
          - PLUGIN
        location:
          anyOf:
          - "$ref": "#/components/schemas/LocationSummary"
          - type: 'null'
      additionalProperties: false
    CallbackRequestDetail:
      type: object
      required:
      - id
      - answers
      - callbackRequestParticipants
      - meetingType
      - metadata
      - office
      - status
      - subject
      - createdAt
      - createdByType
      - createdFrom
      - updatedAt
      - updatedByType
      - updatedFrom
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        answers:
          type: array
          items:
            "$ref": "#/components/schemas/AnswerDetail"
        callbackRequestParticipants:
          type: array
          items:
            "$ref": "#/components/schemas/ParticipantDetail"
          minItems: 1
        listing:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        leadSegment:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        meetingType:
          anyOf:
          - type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
          - type: 'null'
        metadata:
          anyOf:
          - type: object
            properties: {}
            additionalProperties: true
          - type: 'null'
        office:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        status:
          type: string
          enum:
          - COMPLETED
          - OPEN
          - REJECTED
          examples:
          - OPEN
        subject:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        internalNotes:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - Lorem ipsum
          - type: 'null'
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        createdByType:
          type: string
          enum:
          - CUSTOMER
          - EMPLOYEE
          - OTHER
          examples:
          - EMPLOYEE
        createdFrom:
          type: string
          enum:
          - BACKOFFICE_APP
          - OTHER
          - PARTNER_BOOKING_APP
          - PLUGIN
          examples:
          - PLUGIN
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedByType:
          type: string
          enum:
          - CUSTOMER
          - EMPLOYEE
          - OTHER
          examples:
          - EMPLOYEE
        updatedFrom:
          type: string
          enum:
          - BACKOFFICE_APP
          - OTHER
          - PARTNER_BOOKING_APP
          - PLUGIN
          examples:
          - PLUGIN
        location:
          anyOf:
          - "$ref": "#/components/schemas/LocationDetail"
          - type: 'null'
      additionalProperties: false
    CustomerSummary:
      type: object
      required:
      - id
      - existing
      - timeZone
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        customerNumber:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - '123456'
          - type: 'null'
        email:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - john.doe@pexip.com
          - type: 'null'
        firstName:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - John
          - type: 'null'
        lastName:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - Doe
          - type: 'null'
        company:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - Acme Corp
          - type: 'null'
        language:
          anyOf:
          - type: string
            enum:
            - da
            - de
            - el
            - en
            - es
            - fr
            - ja
            - nl
            - 'no'
            - pl
          - type: 'null'
        notes:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - Lorem ipsum
          - type: 'null'
        phoneNumber:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - "+32412345678"
          - type: 'null'
        existing:
          type: boolean
        timeZone:
          type: string
          minLength: 1
          examples:
          - Europe/Brussels
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
        location:
          anyOf:
          - "$ref": "#/components/schemas/LocationSummary"
          - type: 'null'
      additionalProperties: false
    CustomerDetail:
      type: object
      required:
      - id
      - existing
      - timeZone
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        customerNumber:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - '123456'
          - type: 'null'
        email:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - john.doe@pexip.com
          - type: 'null'
        firstName:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - John
          - type: 'null'
        lastName:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - Doe
          - type: 'null'
        company:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - Acme Corp
          - type: 'null'
        language:
          anyOf:
          - type: string
            enum:
            - da
            - de
            - el
            - en
            - es
            - fr
            - ja
            - nl
            - 'no'
            - pl
          - type: 'null'
        notes:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - Lorem ipsum
          - type: 'null'
        phoneNumber:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - "+32412345678"
          - type: 'null'
        existing:
          type: boolean
        timeZone:
          type: string
          minLength: 1
          examples:
          - Europe/Brussels
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
        location:
          anyOf:
          - "$ref": "#/components/schemas/LocationDetail"
          - type: 'null'
      additionalProperties: false
    ContextDetail:
      type: object
      required:
      - id
      - expiresAt
      properties:
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        appointmentExternalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        end:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
          - type: 'null'
        metadata:
          anyOf:
          - type: object
            properties: {}
            additionalProperties: true
          - type: 'null'
        employeeIds:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
          description: ID(s) to be considered for filtering
        secondaryEmployeeIds:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
          description: ID(s) to be considered for filtering
        subjectIds:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
          description: ID(s) to be considered for filtering
        subjectGroupIds:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
          description: ID(s) to be considered for filtering
        listingIds:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
          description: ID(s) to be considered for filtering
        leadSegmentIds:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
          description: ID(s) to be considered for filtering
        meetingRoomIds:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
          description: ID(s) to be considered for filtering
        meetingTypes:
          type: array
          items:
            type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
        customerIds:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
          description: ID(s) to be considered for filtering
        secondaryCustomerIds:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
          description: ID(s) to be considered for filtering
        start:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
          - type: 'null'
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        expiresAt:
          type: string
          minLength: 1
          format: date-time
      additionalProperties: false
    AppliedTemplateDetail:
      type: object
      required:
      - startDate
      - endDate
      - availabilityTemplate
      - timeZone
      - createdAt
      - updatedAt
      properties:
        startDate:
          type: string
          minLength: 1
          examples:
          - '2022-08-01'
        endDate:
          type: string
          minLength: 1
          examples:
          - '2022-08-17'
        availabilityTemplate:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        timeZone:
          type: string
          minLength: 1
          examples:
          - Europe/Brussels
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
      additionalProperties: false
    AvailabilityTemplateDetail:
      type: object
      required:
      - id
      - name
      - type
      - timeZone
      - employee
      - color
      - order
      - isDefault
      - createdAt
      - updatedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        name:
          type: string
          minLength: 1
        type:
          type: string
          enum:
          - DAY
          - WEEK
          examples:
          - WEEK
        timeZone:
          type: string
          minLength: 1
          examples:
          - Europe/Brussels
        employee:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        color:
          type: string
          minLength: 1
          examples:
          - "#89d0c1"
        order:
          type: integer
          minimum: 0
          examples:
          - 5
        isDefault:
          type: boolean
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
      additionalProperties: false
    TimeRangeOfficeSubjectAvailabilitySetting:
      type: object
      required:
      - meetingType
      - maxConcurrentAppointments
      properties:
        meetingType:
          type: string
          enum:
          - OFFICE
          - ON_LOCATION
          - PHONE
          - VIDEO
          examples:
          - OFFICE
        maxConcurrentAppointments:
          type: integer
          minimum: 0
          examples:
          - 5
      additionalProperties: false
    TimeRangeOfficeInput:
      type: object
      required:
      - forceManualAccept
      - overridesDefault
      - officeId
      properties:
        forceManualAccept:
          type: boolean
        overridesDefault:
          type: boolean
        officeId:
          type: string
          minLength: 1
          examples:
          - '123'
        subjectAvailabilitySettings:
          anyOf:
          - type: array
            items:
              type: object
              required:
              - subjectId
              - availabilitySettings
              properties:
                subjectId:
                  type: string
                  minLength: 1
                  examples:
                  - '123'
                availabilitySettings:
                  type: array
                  items:
                    "$ref": "#/components/schemas/TimeRangeOfficeSubjectAvailabilitySetting"
          - type: 'null'
      additionalProperties: false
    AvailabilityTimeRangeDetail:
      type: object
      required:
      - id
      - startTime
      - endTime
      - availabilityTemplate
      - createdAt
      - updatedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        dayOfWeek:
          anyOf:
          - type: string
            enum:
            - FRIDAY
            - MONDAY
            - SATURDAY
            - SUNDAY
            - THURSDAY
            - TUESDAY
            - WEDNESDAY
            examples:
            - MONDAY
          - type: 'null'
        startTime:
          type: string
          minLength: 1
          examples:
          - '09:00'
        endTime:
          type: string
          minLength: 1
          examples:
          - '17:00'
        availabilityTemplate:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
      additionalProperties: false
    EmployeeTranslations:
      type: object
      required:
      - translations
      properties:
        translations:
          type: object
          properties:
            function:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 0
          additionalProperties: false
      additionalProperties: false
    EmployeeSummary:
      type: object
      required:
      - id
      - function
      - firstName
      - lastName
      - email
      - language
      - languageExpertise
      - timeZone
      - availableRoles
      - status
      - onlinePlanning
      - officeRelations
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        function:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        communicationEmail:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - john.doe@pexip.com
          - type: 'null'
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        username:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        firstName:
          type: string
          minLength: 1
          examples:
          - John
        lastName:
          type: string
          minLength: 1
          examples:
          - Doe
        staticVideoUrl:
          anyOf:
          - type: string
            minLength: 1
            format: uri
            examples:
            - https://wwww.example.net/abc123
          - type: 'null'
        phoneNumber:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - "+32412345678"
          - type: 'null'
        profilePictureUrl:
          anyOf:
          - type: string
            minLength: 1
            format: uri
            examples:
            - https://wwww.example.net/abc123
          - type: 'null'
        metadata:
          anyOf:
          - type: object
            properties: {}
            additionalProperties: true
          - type: 'null'
        email:
          type: string
          minLength: 1
          examples:
          - john.doe@pexip.com
        language:
          type: string
          enum:
          - da
          - de
          - el
          - en
          - es
          - fr
          - ja
          - nl
          - 'no'
          - pl
          examples:
          - en
        languageExpertise:
          type: array
          items:
            type: string
            enum:
            - da
            - de
            - el
            - en
            - es
            - fr
            - ja
            - nl
            - 'no'
            - pl
            examples:
            - en
        timeZone:
          type: string
          minLength: 1
          examples:
          - Europe/Brussels
        availableRoles:
          type: array
          items:
            type: string
            enum:
            - ADMIN
            - AGENT
            - CENTRAL_PLANNER
            - OFFICE_MANAGER
            examples:
            - ADMIN
        status:
          type: string
          enum:
          - ACTIVE
          - PENDING
          - SUSPENDED
          examples:
          - ACTIVE
        onlinePlanning:
          type: boolean
        officeRelations:
          type: array
          items:
            type: object
            required:
            - role
            - office
            properties:
              role:
                type: string
                enum:
                - AGENT
                - OFFICE_MANAGER
                examples:
                - AGENT
              office:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    minLength: 1
                    examples:
                    - '123'
                additionalProperties: false
            additionalProperties: false
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
      additionalProperties: false
    EmployeeDetail:
      allOf:
      - "$ref": "#/components/schemas/EmployeeSummary"
      - "$ref": "#/components/schemas/EmployeeTranslations"
    ExpertiseDetail:
      type: object
      required:
      - rank
      - meetingTypes
      - employee
      - subject
      - office
      properties:
        rank:
          type: integer
        meetingTypes:
          type: array
          items:
            type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
        employee:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        subject:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        office:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
      additionalProperties: false
    ExternalCalendarEvent:
      type: object
      required:
      - id
      - externalCalendar
      - start
      - end
      - allDay
      - showAs
      - private
      - createdAt
      - updatedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        externalCalendar:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        start:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T09:00:00.000Z'
        end:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T10:00:00.000Z'
        allDay:
          type: boolean
        showAs:
          type: string
          enum:
          - BUSY
          - FREE
          - TENTATIVE
          examples:
          - BUSY
        title:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - Team meeting
          - type: 'null'
        description:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - Discuss topics on the agenda
          - type: 'null'
        resourceType:
          anyOf:
          - type: string
            enum:
            - APPOINTMENT
            - LISTING_TIME_SLOT
            - SYNC_AVAILABILITY
          - type: 'null'
        resourceId:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - '123'
          - type: 'null'
        private:
          type: boolean
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
      additionalProperties: false
    FavoriteAgentSummary:
      type: object
      required:
      - office
      - employee
      properties:
        office:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        employee:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
      additionalProperties: false
    OfficeEmployeeCoverageRegion:
      type: object
      required:
      - meetingType
      - office
      - regions
      properties:
        meetingType:
          type: string
          enum:
          - OFFICE
          - ON_LOCATION
          - PHONE
          - VIDEO
          examples:
          - OFFICE
        office:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        regions:
          type: array
          items:
            type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
      additionalProperties: false
    OfficeEmployeeCoverageRegionInput:
      type: object
      required:
      - meetingType
      - regionIds
      properties:
        meetingType:
          type: string
          enum:
          - OFFICE
          - ON_LOCATION
          - PHONE
          - VIDEO
          examples:
          - OFFICE
        regionIds:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
          description: ''
      additionalProperties: false
    OfficeEmployeeSubjectCoverageRegion:
      type: object
      required:
      - meetingType
      - office
      - regions
      - subject
      properties:
        meetingType:
          type: string
          enum:
          - OFFICE
          - ON_LOCATION
          - PHONE
          - VIDEO
          examples:
          - OFFICE
        office:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        regions:
          type: array
          items:
            type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
        subject:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
      additionalProperties: false
    OfficeEmployeeSubjectCoverageRegionInput:
      type: object
      required:
      - meetingType
      - regionIds
      properties:
        meetingType:
          type: string
          enum:
          - OFFICE
          - ON_LOCATION
          - PHONE
          - VIDEO
          examples:
          - OFFICE
        regionIds:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
          description: ''
      additionalProperties: false
    EmployeeUnavailabilityDetail:
      type: object
      required:
      - answers
      - id
      - employee
      - type
      - createdAt
      - updatedAt
      properties:
        answers:
          type: array
          items:
            "$ref": "#/components/schemas/AnswerDetail"
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        employee:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        start:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-01T00:00:00.000Z'
          - type: 'null'
        startDate:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - '2022-08-01'
          - type: 'null'
        end:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T00:00:00.000Z'
          - type: 'null'
        endDate:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - '2022-08-17'
          - type: 'null'
        type:
          type: string
          enum:
          - APPOINTMENT
          - EXTERNAL_CALENDAR
          - LISTING_EXCLUSIVITY
          - USER_DEFINED
          examples:
          - USER_DEFINED
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
      additionalProperties: false
    EnterpriseSettingSummary:
      type: object
      required:
      - manageable
      - value
      - createdAt
      - updatedAt
      properties:
        manageable:
          type: boolean
        value: {}
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
      additionalProperties: false
    FetchConfigurationDetail:
      type: object
      required:
      - id
      - mapping
      - endpoint
      - method
      - headers
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        body:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        mapping:
          type: array
          items:
            type: object
            required:
            - sourceProperty
            - targetProperty
            properties:
              sourceProperty:
                type: string
                minLength: 1
              targetProperty:
                type: string
                minLength: 1
                maxLength: 512
            additionalProperties: false
          minItems: 1
        endpoint:
          type: string
          minLength: 1
          format: uri
          examples:
          - https://wwww.example.net/abc123
        method:
          type: string
          enum:
          - DELETE
          - GET
          - PATCH
          - POST
          - PUT
        headers:
          type: array
          items:
            type: object
            required:
            - name
            properties:
              name:
                type: string
                minLength: 1
                examples:
                - Authorization
            additionalProperties: false
          minItems: 1
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
      additionalProperties: false
    FileDetail:
      type: object
      required:
      - id
      - blobName
      - originalFileName
      - scanResultType
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        blobName:
          type: string
          minLength: 1
        originalFileName:
          type: string
          minLength: 1
        scanResultType:
          type: string
          enum:
          - MALICIOUS
          - NOT_SCANNED
          - NO_THREATS_FOUND
          - PENDING
          examples:
          - NO_THREATS_FOUND
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
      additionalProperties: false
    FormSummary:
      type: object
      required:
      - id
      - name
      - type
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        name:
          type: string
          minLength: 1
        type:
          type: string
          enum:
          - APPOINTMENT_CANCELLATION
          - APPOINTMENT_COMPLETION
          - CALLBACK_REQUEST
          - QUALIFICATION
          - SUBJECT_QUESTIONNAIRE
          - UNAVAILABILITY
          examples:
          - SUBJECT_QUESTIONNAIRE
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
      additionalProperties: false
    AnswerOptionTranslations:
      type: object
      required:
      - translations
      properties:
        translations:
          type: object
          required:
          - label
          properties:
            label:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 1
          additionalProperties: false
      additionalProperties: false
    AnswerOptionSummary:
      type: object
      required:
      - label
      - id
      - order
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        value:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
          - type: 'null'
        label:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        order:
          type: integer
          minimum: 0
          examples:
          - 5
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
      additionalProperties: false
    AnswerOptionDetail:
      allOf:
      - "$ref": "#/components/schemas/AnswerOptionSummary"
      - "$ref": "#/components/schemas/AnswerOptionTranslations"
    ValidatorTranslations:
      type: object
      required:
      - translations
      properties:
        translations:
          type: object
          required:
          - errorMessage
          properties:
            errorMessage:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 1
          additionalProperties: false
      additionalProperties: false
    ValidatorSummary:
      type: object
      required:
      - regex
      - errorMessage
      properties:
        regex:
          type: string
          minLength: 1
          description: A regular expression
          examples:
          - "^.{8}"
        errorMessage:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
      additionalProperties: false
    ValidatorDetail:
      allOf:
      - "$ref": "#/components/schemas/ValidatorSummary"
      - "$ref": "#/components/schemas/ValidatorTranslations"
    QuestionTranslations:
      type: object
      required:
      - translations
      properties:
        translations:
          type: object
          required:
          - label
          properties:
            label:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 1
            helpText:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    maxLength: 1024
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 0
            placeholder:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    maxLength: 1024
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 0
          additionalProperties: false
      additionalProperties: false
    QuestionSummary:
      type: object
      required:
      - id
      - form
      - order
      - required
      - hidden
      - inputType
      - label
      - helpText
      - placeholder
      - createdAt
      - updatedAt
      - deletedAt
      - answerOptions
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        form:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        fetchConfiguration:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        order:
          type: integer
          minimum: 0
          examples:
          - 5
        defaultValue:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        targetProperty:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        required:
          type: boolean
        hidden:
          type: boolean
        inputType:
          type: string
          enum:
          - ADDRESS
          - BOOLEAN
          - DATE
          - DATE_TIME
          - EMAIL
          - FETCH
          - FILE
          - LANGUAGE
          - LONG_TEXT
          - MULTI_FILE
          - MULTI_SELECT
          - NUMBER
          - PHONE
          - SELECT
          - SHORT_TEXT
          - TIME_ZONE
          - URL
          examples:
          - SELECT
        validator:
          anyOf:
          - "$ref": "#/components/schemas/ValidatorSummary"
          - type: 'null'
        label:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        helpText:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        placeholder:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
        answerOptions:
          type: array
          items:
            "$ref": "#/components/schemas/AnswerOptionSummary"
      additionalProperties: false
    QuestionDetail:
      allOf:
      - type: object
        required:
        - id
        - form
        - order
        - required
        - hidden
        - inputType
        - label
        - helpText
        - placeholder
        - createdAt
        - updatedAt
        - deletedAt
        - answerOptions
        properties:
          id:
            type: string
            minLength: 1
            examples:
            - '123'
          form:
            type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          fetchConfiguration:
            anyOf:
            - type: object
              required:
              - id
              properties:
                id:
                  type: string
                  minLength: 1
                  examples:
                  - '123'
              additionalProperties: false
            - type: 'null'
          order:
            type: integer
            minimum: 0
            examples:
            - 5
          defaultValue:
            anyOf:
            - type: string
              minLength: 1
            - type: 'null'
          externalId:
            anyOf:
            - type: string
              minLength: 1
              maxLength: 255
              examples:
              - ABCD1234
            - type: 'null'
          targetProperty:
            anyOf:
            - type: string
              minLength: 1
            - type: 'null'
          required:
            type: boolean
          hidden:
            type: boolean
          inputType:
            type: string
            enum:
            - ADDRESS
            - BOOLEAN
            - DATE
            - DATE_TIME
            - EMAIL
            - FETCH
            - FILE
            - LANGUAGE
            - LONG_TEXT
            - MULTI_FILE
            - MULTI_SELECT
            - NUMBER
            - PHONE
            - SELECT
            - SHORT_TEXT
            - TIME_ZONE
            - URL
            examples:
            - SELECT
          validator:
            anyOf:
            - "$ref": "#/components/schemas/ValidatorDetail"
            - type: 'null'
          label:
            anyOf:
            - type: object
              required:
              - language
              - value
              properties:
                language:
                  type: string
                  enum:
                  - da
                  - de
                  - el
                  - en
                  - es
                  - fr
                  - ja
                  - nl
                  - 'no'
                  - pl
                  examples:
                  - en
                value:
                  type: string
                  examples:
                  - Lorem ipsum
              additionalProperties: false
            - type: 'null'
          helpText:
            anyOf:
            - type: object
              required:
              - language
              - value
              properties:
                language:
                  type: string
                  enum:
                  - da
                  - de
                  - el
                  - en
                  - es
                  - fr
                  - ja
                  - nl
                  - 'no'
                  - pl
                  examples:
                  - en
                value:
                  type: string
                  examples:
                  - Lorem ipsum
              additionalProperties: false
            - type: 'null'
          placeholder:
            anyOf:
            - type: object
              required:
              - language
              - value
              properties:
                language:
                  type: string
                  enum:
                  - da
                  - de
                  - el
                  - en
                  - es
                  - fr
                  - ja
                  - nl
                  - 'no'
                  - pl
                  examples:
                  - en
                value:
                  type: string
                  examples:
                  - Lorem ipsum
              additionalProperties: false
            - type: 'null'
          createdAt:
            type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          updatedAt:
            type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          deletedAt:
            anyOf:
            - type: string
              minLength: 1
              format: date-time
              examples:
              - '2022-08-17T19:05:21.362Z'
            - type: 'null'
          answerOptions:
            type: array
            items:
              "$ref": "#/components/schemas/AnswerOptionDetail"
        additionalProperties: false
      - "$ref": "#/components/schemas/QuestionTranslations"
    LeadSegmentDetail:
      type: object
      required:
      - id
      - code
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        description:
          anyOf:
          - type: string
            minLength: 1
            description: Repeat visitor
          - type: 'null'
        code:
          type: string
          minLength: 1
          maxLength: 255
          description: REPEATVISITOR
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
      additionalProperties: false
    LeadSegmentSchedulingSetting:
      type: object
      required:
      - meetingType
      - subject
      properties:
        meetingType:
          type: string
          enum:
          - OFFICE
          - ON_LOCATION
          - PHONE
          - VIDEO
          examples:
          - OFFICE
        subject:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
      additionalProperties: false
    LeadSegmentSchedulingSettingInput:
      type: object
      required:
      - meetingType
      - subjectId
      properties:
        meetingType:
          type: string
          enum:
          - OFFICE
          - ON_LOCATION
          - PHONE
          - VIDEO
          examples:
          - OFFICE
        subjectId:
          type: string
          minLength: 1
          examples:
          - '123'
      additionalProperties: false
    ListingTranslations:
      type: object
      required:
      - translations
      properties:
        translations:
          type: object
          required:
          - name
          properties:
            name:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 1
            description:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 0
          additionalProperties: false
      additionalProperties: false
    ListingSummary:
      type: object
      required:
      - id
      - name
      - description
      - active
      - tags
      - timeZone
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        name:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        description:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        active:
          type: boolean
        internalNotes:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        tags:
          type: array
          items:
            type: string
            minLength: 1
        timeZone:
          type: string
          minLength: 1
          examples:
          - Europe/Brussels
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
        location:
          anyOf:
          - "$ref": "#/components/schemas/LocationSummary"
          - type: 'null'
      additionalProperties: false
    ListingDetail:
      allOf:
      - type: object
        required:
        - id
        - name
        - description
        - active
        - tags
        - timeZone
        - createdAt
        - updatedAt
        - deletedAt
        properties:
          id:
            type: string
            minLength: 1
            examples:
            - '123'
          name:
            anyOf:
            - type: object
              required:
              - language
              - value
              properties:
                language:
                  type: string
                  enum:
                  - da
                  - de
                  - el
                  - en
                  - es
                  - fr
                  - ja
                  - nl
                  - 'no'
                  - pl
                  examples:
                  - en
                value:
                  type: string
                  examples:
                  - Lorem ipsum
              additionalProperties: false
            - type: 'null'
          description:
            anyOf:
            - type: object
              required:
              - language
              - value
              properties:
                language:
                  type: string
                  enum:
                  - da
                  - de
                  - el
                  - en
                  - es
                  - fr
                  - ja
                  - nl
                  - 'no'
                  - pl
                  examples:
                  - en
                value:
                  type: string
                  examples:
                  - Lorem ipsum
              additionalProperties: false
            - type: 'null'
          externalId:
            anyOf:
            - type: string
              minLength: 1
              maxLength: 255
              examples:
              - ABCD1234
            - type: 'null'
          active:
            type: boolean
          internalNotes:
            anyOf:
            - type: string
              minLength: 1
            - type: 'null'
          tags:
            type: array
            items:
              type: string
              minLength: 1
          timeZone:
            type: string
            minLength: 1
            examples:
            - Europe/Brussels
          createdAt:
            type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          updatedAt:
            type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          deletedAt:
            anyOf:
            - type: string
              minLength: 1
              format: date-time
              examples:
              - '2022-08-17T19:05:21.362Z'
            - type: 'null'
          location:
            anyOf:
            - "$ref": "#/components/schemas/LocationDetail"
            - type: 'null'
        additionalProperties: false
      - "$ref": "#/components/schemas/ListingTranslations"
    ListingSchedulingSetting:
      type: object
      required:
      - employees
      - meetingTypes
      - offices
      - subjects
      properties:
        employees:
          type: array
          items:
            type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
        meetingTypes:
          type: array
          items:
            type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
        offices:
          type: array
          items:
            type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
        subjects:
          type: array
          items:
            type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
      additionalProperties: false
    ListingSchedulingSettingInput:
      type: object
      required:
      - employeeIds
      - meetingTypes
      - officeIds
      - subjectIds
      properties:
        employeeIds:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
        meetingTypes:
          type: array
          items:
            type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
        officeIds:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
        subjectIds:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
      additionalProperties: false
    ListingTimeSlotDetail:
      type: object
      required:
      - id
      - listing
      - date
      - startTime
      - endTime
      - bookable
      - assignments
      - createdAt
      - updatedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        listing:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        date:
          type: string
          minLength: 1
          examples:
          - '2022-08-01'
        startTime:
          type: string
          minLength: 1
          examples:
          - '09:00'
        endTime:
          type: string
          minLength: 1
          examples:
          - '17:00'
        bookable:
          type: boolean
        assignments:
          type: array
          items:
            type: object
            required:
            - employee
            - exclusive
            properties:
              employee:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    minLength: 1
                    examples:
                    - '123'
                additionalProperties: false
              exclusive:
                type: boolean
            additionalProperties: false
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
      additionalProperties: false
    MeetingRoomDetail:
      type: object
      required:
      - id
      - active
      - capacity
      - email
      - isWheelChairAccessible
      - name
      - provider
      - timeZone
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        active:
          type: boolean
        capacity:
          type: integer
          minimum: 0
          examples:
          - 5
        email:
          type: string
        isWheelChairAccessible:
          type: boolean
        name:
          type: string
          minLength: 1
        provider:
          type: string
          enum:
          - LOCAL
          - OFFICE365
        timeZone:
          type: string
          minLength: 1
          examples:
          - Europe/Brussels
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
      additionalProperties: false
    SubjectOfficeEmployeeSchedulingSetting:
      type: object
      required:
      - rank
      - employee
      - subject
      properties:
        rank:
          type: integer
          minimum: 1
          maximum: 3
        employee:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        subject:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
      additionalProperties: false
    SubjectOfficeEmployeeSchedulingSettingInput:
      type: object
      required:
      - rank
      - employeeId
      - subjectId
      properties:
        rank:
          type: integer
          minimum: 1
          maximum: 3
        employeeId:
          type: string
          minLength: 1
          examples:
          - '123'
        subjectId:
          type: string
          minLength: 1
          examples:
          - '123'
      additionalProperties: false
    OfficeTranslations:
      type: object
      required:
      - translations
      properties:
        translations:
          type: object
          required:
          - name
          properties:
            name:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 1
            description:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 0
            directions:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 0
            parkingInfo:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 0
          additionalProperties: false
      additionalProperties: false
    OfficeSummary:
      type: object
      required:
      - id
      - name
      - description
      - directions
      - parkingInfo
      - active
      - virtual
      - timeZone
      - usesIndependentAgents
      - meetingRooms
      - employeeRelations
      - createdAt
      - updatedAt
      - deletedAt
      - location
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        name:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        description:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        directions:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        parkingInfo:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        email:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - john.doe@pexip.com
          - type: 'null'
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        phoneNumber:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - "+32412345678"
          - type: 'null'
        metadata:
          anyOf:
          - type: object
            properties: {}
            additionalProperties: true
          - type: 'null'
        active:
          type: boolean
        virtual:
          type: boolean
        timeZone:
          type: string
          minLength: 1
          examples:
          - Europe/Brussels
        usesIndependentAgents:
          type: boolean
        meetingRooms:
          type: array
          items:
            type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
          additionalProperties: false
        employeeRelations:
          type: array
          items:
            type: object
            required:
            - role
            - employee
            properties:
              role:
                type: string
                enum:
                - AGENT
                - OFFICE_MANAGER
                examples:
                - AGENT
              employee:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    minLength: 1
                    examples:
                    - '123'
                additionalProperties: false
            additionalProperties: false
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
        location:
          "$ref": "#/components/schemas/LocationSummary"
      additionalProperties: false
    OfficeDetail:
      allOf:
      - type: object
        required:
        - id
        - name
        - description
        - directions
        - parkingInfo
        - active
        - virtual
        - timeZone
        - usesIndependentAgents
        - meetingRooms
        - employeeRelations
        - createdAt
        - updatedAt
        - deletedAt
        - location
        properties:
          id:
            type: string
            minLength: 1
            examples:
            - '123'
          name:
            anyOf:
            - type: object
              required:
              - language
              - value
              properties:
                language:
                  type: string
                  enum:
                  - da
                  - de
                  - el
                  - en
                  - es
                  - fr
                  - ja
                  - nl
                  - 'no'
                  - pl
                  examples:
                  - en
                value:
                  type: string
                  examples:
                  - Lorem ipsum
              additionalProperties: false
            - type: 'null'
          description:
            anyOf:
            - type: object
              required:
              - language
              - value
              properties:
                language:
                  type: string
                  enum:
                  - da
                  - de
                  - el
                  - en
                  - es
                  - fr
                  - ja
                  - nl
                  - 'no'
                  - pl
                  examples:
                  - en
                value:
                  type: string
                  examples:
                  - Lorem ipsum
              additionalProperties: false
            - type: 'null'
          directions:
            anyOf:
            - type: object
              required:
              - language
              - value
              properties:
                language:
                  type: string
                  enum:
                  - da
                  - de
                  - el
                  - en
                  - es
                  - fr
                  - ja
                  - nl
                  - 'no'
                  - pl
                  examples:
                  - en
                value:
                  type: string
                  examples:
                  - Lorem ipsum
              additionalProperties: false
            - type: 'null'
          parkingInfo:
            anyOf:
            - type: object
              required:
              - language
              - value
              properties:
                language:
                  type: string
                  enum:
                  - da
                  - de
                  - el
                  - en
                  - es
                  - fr
                  - ja
                  - nl
                  - 'no'
                  - pl
                  examples:
                  - en
                value:
                  type: string
                  examples:
                  - Lorem ipsum
              additionalProperties: false
            - type: 'null'
          email:
            anyOf:
            - type: string
              minLength: 1
              examples:
              - john.doe@pexip.com
            - type: 'null'
          externalId:
            anyOf:
            - type: string
              minLength: 1
              maxLength: 255
              examples:
              - ABCD1234
            - type: 'null'
          phoneNumber:
            anyOf:
            - type: string
              minLength: 1
              examples:
              - "+32412345678"
            - type: 'null'
          metadata:
            anyOf:
            - type: object
              properties: {}
              additionalProperties: true
            - type: 'null'
          active:
            type: boolean
          virtual:
            type: boolean
          timeZone:
            type: string
            minLength: 1
            examples:
            - Europe/Brussels
          usesIndependentAgents:
            type: boolean
          meetingRooms:
            type: array
            items:
              type: object
              required:
              - id
              properties:
                id:
                  type: string
                  minLength: 1
                  examples:
                  - '123'
            additionalProperties: false
          employeeRelations:
            type: array
            items:
              type: object
              required:
              - role
              - employee
              properties:
                role:
                  type: string
                  enum:
                  - AGENT
                  - OFFICE_MANAGER
                  examples:
                  - AGENT
                employee:
                  type: object
                  required:
                  - id
                  properties:
                    id:
                      type: string
                      minLength: 1
                      examples:
                      - '123'
                  additionalProperties: false
              additionalProperties: false
          createdAt:
            type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          updatedAt:
            type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          deletedAt:
            anyOf:
            - type: string
              minLength: 1
              format: date-time
              examples:
              - '2022-08-17T19:05:21.362Z'
            - type: 'null'
          location:
            "$ref": "#/components/schemas/LocationDetail"
        additionalProperties: false
      - "$ref": "#/components/schemas/OfficeTranslations"
    OfficeSchedulingSetting:
      type: object
      required:
      - meetingType
      properties:
        meetingType:
          type: string
          enum:
          - OFFICE
          - ON_LOCATION
          - PHONE
          - VIDEO
          examples:
          - OFFICE
      additionalProperties: false
    SubjectOfficeMeetingTypeAvailabilitySetting:
      type: object
      required:
      - meetingType
      - subject
      properties:
        meetingType:
          type: string
          enum:
          - OFFICE
          - ON_LOCATION
          - PHONE
          - VIDEO
          examples:
          - OFFICE
        autoAccept:
          anyOf:
          - type: boolean
            examples:
            - true
            - false
          - type: 'null'
        estimatedDuration:
          anyOf:
          - type: integer
            minimum: 1
            examples:
            - 5
          - type: 'null'
        timeSlotGranularity:
          anyOf:
          - type: integer
            minimum: 1
            examples:
            - 5
          - type: 'null'
        trailingBufferTime:
          anyOf:
          - type: integer
            minimum: 0
            examples:
            - 5
          - type: 'null'
        timeSlotEarliestPossible:
          anyOf:
          - type: integer
            minimum: 0
            examples:
            - 5
          - type: 'null'
        timeSlotLatestPossible:
          anyOf:
          - type: integer
            minimum: 0
            examples:
            - 5
          - type: 'null'
        maxConcurrentAppointments:
          anyOf:
          - type: integer
            minimum: 1
            examples:
            - 5
          - type: 'null'
        subject:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
      additionalProperties: false
    SubjectOfficeMeetingTypeAvailabilitySettingInput:
      type: object
      required:
      - meetingType
      - subjectId
      properties:
        meetingType:
          type: string
          enum:
          - OFFICE
          - ON_LOCATION
          - PHONE
          - VIDEO
          examples:
          - OFFICE
        autoAccept:
          anyOf:
          - type: boolean
            examples:
            - true
            - false
          - type: 'null'
        estimatedDuration:
          anyOf:
          - type: integer
            minimum: 1
            examples:
            - 5
          - type: 'null'
        timeSlotGranularity:
          anyOf:
          - type: integer
            minimum: 1
            examples:
            - 5
          - type: 'null'
        trailingBufferTime:
          anyOf:
          - type: integer
            minimum: 0
            examples:
            - 5
          - type: 'null'
        timeSlotEarliestPossible:
          anyOf:
          - type: integer
            minimum: 0
            examples:
            - 5
          - type: 'null'
        timeSlotLatestPossible:
          anyOf:
          - type: integer
            minimum: 0
            examples:
            - 5
          - type: 'null'
        maxConcurrentAppointments:
          anyOf:
          - type: integer
            minimum: 1
            examples:
            - 5
          - type: 'null'
        subjectId:
          type: string
          minLength: 1
          examples:
          - '123'
      additionalProperties: false
    SubjectOfficeSchedulingSetting:
      type: object
      required:
      - meetingRoomSelection
      - meetingType
      - subject
      properties:
        meetingRoomSelection:
          type: string
          enum:
          - IF_AVAILABLE
          - NO_MEETING_ROOM
          - REQUIRED
          examples:
          - IF_AVAILABLE
        meetingType:
          type: string
          enum:
          - OFFICE
          - ON_LOCATION
          - PHONE
          - VIDEO
          examples:
          - OFFICE
        subject:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
      additionalProperties: false
    SubjectOfficeSchedulingSettingInput:
      type: object
      required:
      - meetingType
      - subjectId
      properties:
        meetingRoomSelection:
          type: string
          enum:
          - IF_AVAILABLE
          - NO_MEETING_ROOM
          - REQUIRED
          examples:
          - IF_AVAILABLE
        meetingType:
          type: string
          enum:
          - OFFICE
          - ON_LOCATION
          - PHONE
          - VIDEO
          examples:
          - OFFICE
        subjectId:
          type: string
          minLength: 1
          examples:
          - '123'
      additionalProperties: false
    RegionDetail:
      type: object
      required:
      - id
      - name
      - code
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        name:
          type: string
          minLength: 1
        code:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
      additionalProperties: false
    SchedulableEmployeeSummary:
      type: object
      required:
      - id
      - function
      - language
      - translations
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        function:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        communicationEmail:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - john.doe@pexip.com
          - type: 'null'
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        firstName:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - John
          - type: 'null'
        lastName:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - Doe
          - type: 'null'
        language:
          type: string
          enum:
          - da
          - de
          - el
          - en
          - es
          - fr
          - ja
          - nl
          - 'no'
          - pl
        phoneNumber:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - "+32412345678"
          - type: 'null'
        profilePictureUrl:
          anyOf:
          - type: string
            minLength: 1
            format: uri
            examples:
            - https://wwww.example.net/abc123
          - type: 'null'
        translations:
          type: object
          properties:
            function:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 0
          additionalProperties: false
      additionalProperties: false
    SchedulableOfficeSummary:
      type: object
      required:
      - id
      - name
      - description
      - directions
      - parkingInfo
      - location
      - virtual
      - timeZone
      - translations
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        name:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        description:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        directions:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        parkingInfo:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        distance:
          anyOf:
          - type: number
          - type: 'null'
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        phoneNumber:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - "+32412345678"
          - type: 'null'
        location:
          "$ref": "#/components/schemas/LocationSummary"
        email:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - john.doe@pexip.com
          - type: 'null'
        virtual:
          type: boolean
        timeZone:
          type: string
          minLength: 1
          examples:
          - Europe/Brussels
        translations:
          type: object
          required:
          - name
          properties:
            name:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 1
            description:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 0
            directions:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 0
            parkingInfo:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 0
          additionalProperties: false
      additionalProperties: false
    SchedulableSubjectSummary:
      type: object
      required:
      - id
      - name
      - description
      - instructions
      - order
      - subjectGroup
      - translations
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        name:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        description:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        instructions:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        order:
          type: integer
          minimum: 0
          examples:
          - 5
        subjectGroup:
          type: object
          required:
          - id
          - color
          - order
          - translations
          - name
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
            color:
              type: string
              minLength: 7
              maxLength: 7
              examples:
              - "#89d0c1"
            order:
              type: integer
              minimum: 0
              examples:
              - 5
            externalId:
              anyOf:
              - type: string
                minLength: 1
                maxLength: 255
                examples:
                - ABCD1234
              - type: 'null'
            image:
              anyOf:
              - type: string
                minLength: 1
                format: uri
                examples:
                - https://wwww.example.net/abc123
              - type: 'null'
            translations:
              type: object
              required:
              - name
              properties:
                name:
                  type: array
                  items:
                    type: object
                    required:
                    - language
                    - value
                    properties:
                      language:
                        type: string
                        enum:
                        - da
                        - de
                        - el
                        - en
                        - es
                        - fr
                        - ja
                        - nl
                        - 'no'
                        - pl
                        examples:
                        - en
                      value:
                        type: string
                        minLength: 1
                        maxLength: 255
                        examples:
                        - Lorem ipsum
                    additionalProperties: false
                  minItems: 1
              additionalProperties: false
            name:
              anyOf:
              - type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              - type: 'null'
          additionalProperties: false
        translations:
          type: object
          required:
          - name
          properties:
            name:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 1
            description:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 0
            instructions:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 0
          additionalProperties: false
      additionalProperties: false
    ScimFilter:
      type: string
      minLength: 1
      examples:
      - userName+eq+%22476e46fa-0ac0-49df-8823-58d48312ed76%22
    ScimUserDetail:
      type: object
      required:
      - schemas
      - userName
      - emails
      - id
      - name
      - active
      - preferredLanguage
      - timezone
      - roles
      - meta
      properties:
        schemas:
          type: array
          items:
            type: string
            examples:
            - urn:ietf:params:scim:schemas:core:2.0:User
        userName:
          type: string
          minLength: 1
        emails:
          type: array
          items:
            type: object
            required:
            - primary
            - type
            - value
            properties:
              primary:
                type: boolean
              type:
                type: string
                minLength: 1
              value:
                type: string
                minLength: 1
          minItems: 1
        id:
          type: string
          minLength: 1
        name:
          type: object
          properties:
            familyName:
              anyOf:
              - type: string
                minLength: 1
              - type: 'null'
            givenName:
              anyOf:
              - type: string
                minLength: 1
              - type: 'null'
          additionalProperties: false
        active:
          type: boolean
        preferredLanguage:
          type: string
          enum:
          - da
          - de
          - el
          - en
          - es
          - fr
          - ja
          - nl
          - 'no'
          - pl
        timezone:
          type: string
          minLength: 1
        roles:
          type: array
          items:
            type: object
            required:
            - value
            properties:
              value:
                type: string
                enum:
                - ADMIN
                - AGENT
                - CENTRAL_PLANNER
                - OFFICE_MANAGER
                examples:
                - ADMIN
        meta:
          type: object
          required:
          - resourceType
          - created
          - lastModified
          properties:
            resourceType:
              type: string
              minLength: 1
            created:
              type: string
              minLength: 1
              format: date-time
              examples:
              - '2022-08-17T19:05:21.362Z'
            lastModified:
              type: string
              minLength: 1
              format: date-time
              examples:
              - '2022-08-17T19:05:21.362Z'
          additionalProperties: false
      additionalProperties: false
    ScimUserSummary:
      type: object
      required:
      - schemas
      - userName
      - emails
      - id
      - name
      - active
      - preferredLanguage
      - timezone
      - roles
      - meta
      properties:
        schemas:
          type: array
          items:
            type: string
            examples:
            - urn:ietf:params:scim:schemas:core:2.0:User
        userName:
          type: string
          minLength: 1
        emails:
          type: array
          items:
            type: object
            required:
            - primary
            - type
            - value
            properties:
              primary:
                type: boolean
              type:
                type: string
                minLength: 1
              value:
                type: string
                minLength: 1
          minItems: 1
        id:
          type: string
          minLength: 1
        name:
          type: object
          properties:
            familyName:
              anyOf:
              - type: string
                minLength: 1
              - type: 'null'
            givenName:
              anyOf:
              - type: string
                minLength: 1
              - type: 'null'
          additionalProperties: false
        active:
          type: boolean
        preferredLanguage:
          type: string
          enum:
          - da
          - de
          - el
          - en
          - es
          - fr
          - ja
          - nl
          - 'no'
          - pl
        timezone:
          type: string
          minLength: 1
        roles:
          type: array
          items:
            type: object
            required:
            - value
            properties:
              value:
                type: string
                enum:
                - ADMIN
                - AGENT
                - CENTRAL_PLANNER
                - OFFICE_MANAGER
                examples:
                - ADMIN
        meta:
          type: object
          required:
          - resourceType
          - created
          - lastModified
          properties:
            resourceType:
              type: string
              minLength: 1
            created:
              type: string
              minLength: 1
              format: date-time
              examples:
              - '2022-08-17T19:05:21.362Z'
            lastModified:
              type: string
              minLength: 1
              format: date-time
              examples:
              - '2022-08-17T19:05:21.362Z'
          additionalProperties: false
      additionalProperties: false
    ScimCreateInput:
      type: object
      required:
      - schemas
      - userName
      - emails
      - name
      - active
      properties:
        schemas:
          type: array
          items:
            type: string
            examples:
            - urn:ietf:params:scim:schemas:core:2.0:User
        userName:
          type: string
          minLength: 1
        emails:
          type: array
          items:
            type: object
            required:
            - primary
            - type
            - value
            properties:
              primary:
                type: boolean
              type:
                type: string
                minLength: 1
              value:
                type: string
                minLength: 1
          minItems: 1
        name:
          type: object
          required:
          - familyName
          - givenName
          properties:
            familyName:
              type: string
              minLength: 1
            givenName:
              type: string
              minLength: 1
          errorMessage:
            required:
              familyName: The familyName property is required
              givenName: The givenName (first name) property is required
        active:
          type: boolean
        preferredLanguage:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        timezone:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        roles:
          anyOf:
          - type: array
            items:
              type: object
              required:
              - value
              properties:
                value:
                  type: string
                  enum:
                  - ADMIN
                  - AGENT
                  - CENTRAL_PLANNER
                  - OFFICE_MANAGER
                  examples:
                  - ADMIN
              additionalProperties: true
          - type: 'null'
      errorMessage:
        required:
          name: The name property is required, this is typically a combination of
            first and last name
    SubjectMeetingTypeAvailabilitySetting:
      type: object
      required:
      - meetingType
      - autoAccept
      - estimatedDuration
      - timeSlotGranularity
      - trailingBufferTime
      - timeSlotEarliestPossible
      - timeSlotLatestPossible
      - maxConcurrentAppointments
      - rank1offset
      - rank2offset
      properties:
        meetingType:
          type: string
          enum:
          - OFFICE
          - ON_LOCATION
          - PHONE
          - VIDEO
          examples:
          - OFFICE
        autoAccept:
          type: boolean
        estimatedDuration:
          type: integer
          minimum: 1
          examples:
          - 5
        timeSlotGranularity:
          type: integer
          minimum: 1
          examples:
          - 5
        trailingBufferTime:
          type: integer
          minimum: 0
          examples:
          - 5
        timeSlotEarliestPossible:
          type: integer
          minimum: 0
          examples:
          - 5
        timeSlotLatestPossible:
          type: integer
          minimum: 0
          examples:
          - 5
        maxConcurrentAppointments:
          type: integer
          minimum: 0
          examples:
          - 5
        rank1offset:
          type: integer
          minimum: 0
          examples:
          - 5
        rank2offset:
          type: integer
          minimum: 0
          examples:
          - 5
      additionalProperties: false
    SubjectSchedulingSetting:
      type: object
      required:
      - meetingType
      properties:
        meetingType:
          type: string
          enum:
          - OFFICE
          - ON_LOCATION
          - PHONE
          - VIDEO
          examples:
          - OFFICE
      additionalProperties: false
    SubjectTranslations:
      type: object
      required:
      - translations
      properties:
        translations:
          type: object
          required:
          - name
          properties:
            name:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 1
            description:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 0
            instructions:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 0
          additionalProperties: false
      additionalProperties: false
    SubjectSummary:
      type: object
      required:
      - id
      - enabledForInternalUse
      - enabledForCustomerUse
      - order
      - name
      - description
      - instructions
      - subjectGroup
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        enabledForInternalUse:
          type: boolean
        enabledForCustomerUse:
          type: boolean
        order:
          type: integer
          minimum: 0
          examples:
          - 5
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        name:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        description:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        instructions:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        subjectGroup:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        cancellationByAgentForm:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        cancellationByCustomerForm:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        completionByAgentForm:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        questionnaireForm:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
            additionalProperties: false
          - type: 'null'
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
      additionalProperties: false
    SubjectDetail:
      allOf:
      - "$ref": "#/components/schemas/SubjectSummary"
      - "$ref": "#/components/schemas/SubjectTranslations"
    SubjectGroupTranslations:
      type: object
      required:
      - translations
      properties:
        translations:
          type: object
          required:
          - name
          properties:
            name:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 1
            description:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  value:
                    type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                additionalProperties: false
              minItems: 0
          additionalProperties: false
      additionalProperties: false
    SubjectGroupSummary:
      type: object
      required:
      - id
      - color
      - order
      - name
      - description
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        color:
          type: string
          minLength: 7
          maxLength: 7
          examples:
          - "#89d0c1"
        order:
          type: integer
          minimum: 0
          examples:
          - 5
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        image:
          anyOf:
          - type: string
            minLength: 1
            format: uri
            examples:
            - https://wwww.example.net/abc123
          - type: 'null'
        name:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        description:
          anyOf:
          - type: object
            required:
            - language
            - value
            properties:
              language:
                type: string
                enum:
                - da
                - de
                - el
                - en
                - es
                - fr
                - ja
                - nl
                - 'no'
                - pl
                examples:
                - en
              value:
                type: string
                examples:
                - Lorem ipsum
            additionalProperties: false
          - type: 'null'
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
      additionalProperties: false
    SubjectGroupDetail:
      allOf:
      - "$ref": "#/components/schemas/SubjectGroupSummary"
      - "$ref": "#/components/schemas/SubjectGroupTranslations"
    UnavailabilityDetail:
      type: object
      required:
      - answers
      - employee
      - type
      - createdAt
      - updatedAt
      properties:
        answers:
          type: array
          items:
            "$ref": "#/components/schemas/AnswerDetail"
        employee:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
          additionalProperties: false
        start:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-01T00:00:00.000Z'
          - type: 'null'
        startDate:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - '2022-08-01'
          - type: 'null'
        end:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T00:00:00.000Z'
          - type: 'null'
        endDate:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - '2022-08-17'
          - type: 'null'
        type:
          type: string
          enum:
          - APPOINTMENT
          - EXTERNAL_CALENDAR
          - LISTING_EXCLUSIVITY
          - USER_DEFINED
          examples:
          - USER_DEFINED
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
      additionalProperties: false
    LocationWebhook:
      type: object
      required:
      - postalCode
      - countryCode
      - geolocation
      - translations
      properties:
        postalCode:
          anyOf:
          - type: string
          - type: 'null'
        countryCode:
          type: string
          minLength: 1
        geolocation:
          type: object
          required:
          - latitude
          - longitude
          properties:
            latitude:
              type: number
              minimum: -90
              maximum: 90
              examples:
              - 51.0479466
            longitude:
              type: number
              minimum: -180
              maximum: 180
              examples:
              - 3.6912248
        translations:
          type: object
          required:
          - city
          - street1
          - street2
          - state
          properties:
            city:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    minLength: 1
                  value:
                    type: string
                    minLength: 1
            street1:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    minLength: 1
                  value:
                    type: string
                    minLength: 1
            street2:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    minLength: 1
                  value:
                    type: string
                    minLength: 1
            state:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    minLength: 1
                  value:
                    type: string
                    minLength: 1
      additionalProperties: true
    CustomerWebhook:
      type: object
      required:
      - id
      - existing
      - language
      - timeZone
      - location
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        company:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        customerNumber:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        email:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        existing:
          type: boolean
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        firstName:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        lastName:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        language:
          type: string
          minLength: 1
        phoneNumber:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        timeZone:
          type: string
          minLength: 1
        location:
          anyOf:
          - "$ref": "#/components/schemas/LocationWebhook"
          - type: 'null'
      additionalProperties: true
    EmployeeWebhook:
      type: object
      required:
      - id
      - email
      - firstName
      - lastName
      - language
      - metadata
      - onlinePlanning
      - translations
      - availableRoles
      - status
      - timeZone
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        communicationEmail:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        email:
          type: string
          minLength: 1
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        firstName:
          type: string
          minLength: 1
        lastName:
          type: string
          minLength: 1
        language:
          type: string
          minLength: 1
        metadata:
          anyOf:
          - type: object
            properties: {}
            additionalProperties: true
          - type: 'null'
        onlinePlanning:
          type: boolean
        phoneNumber:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        profilePictureUrl:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        staticVideoUrl:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        translations:
          type: object
          required:
          - function
          properties:
            function:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    minLength: 1
                  value:
                    type: string
                    minLength: 1
        availableRoles:
          type: array
          items:
            type: string
            minLength: 1
        status:
          type: string
          minLength: 1
        timeZone:
          type: string
          minLength: 1
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
      additionalProperties: true
    LeadSegmentWebhook:
      type: object
      required:
      - id
      - code
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        code:
          type: string
          minLength: 1
        description:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
      additionalProperties: true
    ListingWebhook:
      type: object
      required:
      - id
      - active
      - timeZone
      - tags
      - location
      - translations
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        active:
          type: boolean
        externalId:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        timeZone:
          type: string
          minLength: 1
        tags:
          type: array
          items:
            type: string
            minLength: 1
        location:
          anyOf:
          - "$ref": "#/components/schemas/LocationWebhook"
          - type: 'null'
        translations:
          type: object
          required:
          - name
          - description
          properties:
            name:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    minLength: 1
                  value:
                    type: string
                    minLength: 1
            description:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    minLength: 1
                  value:
                    type: string
                    minLength: 1
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
      additionalProperties: true
    MeetingRoomWebhook:
      type: object
      required:
      - id
      - name
      - provider
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        email:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        external:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        name:
          type: string
          minLength: 1
        provider:
          type: string
          minLength: 1
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
      additionalProperties: true
    OfficeWebhook:
      type: object
      required:
      - id
      - active
      - timeZone
      - usesIndependentAgents
      - virtual
      - metadata
      - location
      - translations
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        active:
          type: boolean
        email:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        phoneNumber:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        timeZone:
          type: string
          minLength: 1
        usesIndependentAgents:
          type: boolean
        virtual:
          type: boolean
        metadata:
          anyOf:
          - type: object
            properties: {}
            additionalProperties: true
          - type: 'null'
        location:
          "$ref": "#/components/schemas/LocationWebhook"
        translations:
          type: object
          required:
          - name
          - description
          - directions
          - parkingInfo
          properties:
            name:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    minLength: 1
                  value:
                    type: string
                    minLength: 1
            description:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    minLength: 1
                  value:
                    type: string
                    minLength: 1
            directions:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    minLength: 1
                  value:
                    type: string
                    minLength: 1
            parkingInfo:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    minLength: 1
                  value:
                    type: string
                    minLength: 1
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
      additionalProperties: true
    SubjectWebhook:
      type: object
      required:
      - id
      - enabledForCustomerUse
      - enabledForInternalUse
      - order
      - cancellationByAgentForm
      - cancellationByCustomerForm
      - completionByAgentForm
      - questionnaireForm
      - subjectGroup
      - translations
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        enabledForCustomerUse:
          type: boolean
        enabledForInternalUse:
          type: boolean
        order:
          type: integer
          minimum: 0
          examples:
          - 5
        cancellationByAgentForm:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
          - type: 'null'
        cancellationByCustomerForm:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
          - type: 'null'
        completionByAgentForm:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
          - type: 'null'
        questionnaireForm:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
          - type: 'null'
        subjectGroup:
          type: object
          required:
          - id
          - order
          - color
          - translations
          - createdAt
          - updatedAt
          - deletedAt
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
            externalId:
              anyOf:
              - type: string
                minLength: 1
                maxLength: 255
                examples:
                - ABCD1234
              - type: 'null'
            order:
              type: integer
              minimum: 0
              examples:
              - 5
            color:
              type: string
              minLength: 1
            image:
              anyOf:
              - type: string
                minLength: 1
              - type: 'null'
            translations:
              type: object
              required:
              - name
              properties:
                name:
                  type: array
                  items:
                    type: object
                    required:
                    - language
                    - value
                    properties:
                      language:
                        type: string
                        minLength: 1
                      value:
                        type: string
                        minLength: 1
            createdAt:
              type: string
              minLength: 1
              format: date-time
              examples:
              - '2022-08-17T19:05:21.362Z'
            updatedAt:
              type: string
              minLength: 1
              format: date-time
              examples:
              - '2022-08-17T19:05:21.362Z'
            deletedAt:
              anyOf:
              - type: string
                minLength: 1
                format: date-time
                examples:
                - '2022-08-17T19:05:21.362Z'
              - type: 'null'
        translations:
          type: object
          required:
          - name
          - description
          - instructions
          properties:
            name:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                    minLength: 1
                  value:
                    type: string
                    minLength: 1
            description:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                  value:
                    type: string
            instructions:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                  value:
                    type: string
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
      additionalProperties: true
    AnswerOptionWebhook:
      type: object
      required:
      - id
      - translations
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        value:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        translations:
          type: object
          required:
          - label
          properties:
            label:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                  value:
                    type: string
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
      additionalProperties: true
    FileWebhook:
      type: object
      required:
      - id
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
      additionalProperties: true
    QuestionWebhook:
      type: object
      required:
      - id
      - order
      - translations
      - createdAt
      - updatedAt
      - deletedAt
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        order:
          type: integer
          minimum: 0
          examples:
          - 5
        translations:
          type: object
          required:
          - label
          properties:
            label:
              type: array
              items:
                type: object
                required:
                - language
                - value
                properties:
                  language:
                    type: string
                  value:
                    type: string
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        deletedAt:
          anyOf:
          - type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          - type: 'null'
      additionalProperties: true
    AppointmentUrlsWebhook:
      type: object
      required:
      - cancelUrl
      - editUrl
      - inviteUrl
      - declineUrl
      - office365CalendarUrl
      - googleCalendarUrl
      - icalUrl
      properties:
        cancelUrl:
          type: string
          minLength: 1
        editUrl:
          type: string
          minLength: 1
        inviteUrl:
          type: string
          minLength: 1
        declineUrl:
          type: string
          minLength: 1
        office365CalendarUrl:
          type: string
          minLength: 1
        googleCalendarUrl:
          type: string
          minLength: 1
        icalUrl:
          type: string
          minLength: 1
      additionalProperties: true
    AppointmentParticipantWebhook:
      allOf:
      - type: object
        required:
        - role
        - token
        - type
        - createdAt
        properties:
          role:
            type: string
            minLength: 1
          token:
            type: string
            minLength: 1
          type:
            type: string
            minLength: 1
          videoUrl:
            anyOf:
            - type: string
              minLength: 1
            - type: 'null'
          videoTestUrl:
            anyOf:
            - type: string
              minLength: 1
            - type: 'null'
          createdAt:
            type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          employee:
            "$ref": "#/components/schemas/EmployeeWebhook"
          customer:
            "$ref": "#/components/schemas/CustomerWebhook"
      - "$ref": "#/components/schemas/AppointmentUrlsWebhook"
      additionalProperties: true
    AppointmentWebhook:
      type: object
      required:
      - status
      - id
      - uuid
      - subject
      - office
      - participants
      - answers
      - callbackRequest
      - location
      - listing
      - leadSegment
      - meetingType
      - hybrid
      - trailingBufferTime
      - meetingRoom
      - metadata
      - userCommunication
      - createdAt
      - createdByType
      - createdFrom
      - updatedAt
      - updatedByType
      - updatedFrom
      properties:
        status:
          type: string
          minLength: 1
          description: ACCEPTED, ALTERNATIVE_DATE_REQUESTED, CANCELLED, COMPLETED,
            INCOMING_REQUEST, NO_SHOW, OUTGOING_INVITE
        start:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        end:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        uuid:
          type: string
          minLength: 1
        subject:
          "$ref": "#/components/schemas/SubjectWebhook"
        office:
          "$ref": "#/components/schemas/OfficeWebhook"
        participants:
          type: array
          items:
            "$ref": "#/components/schemas/AppointmentParticipantWebhook"
        answers:
          type: array
          items:
            type: object
            required:
            - id
            - form
            - question
            - answerType
            - selectedAnswerOptions
            - files
            - createdAt
            - updatedAt
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
              form:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    minLength: 1
                    examples:
                    - '123'
              question:
                "$ref": "#/components/schemas/QuestionWebhook"
              answerType:
                type: string
                minLength: 1
              value:
                anyOf:
                - type: string
                  minLength: 1
                - type: 'null'
              selectedAnswerOptions:
                anyOf:
                - type: array
                  items:
                    "$ref": "#/components/schemas/AnswerOptionWebhook"
                - type: 'null'
              files:
                anyOf:
                - type: array
                  items:
                    "$ref": "#/components/schemas/FileWebhook"
                - type: 'null'
              createdAt:
                type: string
                minLength: 1
                format: date-time
                examples:
                - '2022-08-17T19:05:21.362Z'
              updatedAt:
                type: string
                minLength: 1
                format: date-time
                examples:
                - '2022-08-17T19:05:21.362Z'
        callbackRequest:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
          - type: 'null'
        location:
          anyOf:
          - "$ref": "#/components/schemas/LocationWebhook"
          - type: 'null'
        listing:
          anyOf:
          - "$ref": "#/components/schemas/ListingWebhook"
          - type: 'null'
        leadSegment:
          anyOf:
          - "$ref": "#/components/schemas/LeadSegmentWebhook"
          - type: 'null'
        meetingType:
          type: string
          minLength: 1
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        hybrid:
          type: boolean
        trailingBufferTime:
          type: integer
          minimum: 0
          examples:
          - 5
        internalNotes:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        meetingRoom:
          anyOf:
          - "$ref": "#/components/schemas/MeetingRoomWebhook"
          - type: 'null'
        messageForCustomer:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        metadata:
          anyOf:
          - type: object
            properties: {}
            additionalProperties: true
          - type: 'null'
        userCommunication:
          anyOf:
          - type: object
            required:
            - notifications
            - notificationsOverrideCurrentAction
            - reminders
            properties:
              notifications:
                type: string
                minLength: 1
              notificationsOverrideCurrentAction:
                type: string
                minLength: 1
              reminders:
                type: string
                minLength: 1
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        createdById:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        createdByType:
          type: string
          minLength: 1
        createdFrom:
          type: string
          minLength: 1
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedById:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        updatedByType:
          type: string
          minLength: 1
        updatedFrom:
          type: string
          minLength: 1
      additionalProperties: true
    PreviousAppointmentWebhook:
      type: object
      required:
      - status
      - location
      - meetingType
      - subject
      - office
      - leadSegment
      - listing
      - meetingRoom
      - participants
      properties:
        status:
          type: string
          minLength: 1
          description: ACCEPTED, ALTERNATIVE_DATE_REQUESTED, CANCELLED, COMPLETED,
            INCOMING_REQUEST, NO_SHOW, OUTGOING_INVITE
        start:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        end:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        location:
          anyOf:
          - "$ref": "#/components/schemas/LocationWebhook"
          - type: 'null'
        meetingType:
          type: string
          minLength: 1
        subject:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
        office:
          type: object
          required:
          - id
          properties:
            id:
              type: string
              minLength: 1
              examples:
              - '123'
        leadSegment:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
          - type: 'null'
        listing:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
          - type: 'null'
        meetingRoom:
          anyOf:
          - type: object
            required:
            - id
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
          - type: 'null'
        participants:
          type: array
          items:
            type: object
            required:
            - role
            - token
            - createdAt
            properties:
              role:
                type: string
                minLength: 1
              token:
                type: string
                minLength: 1
              videoUrl:
                anyOf:
                - type: string
                  minLength: 1
                - type: 'null'
              videoTestUrl:
                anyOf:
                - type: string
                  minLength: 1
                - type: 'null'
              createdAt:
                type: string
                minLength: 1
                format: date-time
                examples:
                - '2022-08-17T19:05:21.362Z'
              customer:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    minLength: 1
                    examples:
                    - '123'
              employee:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    minLength: 1
                    examples:
                    - '123'
      additionalProperties: true
    CallbackRequestParticipantWebhook:
      allOf:
      - type: object
        required:
        - role
        - type
        - createdAt
        properties:
          role:
            type: string
            minLength: 1
          type:
            type: string
            minLength: 1
          createdAt:
            type: string
            minLength: 1
            format: date-time
            examples:
            - '2022-08-17T19:05:21.362Z'
          employee:
            "$ref": "#/components/schemas/EmployeeWebhook"
          customer:
            "$ref": "#/components/schemas/CustomerWebhook"
      - "$ref": "#/components/schemas/AppointmentUrlsWebhook"
      additionalProperties: true
    CallbackRequestWebhook:
      type: object
      required:
      - id
      - status
      - subject
      - office
      - participants
      - answers
      - location
      - listing
      - leadSegment
      - meetingType
      - metadata
      - createdAt
      - createdByType
      - createdFrom
      - updatedAt
      - updatedByType
      - updatedFrom
      properties:
        id:
          type: string
          minLength: 1
          examples:
          - '123'
        status:
          type: string
          minLength: 1
        subject:
          anyOf:
          - "$ref": "#/components/schemas/SubjectWebhook"
          - type: 'null'
        office:
          anyOf:
          - "$ref": "#/components/schemas/OfficeWebhook"
          - type: 'null'
        participants:
          type: array
          items:
            "$ref": "#/components/schemas/CallbackRequestParticipantWebhook"
        answers:
          type: array
          items:
            type: object
            required:
            - id
            - form
            - question
            - answerType
            - selectedAnswerOptions
            - files
            - createdAt
            - updatedAt
            properties:
              id:
                type: string
                minLength: 1
                examples:
                - '123'
              form:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    minLength: 1
                    examples:
                    - '123'
              question:
                "$ref": "#/components/schemas/QuestionWebhook"
              answerType:
                type: string
                minLength: 1
              value:
                anyOf:
                - type: string
                  minLength: 1
                - type: 'null'
              selectedAnswerOptions:
                anyOf:
                - type: array
                  items:
                    "$ref": "#/components/schemas/AnswerOptionWebhook"
                - type: 'null'
              files:
                anyOf:
                - type: array
                  items:
                    "$ref": "#/components/schemas/FileWebhook"
                - type: 'null'
              createdAt:
                type: string
                minLength: 1
                format: date-time
                examples:
                - '2022-08-17T19:05:21.362Z'
              updatedAt:
                type: string
                minLength: 1
                format: date-time
                examples:
                - '2022-08-17T19:05:21.362Z'
        location:
          anyOf:
          - "$ref": "#/components/schemas/LocationWebhook"
          - type: 'null'
        listing:
          anyOf:
          - "$ref": "#/components/schemas/ListingWebhook"
          - type: 'null'
        leadSegment:
          anyOf:
          - "$ref": "#/components/schemas/LeadSegmentWebhook"
          - type: 'null'
        meetingType:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        externalId:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          - type: 'null'
        internalNotes:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        metadata:
          anyOf:
          - type: object
            properties: {}
            additionalProperties: true
          - type: 'null'
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        createdById:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        createdByType:
          type: string
          minLength: 1
        createdFrom:
          type: string
          minLength: 1
        updatedAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        updatedById:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        updatedByType:
          type: string
          minLength: 1
        updatedFrom:
          type: string
          minLength: 1
      additionalProperties: true
    CommunicationTemplateWebhook:
      type: object
      required:
      - language
      - timeZone
      - content
      - images
      properties:
        language:
          type: string
          minLength: 1
        timeZone:
          type: string
          minLength: 1
        content:
          type: string
          minLength: 1
        subject:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        images:
          type: array
          items:
            type: object
            required:
            - name
            - content
            - contentType
            properties:
              name:
                type: string
                minLength: 1
              content:
                type: string
                minLength: 1
              contentType:
                type: string
                minLength: 1
      additionalProperties: true
    CommunicationReceiverWebhook:
      type: object
      required:
      - language
      - timeZone
      properties:
        fullName:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        email:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        phoneNumber:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        language:
          type: string
          minLength: 1
        timeZone:
          type: string
          minLength: 1
      additionalProperties: true
    CommunicationDataWebhook:
      type: object
      required:
      - resourceId
      - resourceType
      - channel
      - receiverId
      - receiverType
      - receiverRole
      - communicationType
      - correlationId
      - scheduledAt
      - createdAt
      properties:
        resourceId:
          type: string
          minLength: 1
        resourceType:
          type: string
          minLength: 1
          description: '"APPOINTMENT" or "CALLBACK_REQUEST"'
        channel:
          type: string
          minLength: 1
          description: '"EMAIL" or "TEXT_MESSAGE"'
        receiverId:
          type: string
          minLength: 1
        receiverType:
          type: string
          minLength: 1
          description: '"CUSTOMER", "EMPLOYEE", "OFFICE" or "ENTERPRISE"'
        receiverRole:
          type: string
          minLength: 1
          description: '"PRIMARY" or "SECONDARY"'
        communicationType:
          type: string
          minLength: 1
          description: '"NOTIFICATION" or "REMINDER"'
        correlationId:
          type: string
          minLength: 1
        scheduledAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
        createdAt:
          type: string
          minLength: 1
          format: date-time
          examples:
          - '2022-08-17T19:05:21.362Z'
      additionalProperties: true
    AppointmentCreateWebhookData:
      type: object
      required:
      - eventType
      - appointment
      - previousAppointment
      properties:
        eventType:
          type: string
          minLength: 1
          description: '"ACCEPT", "CANCEL", "COMPLETE", "CREATE", "CREATE_REQUEST",
            "GENERIC_UPDATE", "REASSIGN", "REOPEN", "REQUEST_ALTERNATIVE_DATE", "RESCHEDULE",
            "RESCHEDULE_REQUEST", "UPDATE_LOCATION" or "UPDATE_MEETING_TYPE"'
        message:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        appointment:
          "$ref": "#/components/schemas/AppointmentWebhook"
        previousAppointment:
          type: 'null'
      additionalProperties: true
    AppointmentUpdateWebhookData:
      type: object
      required:
      - eventType
      - appointment
      - previousAppointment
      properties:
        eventType:
          type: string
          minLength: 1
          description: '"ACCEPT", "CANCEL", "COMPLETE", "CREATE", "CREATE_REQUEST",
            "GENERIC_UPDATE", "REASSIGN", "REOPEN", "REQUEST_ALTERNATIVE_DATE", "RESCHEDULE",
            "RESCHEDULE_REQUEST", "UPDATE_LOCATION" or "UPDATE_MEETING_TYPE"'
        message:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
        appointment:
          "$ref": "#/components/schemas/AppointmentWebhook"
        previousAppointment:
          "$ref": "#/components/schemas/PreviousAppointmentWebhook"
      additionalProperties: true
    CallbackRequestCreateWebhookData:
      type: object
      required:
      - eventType
      - callbackRequest
      properties:
        eventType:
          type: string
          minLength: 1
          description: '"ACCEPT", "CANCEL", "COMPLETE", "CREATE", "CREATE_REQUEST",
            "GENERIC_UPDATE", "REASSIGN", "REOPEN", "REQUEST_ALTERNATIVE_DATE", "RESCHEDULE",
            "RESCHEDULE_REQUEST", "UPDATE_LOCATION" or "UPDATE_MEETING_TYPE"'
        callbackRequest:
          "$ref": "#/components/schemas/CallbackRequestWebhook"
      additionalProperties: true
    CallbackRequestUpdateWebhookData:
      type: object
      required:
      - eventType
      - callbackRequest
      properties:
        eventType:
          type: string
          minLength: 1
          description: '"ACCEPT", "CANCEL", "COMPLETE", "CREATE", "CREATE_REQUEST",
            "GENERIC_UPDATE", "REASSIGN", "REOPEN", "REQUEST_ALTERNATIVE_DATE", "RESCHEDULE",
            "RESCHEDULE_REQUEST", "UPDATE_LOCATION" or "UPDATE_MEETING_TYPE"'
        callbackRequest:
          "$ref": "#/components/schemas/CallbackRequestWebhook"
      additionalProperties: true
    AppointmentCreateWebhook:
      type: object
      required:
      - id
      - correlationId
      - entity
      - version
      - webhookConfigurationId
      - data
      properties:
        id:
          type: string
          minLength: 1
        correlationId:
          type: string
          minLength: 1
        entity:
          type: string
          enum:
          - Appointment
        version:
          type: string
          minLength: 1
        webhookConfigurationId:
          type: string
          minLength: 1
        data:
          "$ref": "#/components/schemas/AppointmentCreateWebhookData"
      additionalProperties: true
    AppointmentUpdateWebhook:
      type: object
      required:
      - id
      - correlationId
      - entity
      - version
      - webhookConfigurationId
      - data
      properties:
        id:
          type: string
          minLength: 1
        correlationId:
          type: string
          minLength: 1
        entity:
          type: string
          enum:
          - Appointment
        version:
          type: string
          minLength: 1
        webhookConfigurationId:
          type: string
          minLength: 1
        data:
          "$ref": "#/components/schemas/AppointmentUpdateWebhookData"
      additionalProperties: true
    CallbackRequestCreateWebhook:
      type: object
      required:
      - id
      - correlationId
      - entity
      - version
      - webhookConfigurationId
      - data
      properties:
        id:
          type: string
          minLength: 1
        correlationId:
          type: string
          minLength: 1
        entity:
          type: string
          enum:
          - Callback Request
        version:
          type: string
          minLength: 1
        webhookConfigurationId:
          type: string
          minLength: 1
        data:
          "$ref": "#/components/schemas/CallbackRequestCreateWebhookData"
      additionalProperties: true
    CallbackRequestUpdateWebhook:
      type: object
      required:
      - id
      - correlationId
      - entity
      - version
      - webhookConfigurationId
      - data
      properties:
        id:
          type: string
          minLength: 1
        correlationId:
          type: string
          minLength: 1
        entity:
          type: string
          enum:
          - Callback Request
        version:
          type: string
          minLength: 1
        webhookConfigurationId:
          type: string
          minLength: 1
        data:
          "$ref": "#/components/schemas/CallbackRequestUpdateWebhookData"
      additionalProperties: true
    CommunicationWebhook:
      type: object
      required:
      - id
      - correlationId
      - entity
      - version
      - webhookConfigurationId
      - data
      properties:
        id:
          type: string
          minLength: 1
        correlationId:
          type: string
          minLength: 1
        entity:
          type: string
          enum:
          - Communication
        version:
          type: string
          minLength: 1
        webhookConfigurationId:
          type: string
          minLength: 1
        data:
          type: object
          required:
          - communication
          - receiver
          - template
          - resource
          properties:
            communication:
              "$ref": "#/components/schemas/CommunicationDataWebhook"
            receiver:
              "$ref": "#/components/schemas/CommunicationReceiverWebhook"
            template:
              "$ref": "#/components/schemas/CommunicationTemplateWebhook"
            resource:
              anyOf:
              - "$ref": "#/components/schemas/AppointmentCreateWebhookData"
              - "$ref": "#/components/schemas/AppointmentUpdateWebhookData"
              - "$ref": "#/components/schemas/CallbackRequestCreateWebhookData"
              - "$ref": "#/components/schemas/CallbackRequestUpdateWebhookData"
              - type: 'null'
      additionalProperties: true
    PingWebhook:
      type: object
      required:
      - id
      - correlationId
      - entity
      - version
      - webhookConfigurationId
      - data
      properties:
        id:
          type: string
          minLength: 1
        correlationId:
          type: string
          minLength: 1
        entity:
          type: string
          enum:
          - Ping
        version:
          type: string
          minLength: 1
        webhookConfigurationId:
          type: string
          minLength: 1
        data:
          type: object
          required:
          - ping
          properties:
            ping:
              type: string
              minLength: 1
      additionalProperties: true
paths:
  "/employees/{id}/applied-templates":
    get:
      operationId: getAppliedTemplates
      summary: Get applied templates
      tags:
      - Scheduling
      description: Get applied templates for an employee by its ID with filtering
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '2022-08-01'
        in: query
        name: start-date
        required: false
        description: Start date to be considered for filtering (ISO 8601)
      - schema:
          type: string
          minLength: 1
          examples:
          - '2022-08-17'
        in: query
        name: end-date
        required: false
        description: End date to be considered for filtering (ISO 8601)
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/AppliedTemplateDetail"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    post:
      operationId: applyAvailabilityTemplate
      summary: Apply an availability template
      tags:
      - Scheduling
      description: Apply an availability template
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - startDate
              - endDate
              - availabilityTemplateId
              properties:
                startDate:
                  type: string
                  minLength: 1
                  examples:
                  - '2022-08-01'
                endDate:
                  type: string
                  minLength: 1
                  examples:
                  - '2022-08-17'
                availabilityTemplateId:
                  type: string
                  minLength: 1
                  examples:
                  - '123'
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AppliedTemplateDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `APPLIED_TEMPLATE_DEFAULT_TEMPLATE`
            * `APPLIED_TEMPLATE_OVERLAP`
            * `APPLIED_TEMPLATE_START_AFTER_END`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `APPLIED_TEMPLATE_DEFAULT_TEMPLATE`
                  * `APPLIED_TEMPLATE_OVERLAP`
                  * `APPLIED_TEMPLATE_START_AFTER_END`

                  See [Error codes](#topic-error-codes)
  "/employees/{id}/applied-templates/_actions/revert":
    post:
      operationId: revertAppliedTemplates
      summary: Revert applied templates
      tags:
      - Scheduling
      description: Revert applied templates
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - startDate
              - endDate
              properties:
                startDate:
                  type: string
                  minLength: 1
                  examples:
                  - '2022-08-01'
                endDate:
                  type: string
                  minLength: 1
                  examples:
                  - '2022-08-17'
                type:
                  anyOf:
                  - type: string
                    enum:
                    - DAY
                    - WEEK
                    examples:
                    - WEEK
                  - type: 'null'
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readWrite
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/appointments":
    get:
      operationId: getAppointments
      summary: Get appointments
      tags:
      - Scheduling
      description: Get appointments with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: external-id
        required: false
        description: External ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: from
        required: false
        description: Start date and time of the appointment to be considered for filtering
          (ISO 8601)
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: to
        required: false
        description: End date and time of the appointment to be considered for filtering
          (ISO 8601)
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: created-from-date
        required: false
        description: Created at start date and time of the appointment to be considered
          for filtering (ISO 8601)
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: created-to-date
        required: false
        description: Created at end date and time of the appointment to be considered
          for filtering (ISO 8601)
      - schema:
          type: array
          items:
            type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
          minItems: 1
          maxItems: 100
        in: query
        name: meeting-type
        required: false
        description: Meeting type(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            enum:
            - ACCEPTED
            - ALTERNATIVE_DATE_REQUESTED
            - CANCELLED
            - COMPLETED
            - INCOMING_REQUEST
            - NO_SHOW
            - OUTGOING_INVITE
            examples:
            - ACCEPTED
          minItems: 1
          maxItems: 100
        in: query
        name: status
        required: false
        description: Status(es) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: callback-request-id
        required: false
        description: Callback request ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: listing-id
        required: false
        description: Listing ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: lead-segment-id
        required: false
        description: Lead segment ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: subject-id
        required: false
        description: Subject ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: office-id
        required: false
        description: Office ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: customer-id
        required: false
        description: Customer ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: employee-id
        required: false
        description: Employee ID(s) to be considered for filtering
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:appointments:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/AppointmentSummary"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
    post:
      operationId: createAppointment
      summary: Create an appointment
      tags:
      - Scheduling
      description: Create an appointment
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - start
              - end
              - subjectId
              - officeId
              - appointmentParticipants
              - meetingType
              properties:
                start:
                  type: string
                  minLength: 1
                  format: date-time
                  examples:
                  - '2022-08-17T09:00:00.000Z'
                end:
                  type: string
                  minLength: 1
                  format: date-time
                  examples:
                  - '2022-08-17T10:00:00.000Z'
                subjectId:
                  type: string
                  minLength: 1
                  examples:
                  - '123'
                officeId:
                  type: string
                  minLength: 1
                  examples:
                  - '123'
                appointmentParticipants:
                  type: array
                  items:
                    type: object
                    required:
                    - role
                    - participantId
                    - type
                    properties:
                      role:
                        type: string
                        enum:
                        - PRIMARY
                        - SECONDARY
                        examples:
                        - PRIMARY
                      participantId:
                        type: string
                        minLength: 1
                        examples:
                        - '123'
                      type:
                        type: string
                        enum:
                        - CUSTOMER
                        - EMPLOYEE
                        examples:
                        - EMPLOYEE
                    additionalProperties: false
                  minItems: 2
                answers:
                  anyOf:
                  - type: array
                    items:
                      type: object
                      required:
                      - questionId
                      properties:
                        value:
                          anyOf:
                          - type: string
                            minLength: 1
                            examples:
                            - A colleague
                          - type: 'null'
                        selectedAnswerOptions:
                          anyOf:
                          - type: array
                            items:
                              type: object
                              required:
                              - id
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - '123'
                              additionalProperties: false
                          - type: 'null'
                        files:
                          anyOf:
                          - type: array
                            items:
                              type: object
                              required:
                              - id
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - '123'
                              additionalProperties: false
                          - type: 'null'
                        questionId:
                          type: string
                          minLength: 1
                          examples:
                          - '123'
                      additionalProperties: false
                  - type: 'null'
                callbackRequestId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                location:
                  anyOf:
                  - type: object
                    required:
                    - countryCode
                    - translations
                    properties:
                      postalCode:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - '9000'
                        - type: 'null'
                      countryCode:
                        type: string
                        minLength: 2
                        maxLength: 2
                        examples:
                        - BE
                      geolocation:
                        anyOf:
                        - type: object
                          required:
                          - latitude
                          - longitude
                          properties:
                            latitude:
                              type: number
                              minimum: -90
                              maximum: 90
                              examples:
                              - 51.0479466
                            longitude:
                              type: number
                              minimum: -180
                              maximum: 180
                              examples:
                              - 3.6912248
                          additionalProperties: false
                        - type: 'null'
                      translations:
                        type: object
                        required:
                        - city
                        - street1
                        properties:
                          city:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          state:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                          street1:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          street2:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                        additionalProperties: false
                    additionalProperties: false
                  - type: 'null'
                listingId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                leadSegmentId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                meetingRoomId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                meetingType:
                  type: string
                  enum:
                  - OFFICE
                  - ON_LOCATION
                  - PHONE
                  - VIDEO
                  examples:
                  - OFFICE
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                hybrid:
                  anyOf:
                  - type: boolean
                    examples:
                    - true
                    - false
                  - type: 'null'
                trailingBufferTime:
                  anyOf:
                  - type: integer
                    minimum: 0
                    examples:
                    - 5
                    default: 0
                  - type: 'null'
                internalNotes:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                  - type: 'null'
                metadata:
                  anyOf:
                  - type: object
                    properties: {}
                    additionalProperties: true
                  - type: 'null'
                messageForCustomer:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Let's chat!
                  - type: 'null'
                userCommunication:
                  anyOf:
                  - type: object
                    properties:
                      notifications:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      reminders:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      notificationsOverrideCurrentAction:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                    additionalProperties: false
                  - type: 'null'
                createdByType:
                  anyOf:
                  - type: string
                    enum:
                    - CUSTOMER
                    - EMPLOYEE
                    - OTHER
                    examples:
                    - EMPLOYEE
                  - type: 'null'
                createdById:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:appointments:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AppointmentDetail"
                description: Successful operation
                additionalProperties: false
        '422':
          description: |-
            Business validation failed

            * `ANSWER_SELECTED_OPTIONS_FOR_NON_SELECTION_TYPE`
            * `ANSWER_VALUE_FOR_SELECTION_TYPE`
            * `APPOINTMENT_LOCATION_REQUIRED`
            * `APPOINTMENT_NO_AVAILABILITY`
            * `APPOINTMENT_PARTICIPANTS_NOT_UNIQUE`
            * `APPOINTMENT_PRIMARY_CUSTOMER_MISSING`
            * `APPOINTMENT_PRIMARY_EMPLOYEE_MISSING`
            * `APPOINTMENT_START_AFTER_END`
            * `LOCATION_GEOCODING_FAILED`
            * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `ANSWER_SELECTED_OPTIONS_FOR_NON_SELECTION_TYPE`
                  * `ANSWER_VALUE_FOR_SELECTION_TYPE`
                  * `APPOINTMENT_LOCATION_REQUIRED`
                  * `APPOINTMENT_NO_AVAILABILITY`
                  * `APPOINTMENT_PARTICIPANTS_NOT_UNIQUE`
                  * `APPOINTMENT_PRIMARY_CUSTOMER_MISSING`
                  * `APPOINTMENT_PRIMARY_EMPLOYEE_MISSING`
                  * `APPOINTMENT_START_AFTER_END`
                  * `LOCATION_GEOCODING_FAILED`
                  * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

                  See [Error codes](#topic-error-codes)
  "/appointments/{id}":
    get:
      operationId: getAppointmentById
      summary: Get an appointment
      tags:
      - Scheduling
      description: Get an appointment by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:appointments:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AppointmentDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    patch:
      operationId: updateAppointmentById
      summary: Update an appointment
      tags:
      - Scheduling
      description: Update an appointment by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                appointmentParticipants:
                  anyOf:
                  - type: array
                    items:
                      type: object
                      required:
                      - role
                      - participantId
                      - type
                      properties:
                        role:
                          type: string
                          enum:
                          - PRIMARY
                          - SECONDARY
                          examples:
                          - PRIMARY
                        participantId:
                          type: string
                          minLength: 1
                          examples:
                          - '123'
                        type:
                          type: string
                          enum:
                          - CUSTOMER
                          - EMPLOYEE
                          examples:
                          - EMPLOYEE
                      additionalProperties: false
                    minItems: 2
                  - type: 'null'
                answers:
                  anyOf:
                  - type: array
                    items:
                      type: object
                      required:
                      - questionId
                      properties:
                        value:
                          anyOf:
                          - type: string
                            minLength: 1
                            examples:
                            - A colleague
                          - type: 'null'
                        selectedAnswerOptions:
                          anyOf:
                          - type: array
                            items:
                              type: object
                              required:
                              - id
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - '123'
                              additionalProperties: false
                          - type: 'null'
                        files:
                          anyOf:
                          - type: array
                            items:
                              type: object
                              required:
                              - id
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - '123'
                              additionalProperties: false
                          - type: 'null'
                        questionId:
                          type: string
                          minLength: 1
                          examples:
                          - '123'
                      additionalProperties: false
                  - type: 'null'
                callbackRequestId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                location:
                  anyOf:
                  - type: object
                    required:
                    - countryCode
                    - translations
                    properties:
                      postalCode:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - '9000'
                        - type: 'null'
                      countryCode:
                        type: string
                        minLength: 2
                        maxLength: 2
                        examples:
                        - BE
                      geolocation:
                        anyOf:
                        - type: object
                          required:
                          - latitude
                          - longitude
                          properties:
                            latitude:
                              type: number
                              minimum: -90
                              maximum: 90
                              examples:
                              - 51.0479466
                            longitude:
                              type: number
                              minimum: -180
                              maximum: 180
                              examples:
                              - 3.6912248
                          additionalProperties: false
                        - type: 'null'
                      translations:
                        type: object
                        required:
                        - city
                        - street1
                        properties:
                          city:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          state:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                          street1:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          street2:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                        additionalProperties: false
                    additionalProperties: false
                  - type: 'null'
                  description: Deprecated. Make use of the `update-location` action
                    endpoint.
                listingId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                leadSegmentId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                meetingRoomId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                internalNotes:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                  - type: 'null'
                metadata:
                  anyOf:
                  - type: object
                    properties: {}
                    additionalProperties: true
                  - type: 'null'
                userCommunication:
                  anyOf:
                  - type: object
                    properties:
                      notifications:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      reminders:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      notificationsOverrideCurrentAction:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                    additionalProperties: false
                  - type: 'null'
                updatedByType:
                  anyOf:
                  - type: string
                    enum:
                    - CUSTOMER
                    - EMPLOYEE
                    - OTHER
                    examples:
                    - EMPLOYEE
                  - type: 'null'
                updatedById:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
              additionalProperties: false
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:appointments:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AppointmentDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `ANSWER_SELECTED_OPTIONS_FOR_NON_SELECTION_TYPE`
            * `ANSWER_VALUE_FOR_SELECTION_TYPE`
            * `APPOINTMENT_LOCATION_REQUIRED`
            * `APPOINTMENT_PARTICIPANTS_NOT_UNIQUE`
            * `APPOINTMENT_PRIMARY_CUSTOMER_MISSING`
            * `APPOINTMENT_PRIMARY_EMPLOYEE_MISSING`
            * `APPOINTMENT_PRIMARY_PARTICIPANT_ADDED_OR_REMOVED`
            * `LOCATION_GEOCODING_FAILED`
            * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `ANSWER_SELECTED_OPTIONS_FOR_NON_SELECTION_TYPE`
                  * `ANSWER_VALUE_FOR_SELECTION_TYPE`
                  * `APPOINTMENT_LOCATION_REQUIRED`
                  * `APPOINTMENT_PARTICIPANTS_NOT_UNIQUE`
                  * `APPOINTMENT_PRIMARY_CUSTOMER_MISSING`
                  * `APPOINTMENT_PRIMARY_EMPLOYEE_MISSING`
                  * `APPOINTMENT_PRIMARY_PARTICIPANT_ADDED_OR_REMOVED`
                  * `LOCATION_GEOCODING_FAILED`
                  * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

                  See [Error codes](#topic-error-codes)
  "/appointments/_actions/invite":
    post:
      operationId: createAppointmentInvite
      summary: Create an appointment invite
      tags:
      - Scheduling
      description: Create an appointment invite
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - subjectId
              - officeId
              - appointmentParticipants
              - meetingType
              properties:
                subjectId:
                  type: string
                  minLength: 1
                  examples:
                  - '123'
                officeId:
                  type: string
                  minLength: 1
                  examples:
                  - '123'
                appointmentParticipants:
                  type: array
                  items:
                    type: object
                    required:
                    - role
                    - participantId
                    - type
                    properties:
                      role:
                        type: string
                        enum:
                        - PRIMARY
                        - SECONDARY
                        examples:
                        - PRIMARY
                      participantId:
                        type: string
                        minLength: 1
                        examples:
                        - '123'
                      type:
                        type: string
                        enum:
                        - CUSTOMER
                        - EMPLOYEE
                        examples:
                        - EMPLOYEE
                    additionalProperties: false
                  minItems: 2
                callbackRequestId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                location:
                  anyOf:
                  - type: object
                    required:
                    - countryCode
                    - translations
                    properties:
                      postalCode:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - '9000'
                        - type: 'null'
                      countryCode:
                        type: string
                        minLength: 2
                        maxLength: 2
                        examples:
                        - BE
                      geolocation:
                        anyOf:
                        - type: object
                          required:
                          - latitude
                          - longitude
                          properties:
                            latitude:
                              type: number
                              minimum: -90
                              maximum: 90
                              examples:
                              - 51.0479466
                            longitude:
                              type: number
                              minimum: -180
                              maximum: 180
                              examples:
                              - 3.6912248
                          additionalProperties: false
                        - type: 'null'
                      translations:
                        type: object
                        required:
                        - city
                        - street1
                        properties:
                          city:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          state:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                          street1:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          street2:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                        additionalProperties: false
                    additionalProperties: false
                  - type: 'null'
                listingId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                leadSegmentId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                meetingRoomId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                meetingType:
                  type: string
                  enum:
                  - OFFICE
                  - ON_LOCATION
                  - PHONE
                  - VIDEO
                  examples:
                  - OFFICE
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                hybrid:
                  anyOf:
                  - type: boolean
                    examples:
                    - true
                    - false
                  - type: 'null'
                trailingBufferTime:
                  anyOf:
                  - type: integer
                    minimum: 0
                    examples:
                    - 5
                    default: 0
                  - type: 'null'
                internalNotes:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                  - type: 'null'
                metadata:
                  anyOf:
                  - type: object
                    properties: {}
                    additionalProperties: true
                  - type: 'null'
                message:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Let's chat!
                    description: Deprecated. Make use of the messageForCustomer field
                  - type: 'null'
                messageForCustomer:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Let's chat!
                  - type: 'null'
                userCommunication:
                  anyOf:
                  - type: object
                    properties:
                      notifications:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      reminders:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      notificationsOverrideCurrentAction:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                    additionalProperties: false
                  - type: 'null'
                createdByType:
                  anyOf:
                  - type: string
                    enum:
                    - CUSTOMER
                    - EMPLOYEE
                    - OTHER
                    examples:
                    - EMPLOYEE
                  - type: 'null'
                createdById:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:appointments:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AppointmentDetail"
                description: Successful operation
                additionalProperties: false
        '422':
          description: |-
            Business validation failed

            * `APPOINTMENT_LOCATION_REQUIRED`
            * `APPOINTMENT_PARTICIPANTS_NOT_UNIQUE`
            * `LOCATION_GEOCODING_FAILED`
            * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `APPOINTMENT_LOCATION_REQUIRED`
                  * `APPOINTMENT_PARTICIPANTS_NOT_UNIQUE`
                  * `LOCATION_GEOCODING_FAILED`
                  * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

                  See [Error codes](#topic-error-codes)
  "/appointments/{id}/_actions/accept":
    post:
      operationId: acceptAppointment
      summary: Accept an appointment
      tags:
      - Scheduling
      description: Accept an appointment
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:appointments:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AppointmentDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `APPOINTMENT_STATUS_INVALID`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `APPOINTMENT_STATUS_INVALID`

                  See [Error codes](#topic-error-codes)
  "/appointments/{id}/_actions/cancel":
    post:
      operationId: cancelAppointment
      summary: Cancel an appointment
      tags:
      - Scheduling
      description: Cancel an appointment
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                answers:
                  anyOf:
                  - type: array
                    items:
                      type: object
                      required:
                      - questionId
                      properties:
                        value:
                          anyOf:
                          - type: string
                            minLength: 1
                            examples:
                            - A colleague
                          - type: 'null'
                        selectedAnswerOptions:
                          anyOf:
                          - type: array
                            items:
                              type: object
                              required:
                              - id
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - '123'
                              additionalProperties: false
                          - type: 'null'
                        files:
                          anyOf:
                          - type: array
                            items:
                              type: object
                              required:
                              - id
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - '123'
                              additionalProperties: false
                          - type: 'null'
                        questionId:
                          type: string
                          minLength: 1
                          examples:
                          - '123'
                      additionalProperties: false
                  - type: 'null'
                message:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Sorry! Something came up last-minute.
                    description: Deprecated. Make use of the messageForCustomer field
                  - type: 'null'
                messageForCustomer:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Sorry! Something came up last-minute.
                  - type: 'null'
                userCommunication:
                  anyOf:
                  - type: object
                    properties:
                      notifications:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      reminders:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      notificationsOverrideCurrentAction:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                    additionalProperties: false
                  - type: 'null'
                updatedByType:
                  anyOf:
                  - type: string
                    enum:
                    - CUSTOMER
                    - EMPLOYEE
                    - OTHER
                    examples:
                    - EMPLOYEE
                  - type: 'null'
                updatedById:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
              additionalProperties: false
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:appointments:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AppointmentDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `ANSWER_SELECTED_OPTIONS_FOR_NON_SELECTION_TYPE`
            * `ANSWER_VALUE_FOR_SELECTION_TYPE`
            * `APPOINTMENT_STATUS_INVALID`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `ANSWER_SELECTED_OPTIONS_FOR_NON_SELECTION_TYPE`
                  * `ANSWER_VALUE_FOR_SELECTION_TYPE`
                  * `APPOINTMENT_STATUS_INVALID`

                  See [Error codes](#topic-error-codes)
  "/appointments/{id}/_actions/complete":
    post:
      operationId: completeAppointment
      summary: Complete an appointment
      tags:
      - Scheduling
      description: Complete an appointment
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                start:
                  anyOf:
                  - type: string
                    minLength: 1
                    format: date-time
                    examples:
                    - '2022-08-17T09:00:00.000Z'
                  - type: 'null'
                end:
                  anyOf:
                  - type: string
                    minLength: 1
                    format: date-time
                    examples:
                    - '2022-08-17T10:00:00.000Z'
                  - type: 'null'
                answers:
                  anyOf:
                  - type: array
                    items:
                      type: object
                      required:
                      - questionId
                      properties:
                        value:
                          anyOf:
                          - type: string
                            minLength: 1
                            examples:
                            - A colleague
                          - type: 'null'
                        selectedAnswerOptions:
                          anyOf:
                          - type: array
                            items:
                              type: object
                              required:
                              - id
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - '123'
                              additionalProperties: false
                          - type: 'null'
                        files:
                          anyOf:
                          - type: array
                            items:
                              type: object
                              required:
                              - id
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - '123'
                              additionalProperties: false
                          - type: 'null'
                        questionId:
                          type: string
                          minLength: 1
                          examples:
                          - '123'
                      additionalProperties: false
                  - type: 'null'
                noShow:
                  anyOf:
                  - type: boolean
                    default: false
                    examples:
                    - true
                    - false
                  - type: 'null'
                userCommunication:
                  anyOf:
                  - type: object
                    properties:
                      notifications:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      reminders:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      notificationsOverrideCurrentAction:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                    additionalProperties: false
                  - type: 'null'
                updatedByType:
                  anyOf:
                  - type: string
                    enum:
                    - CUSTOMER
                    - EMPLOYEE
                    - OTHER
                    examples:
                    - EMPLOYEE
                  - type: 'null'
                updatedById:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
              additionalProperties: false
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:appointments:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AppointmentDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `ANSWER_SELECTED_OPTIONS_FOR_NON_SELECTION_TYPE`
            * `ANSWER_VALUE_FOR_SELECTION_TYPE`
            * `APPOINTMENT_COMPLETION_TOO_EARLY`
            * `APPOINTMENT_START_AFTER_END`
            * `APPOINTMENT_STATUS_INVALID`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `ANSWER_SELECTED_OPTIONS_FOR_NON_SELECTION_TYPE`
                  * `ANSWER_VALUE_FOR_SELECTION_TYPE`
                  * `APPOINTMENT_COMPLETION_TOO_EARLY`
                  * `APPOINTMENT_START_AFTER_END`
                  * `APPOINTMENT_STATUS_INVALID`

                  See [Error codes](#topic-error-codes)
  "/appointments/{id}/_actions/reassign":
    post:
      operationId: reassignAppointment
      summary: Reassign an appointment
      tags:
      - Scheduling
      description: Reassign an appointment
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - officeId
              - primaryEmployeeId
              properties:
                officeId:
                  type: string
                  minLength: 1
                  examples:
                  - '123'
                primaryEmployeeId:
                  type: string
                  minLength: 1
                  examples:
                  - '123'
                message:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Sorry! Something came up last-minute.
                    description: Deprecated. Make use of the messageForCustomer field
                  - type: 'null'
                messageForCustomer:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Sorry! Something came up last-minute.
                  - type: 'null'
                userCommunication:
                  anyOf:
                  - type: object
                    properties:
                      notifications:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      reminders:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      notificationsOverrideCurrentAction:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                    additionalProperties: false
                  - type: 'null'
                updatedByType:
                  anyOf:
                  - type: string
                    enum:
                    - CUSTOMER
                    - EMPLOYEE
                    - OTHER
                    examples:
                    - EMPLOYEE
                  - type: 'null'
                updatedById:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:appointments:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AppointmentDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `APPOINTMENT_PARTICIPANTS_NOT_UNIQUE`
            * `APPOINTMENT_PRIMARY_CUSTOMER_MISSING`
            * `APPOINTMENT_PRIMARY_EMPLOYEE_MISSING`
            * `APPOINTMENT_STATUS_INVALID`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `APPOINTMENT_PARTICIPANTS_NOT_UNIQUE`
                  * `APPOINTMENT_PRIMARY_CUSTOMER_MISSING`
                  * `APPOINTMENT_PRIMARY_EMPLOYEE_MISSING`
                  * `APPOINTMENT_STATUS_INVALID`

                  See [Error codes](#topic-error-codes)
  "/appointments/{id}/_actions/reopen":
    post:
      operationId: reopenAppointment
      summary: Reopen an appointment
      tags:
      - Scheduling
      description: Reopen an appointment
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:appointments:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AppointmentDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `APPOINTMENT_STATUS_INVALID`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `APPOINTMENT_STATUS_INVALID`

                  See [Error codes](#topic-error-codes)
  "/appointments/{id}/_actions/request-reschedule":
    post:
      operationId: requestRescheduleAppointment
      summary: Request an appointment reschedule
      tags:
      - Scheduling
      description: Request an appointment reschedule
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                message:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Sorry! Something came up last-minute.
                    description: Deprecated. Make use of the messageForCustomer field
                  - type: 'null'
                messageForCustomer:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Sorry! Something came up last-minute.
                  - type: 'null'
                userCommunication:
                  anyOf:
                  - type: object
                    properties:
                      notifications:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      reminders:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      notificationsOverrideCurrentAction:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                    additionalProperties: false
                  - type: 'null'
                updatedByType:
                  anyOf:
                  - type: string
                    enum:
                    - CUSTOMER
                    - EMPLOYEE
                    - OTHER
                    examples:
                    - EMPLOYEE
                  - type: 'null'
                updatedById:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
              additionalProperties: false
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:appointments:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AppointmentDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `APPOINTMENT_STATUS_INVALID`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `APPOINTMENT_STATUS_INVALID`

                  See [Error codes](#topic-error-codes)
  "/appointments/{id}/_actions/reschedule":
    post:
      operationId: rescheduleAppointment
      summary: Reschedule an appointment
      tags:
      - Scheduling
      description: Reschedule an appointment
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - start
              - end
              properties:
                start:
                  type: string
                  minLength: 1
                  format: date-time
                  examples:
                  - '2022-08-17T09:00:00.000Z'
                end:
                  type: string
                  minLength: 1
                  format: date-time
                  examples:
                  - '2022-08-17T10:00:00.000Z'
                message:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Sorry! Something came up last-minute.
                    description: Deprecated. Make use of the messageForCustomer field
                  - type: 'null'
                messageForCustomer:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Sorry! Something came up last-minute.
                  - type: 'null'
                answers:
                  anyOf:
                  - type: array
                    items:
                      type: object
                      required:
                      - questionId
                      properties:
                        value:
                          anyOf:
                          - type: string
                            minLength: 1
                            examples:
                            - A colleague
                          - type: 'null'
                        selectedAnswerOptions:
                          anyOf:
                          - type: array
                            items:
                              type: object
                              required:
                              - id
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - '123'
                              additionalProperties: false
                          - type: 'null'
                        files:
                          anyOf:
                          - type: array
                            items:
                              type: object
                              required:
                              - id
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - '123'
                              additionalProperties: false
                          - type: 'null'
                        questionId:
                          type: string
                          minLength: 1
                          examples:
                          - '123'
                      additionalProperties: false
                  - type: 'null'
                userCommunication:
                  anyOf:
                  - type: object
                    properties:
                      notifications:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      reminders:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      notificationsOverrideCurrentAction:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                    additionalProperties: false
                  - type: 'null'
                updatedByType:
                  anyOf:
                  - type: string
                    enum:
                    - CUSTOMER
                    - EMPLOYEE
                    - OTHER
                    examples:
                    - EMPLOYEE
                  - type: 'null'
                updatedById:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:appointments:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AppointmentDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `APPOINTMENT_NO_AVAILABILITY`
            * `APPOINTMENT_START_AFTER_END`
            * `APPOINTMENT_STATUS_INVALID`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `APPOINTMENT_NO_AVAILABILITY`
                  * `APPOINTMENT_START_AFTER_END`
                  * `APPOINTMENT_STATUS_INVALID`

                  See [Error codes](#topic-error-codes)
  "/appointments/{id}/_actions/update-location":
    post:
      operationId: updateAppointmentLocation
      summary: Update the location of an ON_LOCATION appointment
      tags:
      - Scheduling
      description: Update the location of an ON_LOCATION appointment
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - location
              properties:
                location:
                  type: object
                  required:
                  - countryCode
                  - translations
                  properties:
                    postalCode:
                      anyOf:
                      - type: string
                        minLength: 1
                        examples:
                        - '9000'
                      - type: 'null'
                    countryCode:
                      type: string
                      minLength: 2
                      maxLength: 2
                      examples:
                      - BE
                    geolocation:
                      anyOf:
                      - type: object
                        required:
                        - latitude
                        - longitude
                        properties:
                          latitude:
                            type: number
                            minimum: -90
                            maximum: 90
                            examples:
                            - 51.0479466
                          longitude:
                            type: number
                            minimum: -180
                            maximum: 180
                            examples:
                            - 3.6912248
                        additionalProperties: false
                      - type: 'null'
                    translations:
                      type: object
                      required:
                      - city
                      - street1
                      properties:
                        city:
                          type: array
                          items:
                            type: object
                            required:
                            - language
                            - value
                            properties:
                              language:
                                type: string
                                enum:
                                - da
                                - de
                                - el
                                - en
                                - es
                                - fr
                                - ja
                                - nl
                                - 'no'
                                - pl
                                examples:
                                - en
                              value:
                                type: string
                                minLength: 1
                                examples:
                                - Lorem ipsum
                            additionalProperties: false
                          minItems: 1
                        state:
                          type: array
                          items:
                            type: object
                            required:
                            - language
                            - value
                            properties:
                              language:
                                type: string
                                enum:
                                - da
                                - de
                                - el
                                - en
                                - es
                                - fr
                                - ja
                                - nl
                                - 'no'
                                - pl
                                examples:
                                - en
                              value:
                                type: string
                                minLength: 1
                                examples:
                                - Lorem ipsum
                            additionalProperties: false
                          minItems: 0
                        street1:
                          type: array
                          items:
                            type: object
                            required:
                            - language
                            - value
                            properties:
                              language:
                                type: string
                                enum:
                                - da
                                - de
                                - el
                                - en
                                - es
                                - fr
                                - ja
                                - nl
                                - 'no'
                                - pl
                                examples:
                                - en
                              value:
                                type: string
                                minLength: 1
                                examples:
                                - Lorem ipsum
                            additionalProperties: false
                          minItems: 1
                        street2:
                          type: array
                          items:
                            type: object
                            required:
                            - language
                            - value
                            properties:
                              language:
                                type: string
                                enum:
                                - da
                                - de
                                - el
                                - en
                                - es
                                - fr
                                - ja
                                - nl
                                - 'no'
                                - pl
                                examples:
                                - en
                              value:
                                type: string
                                minLength: 1
                                examples:
                                - Lorem ipsum
                            additionalProperties: false
                          minItems: 0
                      additionalProperties: false
                  additionalProperties: false
                messageForCustomer:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Sorry! Something came up last-minute.
                  - type: 'null'
                userCommunication:
                  anyOf:
                  - type: object
                    properties:
                      notifications:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      reminders:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      notificationsOverrideCurrentAction:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                    additionalProperties: false
                  - type: 'null'
                updatedByType:
                  anyOf:
                  - type: string
                    enum:
                    - CUSTOMER
                    - EMPLOYEE
                    - OTHER
                    examples:
                    - EMPLOYEE
                  - type: 'null'
                updatedById:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:appointments:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AppointmentDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `APPOINTMENT_STATUS_INVALID`
            * `APPOINTMENT_MEETING_TYPE_UPDATE_NOT_ALLOWED`
            * `APPOINTMENT_LOCATION_REQUIRED`
            * `LOCATION_GEOCODING_FAILED`
            * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `APPOINTMENT_STATUS_INVALID`
                  * `APPOINTMENT_MEETING_TYPE_UPDATE_NOT_ALLOWED`
                  * `APPOINTMENT_LOCATION_REQUIRED`
                  * `LOCATION_GEOCODING_FAILED`
                  * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

                  See [Error codes](#topic-error-codes)
  "/appointments/{id}/_actions/update-meeting-type":
    post:
      operationId: updateAppointmentMeetingType
      summary: Update the meeting type of an appointment
      tags:
      - Scheduling
      description: Update the meeting type of an appointment
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - meetingType
              properties:
                meetingType:
                  type: string
                  enum:
                  - OFFICE
                  - ON_LOCATION
                  - PHONE
                  - VIDEO
                  examples:
                  - OFFICE
                location:
                  anyOf:
                  - type: object
                    required:
                    - countryCode
                    - translations
                    properties:
                      postalCode:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - '9000'
                        - type: 'null'
                      countryCode:
                        type: string
                        minLength: 2
                        maxLength: 2
                        examples:
                        - BE
                      geolocation:
                        anyOf:
                        - type: object
                          required:
                          - latitude
                          - longitude
                          properties:
                            latitude:
                              type: number
                              minimum: -90
                              maximum: 90
                              examples:
                              - 51.0479466
                            longitude:
                              type: number
                              minimum: -180
                              maximum: 180
                              examples:
                              - 3.6912248
                          additionalProperties: false
                        - type: 'null'
                      translations:
                        type: object
                        required:
                        - city
                        - street1
                        properties:
                          city:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          state:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                          street1:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          street2:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                        additionalProperties: false
                    additionalProperties: false
                  - type: 'null'
                messageForCustomer:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Sorry! Something came up last-minute.
                  - type: 'null'
                userCommunication:
                  anyOf:
                  - type: object
                    properties:
                      notifications:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      reminders:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                      notificationsOverrideCurrentAction:
                        anyOf:
                        - type: string
                          enum:
                          - DEFAULT
                          - DISABLED
                          examples:
                          - DEFAULT
                          - DISABLED
                        - type: 'null'
                    additionalProperties: false
                  - type: 'null'
                updatedByType:
                  anyOf:
                  - type: string
                    enum:
                    - CUSTOMER
                    - EMPLOYEE
                    - OTHER
                    examples:
                    - EMPLOYEE
                  - type: 'null'
                updatedById:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:appointments:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AppointmentDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `APPOINTMENT_STATUS_INVALID`
            * `APPOINTMENT_MEETING_TYPE_UPDATE_NOT_ALLOWED`
            * `APPOINTMENT_LOCATION_REQUIRED`
            * `LOCATION_GEOCODING_FAILED`
            * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `APPOINTMENT_STATUS_INVALID`
                  * `APPOINTMENT_MEETING_TYPE_UPDATE_NOT_ALLOWED`
                  * `APPOINTMENT_LOCATION_REQUIRED`
                  * `LOCATION_GEOCODING_FAILED`
                  * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

                  See [Error codes](#topic-error-codes)
  "/employees/{employeeId}/availability-templates":
    get:
      operationId: getAvailabilityTemplates
      summary: Get availability templates
      tags:
      - Scheduling
      description: Get availability templates for an employee by its ID with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          type: boolean
        in: query
        name: is-default
        required: false
        description: Default flag to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            enum:
            - DAY
            - WEEK
            examples:
            - WEEK
          minItems: 1
        in: query
        name: type
        required: false
        description: Availability template type(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: employeeId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readOnly
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/AvailabilityTemplateDetail"
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    post:
      operationId: createAvailabilityTemplate
      summary: Create an availability template
      tags:
      - Scheduling
      description: Create an availability template
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              - type
              - timeZone
              properties:
                name:
                  type: string
                  minLength: 1
                type:
                  type: string
                  enum:
                  - DAY
                  - WEEK
                  examples:
                  - WEEK
                timeZone:
                  type: string
                  minLength: 1
                  examples:
                  - Europe/Brussels
                color:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - "#89d0c1"
                  - type: 'null'
                order:
                  anyOf:
                  - type: integer
                    minimum: 0
                    examples:
                    - 5
                    default: 0
                  - type: 'null'
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: employeeId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AvailabilityTemplateDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/employees/{employeeId}/availability-templates/{id}":
    get:
      operationId: getAvailabilityTemplateById
      summary: Get an availability template
      tags:
      - Scheduling
      description: Get an availability template by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: employeeId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: id
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AvailabilityTemplateDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    patch:
      operationId: updateAvailabilityTemplateById
      summary: Update an availability template
      tags:
      - Scheduling
      description: Update an availability template by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                type:
                  type: string
                  enum:
                  - DAY
                  - WEEK
                  examples:
                  - WEEK
                timeZone:
                  type: string
                  minLength: 1
                  examples:
                  - Europe/Brussels
                color:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - "#89d0c1"
                  - type: 'null'
                order:
                  anyOf:
                  - type: integer
                    minimum: 0
                    examples:
                    - 5
                  - type: 'null'
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: employeeId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: id
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AvailabilityTemplateDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `AVAILABILITY_TEMPLATE_DEFAULT_TEMPLATE_MODIFICATION_NOT_ALLOWED`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `AVAILABILITY_TEMPLATE_DEFAULT_TEMPLATE_MODIFICATION_NOT_ALLOWED`

                  See [Error codes](#topic-error-codes)
    delete:
      operationId: deleteAvailabilityTemplateById
      summary: Delete an availability template
      tags:
      - Scheduling
      description: Delete an availability template by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: employeeId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: id
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readWrite
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/employees/{employeeId}/availability-templates/{availabilityTemplateId}/time-ranges":
    get:
      operationId: getAvailabilityTimeRanges
      summary: Get availability time ranges
      tags:
      - Scheduling
      description: Get availability time ranges for an availability template by its
        ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: employeeId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: availabilityTemplateId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readOnly
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/AvailabilityTimeRangeDetail"
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    post:
      operationId: createAvailabilityTimeRange
      summary: Create an availability time range
      tags:
      - Scheduling
      description: Create an availability time range
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - startTime
              - endTime
              properties:
                dayOfWeek:
                  anyOf:
                  - type: string
                    enum:
                    - FRIDAY
                    - MONDAY
                    - SATURDAY
                    - SUNDAY
                    - THURSDAY
                    - TUESDAY
                    - WEDNESDAY
                    examples:
                    - MONDAY
                  - type: 'null'
                startTime:
                  type: string
                  minLength: 1
                  examples:
                  - '09:00'
                endTime:
                  type: string
                  minLength: 1
                  examples:
                  - '17:00'
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: employeeId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: availabilityTemplateId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AvailabilityTimeRangeDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `AVAILABILITY_TIME_RANGE_DAY_TEMPLATE_WITH_DAY_OF_WEEK`
            * `AVAILABILITY_TIME_RANGE_WEEK_TEMPLATE_WITHOUT_DAY_OF_WEEK`
            * `AVAILABILITY_TIME_RANGE_START_AFTER_END`
            * `AVAILABILITY_TIME_RANGE_MAX_PER_DAY_EXCEEDED`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `AVAILABILITY_TIME_RANGE_DAY_TEMPLATE_WITH_DAY_OF_WEEK`
                  * `AVAILABILITY_TIME_RANGE_WEEK_TEMPLATE_WITHOUT_DAY_OF_WEEK`
                  * `AVAILABILITY_TIME_RANGE_START_AFTER_END`
                  * `AVAILABILITY_TIME_RANGE_MAX_PER_DAY_EXCEEDED`

                  See [Error codes](#topic-error-codes)
  "/employees/{employeeId}/availability-templates/{availabilityTemplateId}/time-ranges/{id}":
    get:
      operationId: getAvailabilityTimeRangeById
      summary: Get an availability time range
      tags:
      - Scheduling
      description: Get an availability time range by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: employeeId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: availabilityTemplateId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: id
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AvailabilityTimeRangeDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    patch:
      operationId: updateAvailabilityTimeRangeById
      summary: Update an availability time range
      tags:
      - Scheduling
      description: Update an availability time range by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                dayOfWeek:
                  anyOf:
                  - type: string
                    enum:
                    - FRIDAY
                    - MONDAY
                    - SATURDAY
                    - SUNDAY
                    - THURSDAY
                    - TUESDAY
                    - WEDNESDAY
                    examples:
                    - MONDAY
                  - type: 'null'
                startTime:
                  type: string
                  minLength: 1
                  examples:
                  - '09:00'
                endTime:
                  type: string
                  minLength: 1
                  examples:
                  - '17:00'
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: employeeId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: availabilityTemplateId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: id
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/AvailabilityTimeRangeDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `AVAILABILITY_TIME_RANGE_DAY_TEMPLATE_WITH_DAY_OF_WEEK`
            * `AVAILABILITY_TIME_RANGE_WEEK_TEMPLATE_WITHOUT_DAY_OF_WEEK`
            * `AVAILABILITY_TIME_RANGE_START_AFTER_END`
            * `AVAILABILITY_TIME_RANGE_MAX_PER_DAY_EXCEEDED`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `AVAILABILITY_TIME_RANGE_DAY_TEMPLATE_WITH_DAY_OF_WEEK`
                  * `AVAILABILITY_TIME_RANGE_WEEK_TEMPLATE_WITHOUT_DAY_OF_WEEK`
                  * `AVAILABILITY_TIME_RANGE_START_AFTER_END`
                  * `AVAILABILITY_TIME_RANGE_MAX_PER_DAY_EXCEEDED`

                  See [Error codes](#topic-error-codes)
    delete:
      operationId: deleteAvailabilityTimeRangeById
      summary: Delete an availability time range
      tags:
      - Scheduling
      description: Delete an availability time range by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: employeeId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: availabilityTemplateId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: id
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readWrite
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/employees/{employeeId}/availability-templates/{availabilityTemplateId}/time-ranges/{id}/availability-settings":
    get:
      operationId: getTimeRangeAvailabilitySettings
      summary: Get time range availability settings
      tags:
      - Scheduling
      description: Get all time range availability settings for a time range by its
        ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: employeeId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: availabilityTemplateId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: id
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      required:
                      - forceManualAccept
                      - overridesDefault
                      - availabilityTimeRange
                      - office
                      - subjectAvailabilitySettings
                      properties:
                        forceManualAccept:
                          type: boolean
                        overridesDefault:
                          type: boolean
                        availabilityTimeRange:
                          type: object
                          required:
                          - id
                          properties:
                            id:
                              type: string
                              minLength: 1
                              examples:
                              - '123'
                          additionalProperties: false
                        office:
                          type: object
                          required:
                          - id
                          properties:
                            id:
                              type: string
                              minLength: 1
                              examples:
                              - '123'
                          additionalProperties: false
                        subjectAvailabilitySettings:
                          type: array
                          items:
                            type: object
                            required:
                            - subject
                            - availabilitySettings
                            properties:
                              subject:
                                type: object
                                required:
                                - id
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    examples:
                                    - '123'
                                additionalProperties: false
                              availabilitySettings:
                                type: array
                                items:
                                  "$ref": "#/components/schemas/TimeRangeOfficeSubjectAvailabilitySetting"
                      additionalProperties: false
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    put:
      operationId: updateTimeRangeAvailabilitySettings
      summary: Update time range availability settings
      tags:
      - Scheduling
      description: Update all availability settings for a time range by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/TimeRangeOfficeInput"
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: employeeId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: availabilityTemplateId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: id
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      required:
                      - forceManualAccept
                      - overridesDefault
                      - availabilityTimeRange
                      - office
                      - subjectAvailabilitySettings
                      properties:
                        forceManualAccept:
                          type: boolean
                        overridesDefault:
                          type: boolean
                        availabilityTimeRange:
                          type: object
                          required:
                          - id
                          properties:
                            id:
                              type: string
                              minLength: 1
                              examples:
                              - '123'
                          additionalProperties: false
                        office:
                          type: object
                          required:
                          - id
                          properties:
                            id:
                              type: string
                              minLength: 1
                              examples:
                              - '123'
                          additionalProperties: false
                        subjectAvailabilitySettings:
                          type: array
                          items:
                            type: object
                            required:
                            - subject
                            - availabilitySettings
                            properties:
                              subject:
                                type: object
                                required:
                                - id
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    examples:
                                    - '123'
                                additionalProperties: false
                              availabilitySettings:
                                type: array
                                items:
                                  "$ref": "#/components/schemas/TimeRangeOfficeSubjectAvailabilitySetting"
                      additionalProperties: false
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/callback-requests":
    get:
      operationId: getCallbackRequests
      summary: Get callback requests
      tags:
      - Scheduling
      description: Get callback requests with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: created-from-date
        required: false
        description: Created at start date and time of the callback request to be
          considered for filtering (ISO 8601)
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: created-to-date
        required: false
        description: Created at end date and time of the callback request to be considered
          for filtering (ISO 8601)
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: external-id
        required: false
        description: External ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
          minItems: 1
          maxItems: 100
        in: query
        name: meeting-type
        required: false
        description: Meeting type(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            enum:
            - COMPLETED
            - OPEN
            - REJECTED
            examples:
            - OPEN
          minItems: 1
          maxItems: 100
        in: query
        name: status
        required: false
        description: Status(es) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: listing-id
        required: false
        description: Listing ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: lead-segment-id
        required: false
        description: Lead segment ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: subject-id
        required: false
        description: Subject ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: office-id
        required: false
        description: Office ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: customer-id
        required: false
        description: Customer ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: employee-id
        required: false
        description: Employee ID(s) to be considered for filtering
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:callbackRequests:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/CallbackRequestSummary"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
    post:
      operationId: createCallbackRequest
      summary: Create a callback request
      tags:
      - Scheduling
      description: Create a callback request
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - callbackRequestParticipants
              - meetingType
              - officeId
              - subjectId
              properties:
                answers:
                  anyOf:
                  - type: array
                    items:
                      type: object
                      required:
                      - questionId
                      properties:
                        value:
                          anyOf:
                          - type: string
                            minLength: 1
                            examples:
                            - A colleague
                          - type: 'null'
                        selectedAnswerOptions:
                          anyOf:
                          - type: array
                            items:
                              type: object
                              required:
                              - id
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - '123'
                              additionalProperties: false
                          - type: 'null'
                        files:
                          anyOf:
                          - type: array
                            items:
                              type: object
                              required:
                              - id
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - '123'
                              additionalProperties: false
                          - type: 'null'
                        questionId:
                          type: string
                          minLength: 1
                          examples:
                          - '123'
                      additionalProperties: false
                  - type: 'null'
                callbackRequestParticipants:
                  type: array
                  items:
                    type: object
                    required:
                    - role
                    - participantId
                    - type
                    properties:
                      role:
                        type: string
                        enum:
                        - PRIMARY
                        - SECONDARY
                        examples:
                        - PRIMARY
                      participantId:
                        type: string
                        minLength: 1
                        examples:
                        - '123'
                      type:
                        type: string
                        enum:
                        - CUSTOMER
                        - EMPLOYEE
                        examples:
                        - EMPLOYEE
                    additionalProperties: false
                  minItems: 1
                internalNotes:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                  - type: 'null'
                leadSegmentId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                listingId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                location:
                  anyOf:
                  - type: object
                    required:
                    - countryCode
                    - translations
                    properties:
                      postalCode:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - '9000'
                        - type: 'null'
                      countryCode:
                        type: string
                        minLength: 2
                        maxLength: 2
                        examples:
                        - BE
                      geolocation:
                        anyOf:
                        - type: object
                          required:
                          - latitude
                          - longitude
                          properties:
                            latitude:
                              type: number
                              minimum: -90
                              maximum: 90
                              examples:
                              - 51.0479466
                            longitude:
                              type: number
                              minimum: -180
                              maximum: 180
                              examples:
                              - 3.6912248
                          additionalProperties: false
                        - type: 'null'
                      translations:
                        type: object
                        required:
                        - city
                        - street1
                        properties:
                          city:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          state:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                          street1:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          street2:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                        additionalProperties: false
                    additionalProperties: false
                  - type: 'null'
                meetingType:
                  type: string
                  enum:
                  - OFFICE
                  - ON_LOCATION
                  - PHONE
                  - VIDEO
                  examples:
                  - OFFICE
                metadata:
                  anyOf:
                  - type: object
                    properties: {}
                    additionalProperties: true
                  - type: 'null'
                officeId:
                  type: string
                  minLength: 1
                  examples:
                  - '123'
                subjectId:
                  type: string
                  minLength: 1
                  examples:
                  - '123'
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:callbackRequests:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/CallbackRequestDetail"
                description: Successful operation
                additionalProperties: false
  "/callback-requests/{id}":
    get:
      operationId: getCallbackRequestById
      summary: Get a callback request
      tags:
      - Scheduling
      description: Get a callback request by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:callbackRequests:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/CallbackRequestDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    patch:
      operationId: updateCallbackRequestById
      summary: Update a callback request
      tags:
      - Scheduling
      description: Update a callback request by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - status
              properties:
                status:
                  type: string
                  enum:
                  - COMPLETED
                  - OPEN
                  - REJECTED
                  examples:
                  - OPEN
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:callbackRequests:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/CallbackRequestDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/calendar-event/google/{token}":
    get:
      operationId: addAppointmentToGoogleCalendar
      summary: Add appointment to Google Calendar
      tags:
      - Scheduling
      description: Add appointment to Google Calendar
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - m8WwB7iPxDgCKpnBGM83wXJnv7OxzccKagbwyxQXFL
        in: path
        name: token
        required: true
        description: Token of the appointment participant
      responses:
        '302':
          description: Redirect
  "/calendar-event/office365/{token}":
    get:
      operationId: addAppointmentToOffice365Calendar
      summary: Add appointment to Office365 Calendar
      tags:
      - Scheduling
      description: Add appointment to Office365 Calendar
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - m8WwB7iPxDgCKpnBGM83wXJnv7OxzccKagbwyxQXFL
        in: path
        name: token
        required: true
        description: Token of the appointment participant
      responses:
        '302':
          description: Redirect
  "/calendar-event/ical/{token}":
    get:
      operationId: downloadAppointmentICal
      summary: Download the appointment ICal file
      tags:
      - Scheduling
      description: Download the appointment ICal file
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - m8WwB7iPxDgCKpnBGM83wXJnv7OxzccKagbwyxQXFL
        in: path
        name: token
        required: true
        description: Token of the appointment participant
      responses:
        '200':
          description: Default Response
  "/contexts/{id}":
    get:
      operationId: getContextById
      summary: Get a context
      tags:
      - Context Management
      description: Get a context by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:contexts:readOnly
        - engage:contexts:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/ContextDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/contexts":
    post:
      operationId: createContext
      summary: Create a context
      tags:
      - Context Management
      description: Create a context
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                appointmentExternalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                end:
                  anyOf:
                  - type: string
                    minLength: 1
                    format: date-time
                  - type: 'null'
                metadata:
                  anyOf:
                  - type: object
                    properties: {}
                    additionalProperties: true
                  - type: 'null'
                employeeIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    examples:
                    - '123'
                  minItems: 1
                  maxItems: 100
                  description: ID(s) to be considered for filtering
                secondaryEmployeeIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    examples:
                    - '123'
                  minItems: 1
                  maxItems: 100
                  description: ID(s) to be considered for filtering
                subjectIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    examples:
                    - '123'
                  minItems: 1
                  maxItems: 100
                  description: ID(s) to be considered for filtering
                subjectGroupIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    examples:
                    - '123'
                  minItems: 1
                  maxItems: 100
                  description: ID(s) to be considered for filtering
                listingIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    examples:
                    - '123'
                  minItems: 1
                  maxItems: 100
                  description: ID(s) to be considered for filtering
                leadSegmentIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    examples:
                    - '123'
                  minItems: 1
                  maxItems: 100
                  description: ID(s) to be considered for filtering
                meetingRoomIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    examples:
                    - '123'
                  minItems: 1
                  maxItems: 100
                  description: ID(s) to be considered for filtering
                meetingTypes:
                  type: array
                  items:
                    type: string
                    enum:
                    - OFFICE
                    - ON_LOCATION
                    - PHONE
                    - VIDEO
                    examples:
                    - OFFICE
                customerIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    examples:
                    - '123'
                  minItems: 1
                  maxItems: 100
                  description: ID(s) to be considered for filtering
                secondaryCustomerIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    examples:
                    - '123'
                  minItems: 1
                  maxItems: 100
                  description: ID(s) to be considered for filtering
                start:
                  anyOf:
                  - type: string
                    minLength: 1
                    format: date-time
                  - type: 'null'
                employeeExternalIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  minItems: 1
                  maxItems: 100
                  description: External ID(s) to be considered for filtering
                secondaryEmployeeExternalIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  minItems: 1
                  maxItems: 100
                  description: External ID(s) to be considered for filtering
                officeExternalIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  minItems: 1
                  maxItems: 100
                  description: External ID(s) to be considered for filtering
                subjectExternalIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  minItems: 1
                  maxItems: 100
                  description: External ID(s) to be considered for filtering
                subjectGroupExternalIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  minItems: 1
                  maxItems: 100
                  description: External ID(s) to be considered for filtering
                listingExternalIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  minItems: 1
                  maxItems: 100
                  description: External ID(s) to be considered for filtering
                leadSegmentCodes:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  minItems: 1
                  maxItems: 100
                  description: External ID(s) to be considered for filtering
                customerExternalids:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  minItems: 1
                  maxItems: 100
                  description: External ID(s) to be considered for filtering
                secondaryCustomerExternalIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  minItems: 1
                  maxItems: 100
                  description: External ID(s) to be considered for filtering
                customers:
                  type: array
                  items:
                    type: object
                    properties:
                      externalId:
                        anyOf:
                        - type: string
                          minLength: 1
                          maxLength: 255
                          examples:
                          - ABCD1234
                        - type: 'null'
                      customerNumber:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - '123456'
                        - type: 'null'
                      email:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - john.doe@pexip.com
                        - type: 'null'
                      firstName:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - John
                        - type: 'null'
                      lastName:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - Doe
                        - type: 'null'
                      company:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - Acme Corp
                        - type: 'null'
                      language:
                        anyOf:
                        - type: string
                          enum:
                          - da
                          - de
                          - el
                          - en
                          - es
                          - fr
                          - ja
                          - nl
                          - 'no'
                          - pl
                        - type: 'null'
                      notes:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - Lorem ipsum
                        - type: 'null'
                      phoneNumber:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - "+32412345678"
                        - type: 'null'
                      existing:
                        anyOf:
                        - type: boolean
                          default: false
                          examples:
                          - true
                          - false
                        - type: 'null'
                      timeZone:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - Europe/Brussels
                        - type: 'null'
                      location:
                        anyOf:
                        - type: object
                          required:
                          - countryCode
                          - translations
                          properties:
                            postalCode:
                              anyOf:
                              - type: string
                                minLength: 1
                                examples:
                                - '9000'
                              - type: 'null'
                            countryCode:
                              type: string
                              minLength: 2
                              maxLength: 2
                              examples:
                              - BE
                            geolocation:
                              anyOf:
                              - type: object
                                required:
                                - latitude
                                - longitude
                                properties:
                                  latitude:
                                    type: number
                                    minimum: -90
                                    maximum: 90
                                    examples:
                                    - 51.0479466
                                  longitude:
                                    type: number
                                    minimum: -180
                                    maximum: 180
                                    examples:
                                    - 3.6912248
                                additionalProperties: false
                              - type: 'null'
                            translations:
                              type: object
                              required:
                              - city
                              - street1
                              properties:
                                city:
                                  type: array
                                  items:
                                    type: object
                                    required:
                                    - language
                                    - value
                                    properties:
                                      language:
                                        type: string
                                        enum:
                                        - da
                                        - de
                                        - el
                                        - en
                                        - es
                                        - fr
                                        - ja
                                        - nl
                                        - 'no'
                                        - pl
                                        examples:
                                        - en
                                      value:
                                        type: string
                                        minLength: 1
                                        examples:
                                        - Lorem ipsum
                                    additionalProperties: false
                                  minItems: 1
                                state:
                                  type: array
                                  items:
                                    type: object
                                    required:
                                    - language
                                    - value
                                    properties:
                                      language:
                                        type: string
                                        enum:
                                        - da
                                        - de
                                        - el
                                        - en
                                        - es
                                        - fr
                                        - ja
                                        - nl
                                        - 'no'
                                        - pl
                                        examples:
                                        - en
                                      value:
                                        type: string
                                        minLength: 1
                                        examples:
                                        - Lorem ipsum
                                    additionalProperties: false
                                  minItems: 0
                                street1:
                                  type: array
                                  items:
                                    type: object
                                    required:
                                    - language
                                    - value
                                    properties:
                                      language:
                                        type: string
                                        enum:
                                        - da
                                        - de
                                        - el
                                        - en
                                        - es
                                        - fr
                                        - ja
                                        - nl
                                        - 'no'
                                        - pl
                                        examples:
                                        - en
                                      value:
                                        type: string
                                        minLength: 1
                                        examples:
                                        - Lorem ipsum
                                    additionalProperties: false
                                  minItems: 1
                                street2:
                                  type: array
                                  items:
                                    type: object
                                    required:
                                    - language
                                    - value
                                    properties:
                                      language:
                                        type: string
                                        enum:
                                        - da
                                        - de
                                        - el
                                        - en
                                        - es
                                        - fr
                                        - ja
                                        - nl
                                        - 'no'
                                        - pl
                                        examples:
                                        - en
                                      value:
                                        type: string
                                        minLength: 1
                                        examples:
                                        - Lorem ipsum
                                    additionalProperties: false
                                  minItems: 0
                              additionalProperties: false
                          additionalProperties: false
                        - type: 'null'
                    additionalProperties: false
                secondaryCustomers:
                  type: array
                  items:
                    type: object
                    properties:
                      externalId:
                        anyOf:
                        - type: string
                          minLength: 1
                          maxLength: 255
                          examples:
                          - ABCD1234
                        - type: 'null'
                      customerNumber:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - '123456'
                        - type: 'null'
                      email:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - john.doe@pexip.com
                        - type: 'null'
                      firstName:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - John
                        - type: 'null'
                      lastName:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - Doe
                        - type: 'null'
                      company:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - Acme Corp
                        - type: 'null'
                      language:
                        anyOf:
                        - type: string
                          enum:
                          - da
                          - de
                          - el
                          - en
                          - es
                          - fr
                          - ja
                          - nl
                          - 'no'
                          - pl
                        - type: 'null'
                      notes:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - Lorem ipsum
                        - type: 'null'
                      phoneNumber:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - "+32412345678"
                        - type: 'null'
                      existing:
                        anyOf:
                        - type: boolean
                          default: false
                          examples:
                          - true
                          - false
                        - type: 'null'
                      timeZone:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - Europe/Brussels
                        - type: 'null'
                      location:
                        anyOf:
                        - type: object
                          required:
                          - countryCode
                          - translations
                          properties:
                            postalCode:
                              anyOf:
                              - type: string
                                minLength: 1
                                examples:
                                - '9000'
                              - type: 'null'
                            countryCode:
                              type: string
                              minLength: 2
                              maxLength: 2
                              examples:
                              - BE
                            geolocation:
                              anyOf:
                              - type: object
                                required:
                                - latitude
                                - longitude
                                properties:
                                  latitude:
                                    type: number
                                    minimum: -90
                                    maximum: 90
                                    examples:
                                    - 51.0479466
                                  longitude:
                                    type: number
                                    minimum: -180
                                    maximum: 180
                                    examples:
                                    - 3.6912248
                                additionalProperties: false
                              - type: 'null'
                            translations:
                              type: object
                              required:
                              - city
                              - street1
                              properties:
                                city:
                                  type: array
                                  items:
                                    type: object
                                    required:
                                    - language
                                    - value
                                    properties:
                                      language:
                                        type: string
                                        enum:
                                        - da
                                        - de
                                        - el
                                        - en
                                        - es
                                        - fr
                                        - ja
                                        - nl
                                        - 'no'
                                        - pl
                                        examples:
                                        - en
                                      value:
                                        type: string
                                        minLength: 1
                                        examples:
                                        - Lorem ipsum
                                    additionalProperties: false
                                  minItems: 1
                                state:
                                  type: array
                                  items:
                                    type: object
                                    required:
                                    - language
                                    - value
                                    properties:
                                      language:
                                        type: string
                                        enum:
                                        - da
                                        - de
                                        - el
                                        - en
                                        - es
                                        - fr
                                        - ja
                                        - nl
                                        - 'no'
                                        - pl
                                        examples:
                                        - en
                                      value:
                                        type: string
                                        minLength: 1
                                        examples:
                                        - Lorem ipsum
                                    additionalProperties: false
                                  minItems: 0
                                street1:
                                  type: array
                                  items:
                                    type: object
                                    required:
                                    - language
                                    - value
                                    properties:
                                      language:
                                        type: string
                                        enum:
                                        - da
                                        - de
                                        - el
                                        - en
                                        - es
                                        - fr
                                        - ja
                                        - nl
                                        - 'no'
                                        - pl
                                        examples:
                                        - en
                                      value:
                                        type: string
                                        minLength: 1
                                        examples:
                                        - Lorem ipsum
                                    additionalProperties: false
                                  minItems: 1
                                street2:
                                  type: array
                                  items:
                                    type: object
                                    required:
                                    - language
                                    - value
                                    properties:
                                      language:
                                        type: string
                                        enum:
                                        - da
                                        - de
                                        - el
                                        - en
                                        - es
                                        - fr
                                        - ja
                                        - nl
                                        - 'no'
                                        - pl
                                        examples:
                                        - en
                                      value:
                                        type: string
                                        minLength: 1
                                        examples:
                                        - Lorem ipsum
                                    additionalProperties: false
                                  minItems: 0
                              additionalProperties: false
                          additionalProperties: false
                        - type: 'null'
                    additionalProperties: false
              additionalProperties: false
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:contexts:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/ContextDetail"
                description: Successful operation
                additionalProperties: false
  "/customers":
    get:
      operationId: getCustomers
      summary: Get customers
      tags:
      - Customer Management
      description: Get customers with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: external-id
        required: false
        description: External ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
          minItems: 1
          maxItems: 100
        in: query
        name: customer-number
        required: false
        description: Customer number(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
        in: query
        name: search
        required: false
        description: Filters the results to only include customers whose first name,
          last name or email address contains the given search string
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: boolean
        in: query
        name: with-deleted
        required: false
        description: Includes deleted resources in the results
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:customers:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/CustomerSummary"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
    post:
      operationId: createCustomer
      summary: Create a customer
      tags:
      - Customer Management
      description: Create a customer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                customerNumber:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123456'
                  - type: 'null'
                email:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - john.doe@pexip.com
                  - type: 'null'
                firstName:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - John
                  - type: 'null'
                lastName:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Doe
                  - type: 'null'
                company:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Acme Corp
                  - type: 'null'
                language:
                  anyOf:
                  - type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                  - type: 'null'
                notes:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                  - type: 'null'
                phoneNumber:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - "+32412345678"
                  - type: 'null'
                existing:
                  anyOf:
                  - type: boolean
                    default: false
                    examples:
                    - true
                    - false
                  - type: 'null'
                timeZone:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Europe/Brussels
                  - type: 'null'
                location:
                  anyOf:
                  - type: object
                    required:
                    - countryCode
                    - translations
                    properties:
                      postalCode:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - '9000'
                        - type: 'null'
                      countryCode:
                        type: string
                        minLength: 2
                        maxLength: 2
                        examples:
                        - BE
                      geolocation:
                        anyOf:
                        - type: object
                          required:
                          - latitude
                          - longitude
                          properties:
                            latitude:
                              type: number
                              minimum: -90
                              maximum: 90
                              examples:
                              - 51.0479466
                            longitude:
                              type: number
                              minimum: -180
                              maximum: 180
                              examples:
                              - 3.6912248
                          additionalProperties: false
                        - type: 'null'
                      translations:
                        type: object
                        required:
                        - city
                        - street1
                        properties:
                          city:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          state:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                          street1:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          street2:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                        additionalProperties: false
                    additionalProperties: false
                  - type: 'null'
              additionalProperties: false
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:customers:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/CustomerDetail"
                description: Successful operation
                additionalProperties: false
        '422':
          description: |-
            Business validation failed

            * `CUSTOMER_NOT_IDENTIFIABLE`
            * `LOCATION_GEOCODING_FAILED`
            * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `CUSTOMER_NOT_IDENTIFIABLE`
                  * `LOCATION_GEOCODING_FAILED`
                  * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

                  See [Error codes](#topic-error-codes)
  "/customers/{id}":
    get:
      operationId: getCustomerById
      summary: Get a customer
      tags:
      - Customer Management
      description: Get a customer by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:customers:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/CustomerDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    patch:
      operationId: updateCustomerById
      summary: Update a customer
      tags:
      - Customer Management
      description: Update a customer by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                customerNumber:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123456'
                  - type: 'null'
                email:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - john.doe@pexip.com
                  - type: 'null'
                firstName:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - John
                  - type: 'null'
                lastName:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Doe
                  - type: 'null'
                company:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Acme Corp
                  - type: 'null'
                language:
                  anyOf:
                  - type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                  - type: 'null'
                notes:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Lorem ipsum
                  - type: 'null'
                phoneNumber:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - "+32412345678"
                  - type: 'null'
                existing:
                  anyOf:
                  - type: boolean
                    examples:
                    - true
                    - false
                  - type: 'null'
                timeZone:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Europe/Brussels
                  - type: 'null'
                location:
                  anyOf:
                  - type: object
                    required:
                    - countryCode
                    - translations
                    properties:
                      postalCode:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - '9000'
                        - type: 'null'
                      countryCode:
                        type: string
                        minLength: 2
                        maxLength: 2
                        examples:
                        - BE
                      geolocation:
                        anyOf:
                        - type: object
                          required:
                          - latitude
                          - longitude
                          properties:
                            latitude:
                              type: number
                              minimum: -90
                              maximum: 90
                              examples:
                              - 51.0479466
                            longitude:
                              type: number
                              minimum: -180
                              maximum: 180
                              examples:
                              - 3.6912248
                          additionalProperties: false
                        - type: 'null'
                      translations:
                        type: object
                        required:
                        - city
                        - street1
                        properties:
                          city:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          state:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                          street1:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          street2:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                        additionalProperties: false
                    additionalProperties: false
                  - type: 'null'
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:customers:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/CustomerDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `CUSTOMER_NOT_IDENTIFIABLE`
            * `LOCATION_GEOCODING_FAILED`
            * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `CUSTOMER_NOT_IDENTIFIABLE`
                  * `LOCATION_GEOCODING_FAILED`
                  * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

                  See [Error codes](#topic-error-codes)
    delete:
      operationId: deleteCustomerById
      summary: Delete a customer
      tags:
      - Customer Management
      description: Delete a customer by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:customers:readWrite
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/data-export/appointments":
    get:
      operationId: dataExportAppointments
      summary: Retrieve appointments data in csv-format
      tags:
      - Scheduling
      description: Retrieve appointments data in csv-format
      parameters:
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: created-from
        required: false
        description: Created at start date and time to be considered for the data
          (ISO 8601)
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: created-to
        required: false
        description: Created at end date and time to be considered for the data (ISO
          8601)
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: from
        required: false
        description: Start date and time of the appointment to be considered for the
          data (ISO 8601)
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: to
        required: false
        description: End date and time of the appointment to be considered for the
          data (ISO 8601)
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:insights:readOnly
        - engage:insights:readWrite
      responses:
        '200':
          description: Default Response
  "/data-export/conversion-analytics-sessions":
    get:
      operationId: dataExportConversionAnalyticsSessions
      summary: Retrieve conversion analytics sessions data in csv-format
      tags:
      - Scheduling
      description: Retrieve conversion analytics sessions data in csv-format
      parameters:
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: created-from
        required: false
        description: Created at start date and time to be considered for the data
          (ISO 8601)
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: created-to
        required: false
        description: Created at end date and time to be considered for the data (ISO
          8601)
      - schema:
          type: string
          enum:
          - CANCEL
          - COMPLETE
          - EDIT
          - INVITE
          - RESCHEDULE
          - SCHEDULE
          - SECONDARY_CUSTOMER_DECLINE
        in: query
        name: intent
        required: false
        description: Filters the intent of the started session.
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:insights:readOnly
        - engage:insights:readWrite
      responses:
        '200':
          description: Default Response
  "/defined-availability":
    get:
      operationId: getDefinedAvailability
      summary: Get defined availability
      tags:
      - Scheduling
      description: Get defined availability with filtering
      parameters:
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: from
        required: true
        description: Start date and time to be considered for filtering (ISO 8601)
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: to
        required: true
        description: End date and time to be considered for filtering (ISO 8601)
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: employee-id
        required: false
        description: Employee ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: office-id
        required: true
        description: Office ID to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: subject-id
        required: false
        description: Subject ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
          minItems: 1
          maxItems: 100
        in: query
        name: meeting-type
        required: false
        description: Meeting type(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      required:
                      - start
                      - end
                      - employee
                      - office
                      - subject
                      - meetingType
                      - forceManualAccept
                      - maxConcurrentAppointments
                      properties:
                        start:
                          type: string
                          minLength: 1
                          format: date-time
                          examples:
                          - '2022-08-17T09:00:00.000Z'
                        end:
                          type: string
                          minLength: 1
                          format: date-time
                          examples:
                          - '2022-08-17T17:00:00.000Z'
                        employee:
                          type: object
                          required:
                          - id
                          properties:
                            id:
                              type: string
                              minLength: 1
                              examples:
                              - '123'
                          additionalProperties: false
                        office:
                          type: object
                          required:
                          - id
                          properties:
                            id:
                              type: string
                              minLength: 1
                              examples:
                              - '123'
                          additionalProperties: false
                        subject:
                          type: object
                          required:
                          - id
                          properties:
                            id:
                              type: string
                              minLength: 1
                              examples:
                              - '123'
                          additionalProperties: false
                        meetingType:
                          type: string
                          enum:
                          - OFFICE
                          - ON_LOCATION
                          - PHONE
                          - VIDEO
                          examples:
                          - OFFICE
                        forceManualAccept:
                          type: boolean
                        maxConcurrentAppointments:
                          type: integer
                          minimum: 0
                          examples:
                          - 5
                      additionalProperties: false
                description: Successful operation
                additionalProperties: false
  "/employees":
    get:
      operationId: getEmployees
      summary: Get employees
      tags:
      - Organization
      description: Get employees with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
          minItems: 1
          maxItems: 100
        in: query
        name: email
        required: false
        description: Email(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
          minItems: 1
          maxItems: 100
        in: query
        name: external-id
        required: false
        description: External ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            enum:
            - ADMIN
            - AGENT
            - CENTRAL_PLANNER
            - OFFICE_MANAGER
            examples:
            - ADMIN
          minItems: 1
          maxItems: 100
        in: query
        name: available-role
        required: false
        description: Available role(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
          minItems: 1
          maxItems: 100
        in: query
        name: username
        required: false
        description: Username(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            enum:
            - ACTIVE
            - PENDING
            - SUSPENDED
            examples:
            - ACTIVE
          minItems: 1
          maxItems: 100
        in: query
        name: status
        required: false
        description: Status(es) to be considered for filtering
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: boolean
        in: query
        name: with-deleted
        required: false
        description: Includes deleted resources in the results
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:employees:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/EmployeeSummary"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
    post:
      operationId: createEmployee
      summary: Create an employee
      tags:
      - Organization
      description: Create an employee
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - firstName
              - lastName
              - email
              - translations
              properties:
                communicationEmail:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - john.doe@pexip.com
                  - type: 'null'
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                username:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                firstName:
                  type: string
                  minLength: 1
                  examples:
                  - John
                lastName:
                  type: string
                  minLength: 1
                  examples:
                  - Doe
                staticVideoUrl:
                  anyOf:
                  - type: string
                    minLength: 1
                    format: uri
                    examples:
                    - https://wwww.example.net/abc123
                  - type: 'null'
                phoneNumber:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - "+32412345678"
                  - type: 'null'
                profilePictureUrl:
                  anyOf:
                  - type: string
                    minLength: 1
                    format: uri
                    examples:
                    - https://wwww.example.net/abc123
                  - type: 'null'
                metadata:
                  anyOf:
                  - type: object
                    properties: {}
                    additionalProperties: true
                  - type: 'null'
                email:
                  type: string
                  minLength: 1
                  examples:
                  - john.doe@pexip.com
                language:
                  anyOf:
                  - type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  - type: 'null'
                languageExpertise:
                  anyOf:
                  - type: array
                    items:
                      type: string
                      enum:
                      - da
                      - de
                      - el
                      - en
                      - es
                      - fr
                      - ja
                      - nl
                      - 'no'
                      - pl
                      examples:
                      - en
                    default: []
                  - type: 'null'
                timeZone:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Europe/Brussels
                  - type: 'null'
                availableRoles:
                  anyOf:
                  - type: array
                    items:
                      type: string
                      enum:
                      - ADMIN
                      - AGENT
                      - CENTRAL_PLANNER
                      - OFFICE_MANAGER
                      examples:
                      - ADMIN
                    default: []
                  - type: 'null'
                status:
                  anyOf:
                  - type: string
                    enum:
                    - ACTIVE
                    - PENDING
                    - SUSPENDED
                    examples:
                    - ACTIVE
                    default: PENDING
                  - type: 'null'
                onlinePlanning:
                  anyOf:
                  - type: boolean
                    default: false
                    examples:
                    - true
                    - false
                  - type: 'null'
                officeRelations:
                  anyOf:
                  - type: array
                    items:
                      type: object
                      required:
                      - role
                      - officeId
                      properties:
                        role:
                          type: string
                          enum:
                          - AGENT
                          - OFFICE_MANAGER
                          examples:
                          - AGENT
                        officeId:
                          type: string
                          minLength: 1
                          examples:
                          - '123'
                      additionalProperties: false
                    default: []
                  - type: 'null'
                translations:
                  type: object
                  properties:
                    function:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                      minItems: 0
                  additionalProperties: false
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:employees:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/EmployeeDetail"
                description: Successful operation
                additionalProperties: false
        '422':
          description: |-
            Business validation failed

            * `EMPLOYEE_EMAIL_ALREADY_IN_USE`
            * `EMPLOYEE_EXTERNAL_ID_ALREADY_IN_USE`
            * `EMPLOYEE_OFFICE_RELATION_ROLE_MISMATCH`
            * `EMPLOYEE_USERNAME_ALREADY_IN_USE`
            * `FILE_URL_INVALID`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `EMPLOYEE_EMAIL_ALREADY_IN_USE`
                  * `EMPLOYEE_EXTERNAL_ID_ALREADY_IN_USE`
                  * `EMPLOYEE_OFFICE_RELATION_ROLE_MISMATCH`
                  * `EMPLOYEE_USERNAME_ALREADY_IN_USE`
                  * `FILE_URL_INVALID`

                  See [Error codes](#topic-error-codes)
  "/employees/{id}":
    get:
      operationId: getEmployeeById
      summary: Get an employee
      tags:
      - Organization
      description: Get an employee by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:employees:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/EmployeeDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    patch:
      operationId: updateEmployeeById
      summary: Update an employee
      tags:
      - Organization
      description: Update an employee by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                communicationEmail:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - john.doe@pexip.com
                  - type: 'null'
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                username:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                firstName:
                  type: string
                  minLength: 1
                  examples:
                  - John
                lastName:
                  type: string
                  minLength: 1
                  examples:
                  - Doe
                staticVideoUrl:
                  anyOf:
                  - type: string
                    minLength: 1
                    format: uri
                    examples:
                    - https://wwww.example.net/abc123
                  - type: 'null'
                phoneNumber:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - "+32412345678"
                  - type: 'null'
                profilePictureUrl:
                  anyOf:
                  - type: string
                    minLength: 1
                    format: uri
                    examples:
                    - https://wwww.example.net/abc123
                  - type: 'null'
                metadata:
                  anyOf:
                  - type: object
                    properties: {}
                    additionalProperties: true
                  - type: 'null'
                email:
                  anyOf:
                  - type: string
                    minLength: 1
                  - type: 'null'
                language:
                  anyOf:
                  - type: string
                    enum:
                    - da
                    - de
                    - el
                    - en
                    - es
                    - fr
                    - ja
                    - nl
                    - 'no'
                    - pl
                    examples:
                    - en
                  - type: 'null'
                languageExpertise:
                  anyOf:
                  - type: array
                    items:
                      type: string
                      enum:
                      - da
                      - de
                      - el
                      - en
                      - es
                      - fr
                      - ja
                      - nl
                      - 'no'
                      - pl
                      examples:
                      - en
                    default: []
                  - type: 'null'
                timeZone:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Europe/Brussels
                  - type: 'null'
                availableRoles:
                  anyOf:
                  - type: array
                    items:
                      type: string
                      enum:
                      - ADMIN
                      - AGENT
                      - CENTRAL_PLANNER
                      - OFFICE_MANAGER
                      examples:
                      - ADMIN
                  - type: 'null'
                status:
                  anyOf:
                  - type: string
                    enum:
                    - ACTIVE
                    - PENDING
                    - SUSPENDED
                    examples:
                    - ACTIVE
                  - type: 'null'
                onlinePlanning:
                  anyOf:
                  - type: boolean
                    examples:
                    - true
                    - false
                  - type: 'null'
                officeRelations:
                  anyOf:
                  - type: array
                    items:
                      type: object
                      required:
                      - role
                      - officeId
                      properties:
                        role:
                          type: string
                          enum:
                          - AGENT
                          - OFFICE_MANAGER
                          examples:
                          - AGENT
                        officeId:
                          type: string
                          minLength: 1
                          examples:
                          - '123'
                      additionalProperties: false
                  - type: 'null'
                translations:
                  type: object
                  properties:
                    function:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:employees:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/EmployeeDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `EMPLOYEE_EMAIL_ALREADY_IN_USE`
            * `EMPLOYEE_EXTERNAL_ID_ALREADY_IN_USE`
            * `EMPLOYEE_OFFICE_RELATION_ROLE_MISMATCH`
            * `EMPLOYEE_ONLINE_PLANNING_NON_AGENT`
            * `EMPLOYEE_USERNAME_ALREADY_IN_USE`
            * `EMPLOYEE_UPDATE_STATUS_PENDING`
            * `FILE_URL_INVALID`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `EMPLOYEE_EMAIL_ALREADY_IN_USE`
                  * `EMPLOYEE_EXTERNAL_ID_ALREADY_IN_USE`
                  * `EMPLOYEE_OFFICE_RELATION_ROLE_MISMATCH`
                  * `EMPLOYEE_ONLINE_PLANNING_NON_AGENT`
                  * `EMPLOYEE_USERNAME_ALREADY_IN_USE`
                  * `EMPLOYEE_UPDATE_STATUS_PENDING`
                  * `FILE_URL_INVALID`

                  See [Error codes](#topic-error-codes)
    delete:
      operationId: deleteEmployeeById
      summary: Delete an employee
      tags:
      - Organization
      description: Delete an employee by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:employees:readWrite
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/employees/{id}/_actions/reset":
    post:
      operationId: resetEmployeeById
      summary: Reset an employee
      tags:
      - Organization
      description: Reset an employee by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:employees:readWrite
      responses:
        '204':
          description: Successful operation
  "/employees/profile-picture-url":
    get:
      operationId: getAuthorizedProfilePictureUrl
      summary: Get authorized profile picture upload URL
      tags:
      - Organization
      description: Get an authorized URL for uploading a profile picture
      parameters:
      - schema:
          type: string
          minLength: 1
        in: query
        name: file-name
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:employees:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: object
                    required:
                    - url
                    - authorizedUrl
                    properties:
                      url:
                        type: string
                        minLength: 1
                        format: uri
                        examples:
                        - https://wwww.example.net/abc123
                      authorizedUrl:
                        type: string
                        minLength: 1
                        format: uri
                        examples:
                        - https://wwww.example.net/abc123
                    additionalProperties: false
                description: Successful operation
                additionalProperties: false
  "/employees/{id}/unavailability":
    get:
      operationId: getEmployeeUnavailability
      summary: Get employee unavailability
      tags:
      - Scheduling
      description: Get unavailability for an employee by its ID with filtering
      parameters:
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: start
        required: false
        description: Start date and time to be considered for filtering (ISO 8601)
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: end
        required: false
        description: End date and time to be considered for filtering (ISO 8601)
      - schema:
          type: array
          items:
            type: string
            enum:
            - APPOINTMENT
            - EXTERNAL_CALENDAR
            - LISTING_EXCLUSIVITY
            - USER_DEFINED
            examples:
            - USER_DEFINED
          minItems: 1
        in: query
        name: type
        required: false
        description: Unavailability type(s) to be considered for filtering
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/EmployeeUnavailabilityDetail"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    post:
      operationId: createUnavailability
      summary: Create unavailability
      tags:
      - Scheduling
      description: Create unavailability
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - startDate
              - endDate
              properties:
                startDate:
                  type: string
                  minLength: 1
                  examples:
                  - '2023-08-01'
                endDate:
                  type: string
                  minLength: 1
                  examples:
                  - '2023-08-14'
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/EmployeeUnavailabilityDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `UNAVAILABILITY_OVERLAP`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `UNAVAILABILITY_OVERLAP`

                  See [Error codes](#topic-error-codes)
  "/employees/{id}/unavailability-event":
    post:
      operationId: createUnavailabilityEvent
      summary: Create unavailability event
      tags:
      - Scheduling
      description: Create unavailability event for employee
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - end
              - start
              properties:
                end:
                  type: string
                  minLength: 1
                  format: date-time
                start:
                  type: string
                  minLength: 1
                  format: date-time
                answers:
                  anyOf:
                  - type: array
                    items:
                      type: object
                      required:
                      - questionId
                      properties:
                        value:
                          anyOf:
                          - type: string
                            minLength: 1
                            examples:
                            - A colleague
                          - type: 'null'
                        selectedAnswerOptions:
                          anyOf:
                          - type: array
                            items:
                              type: object
                              required:
                              - id
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - '123'
                              additionalProperties: false
                          - type: 'null'
                        files:
                          anyOf:
                          - type: array
                            items:
                              type: object
                              required:
                              - id
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - '123'
                              additionalProperties: false
                          - type: 'null'
                        questionId:
                          type: string
                          minLength: 1
                          examples:
                          - '123'
                      additionalProperties: false
                  - type: 'null'
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/EmployeeUnavailabilityDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/employees/{employeeId}/unavailability-event/{id}":
    delete:
      operationId: deleteUnavailability
      summary: Delete unavailability
      tags:
      - Scheduling
      description: Delete unavailability
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: employeeId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: id
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readWrite
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/employees/{id}/unavailability/_actions/revert":
    post:
      operationId: revertUnavailability
      summary: Revert unavailability
      tags:
      - Scheduling
      description: Revert unavailability
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - startDate
              - endDate
              properties:
                startDate:
                  type: string
                  minLength: 1
                  examples:
                  - '2023-08-01'
                endDate:
                  type: string
                  minLength: 1
                  examples:
                  - '2023-08-14'
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readWrite
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/settings":
    get:
      operationId: getEnterpriseSettings
      summary: Get enterprise settings
      tags:
      - Organization
      description: Get enterprise settings
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:settings:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: object
                    additionalProperties:
                      "$ref": "#/components/schemas/EnterpriseSettingSummary"
                description: Successful operation
                additionalProperties: false
    patch:
      operationId: updateEnterpriseSettings
      summary: Update enterprise settings
      tags:
      - Organization
      description: Update enterprise settings by their keys
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: object
                required:
                - value
                properties:
                  manageable:
                    anyOf:
                    - type: boolean
                      examples:
                      - true
                      - false
                    - type: 'null'
                  value: {}
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:settings:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: object
                    additionalProperties:
                      "$ref": "#/components/schemas/EnterpriseSettingSummary"
                description: Successful operation
                additionalProperties: false
        '422':
          description: |-
            Business validation failed

            * `SETTING_APPOINTMENT_EARLIEST_LATEST_POSSIBLE_INVALID`
            * `SETTING_MANAGEABILITY_MODIFICATION_NOT_ALLOWED`
            * `SETTING_NON_MANAGEABLE`
            * `SETTING_VALUE_INVALID`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `SETTING_APPOINTMENT_EARLIEST_LATEST_POSSIBLE_INVALID`
                  * `SETTING_MANAGEABILITY_MODIFICATION_NOT_ALLOWED`
                  * `SETTING_NON_MANAGEABLE`
                  * `SETTING_VALUE_INVALID`

                  See [Error codes](#topic-error-codes)
  "/employees/{employeeId}/offices/{officeId}/expertise":
    put:
      operationId: putExpertiseForEmployee
      summary: Put expertise for employee
      tags:
      - Scheduling
      description: Put expertise for employee
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                required:
                - subjectId
                properties:
                  subjectId:
                    type: string
                    minLength: 1
                    examples:
                    - '123'
                  rank:
                    type: number
                additionalProperties: false
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: employeeId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: officeId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:expertises:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/ExpertiseDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `EMPLOYEE_OFFICE_RELATION_ROLE_MISMATCH`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `EMPLOYEE_OFFICE_RELATION_ROLE_MISMATCH`

                  See [Error codes](#topic-error-codes)
  "/employees/{employeeId}/external-calendar-events":
    get:
      operationId: getExternalCalendarEvents
      summary: Get external calendar events
      tags:
      - External Calendars
      description: Get external calendar events for an employee by its ID with filtering
      parameters:
      - schema:
          anyOf:
          - type: string
            minLength: 1
            examples:
            - '123'
            description: External calendar ID to be considered for filtering
          - type: 'null'
        in: query
        name: external-calendar-id
        required: false
      - schema:
          type: array
          items:
            type: string
            enum:
            - BUSY
            - FREE
            - TENTATIVE
            examples:
            - BUSY
          minItems: 1
          maxItems: 100
        in: query
        name: show-as
        required: false
        description: Status to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: from
        required: true
        description: Start date and time of the event to be considered for filtering
          (ISO 8601)
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: to
        required: true
        description: End date and time of the event to be considered for filtering
          (ISO 8601)
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: employeeId
        required: true
        description: Primary identifier of the employee
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:externalCalendars:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/ExternalCalendarEvent"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/employees/{id}/favorite-agents":
    get:
      operationId: getFavoriteAgents
      summary: Get favorite agents
      tags:
      - Organization
      description: Get favorite agents for an employee by its ID with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: office-id
        required: false
        description: Office ID(s) to be considered for filtering
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:employees:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/FavoriteAgentSummary"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    put:
      operationId: updateFavoriteAgents
      summary: Update favorite agents
      tags:
      - Organization
      description: Update favorite agents for an employee within an office by its
        ID
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
                minLength: 1
                examples:
                - '123'
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: office-id
        required: true
        description: Office ID
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:employees:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/FavoriteAgentSummary"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/fetch-configurations":
    get:
      operationId: getFetchConfigurations
      summary: Get fetch configurations
      tags:
      - Organization
      description: Get fetch configurations with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: boolean
        in: query
        name: with-deleted
        required: false
        description: Includes deleted resources in the results
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:forms:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/FetchConfigurationDetail"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
    post:
      operationId: createFetchConfiguration
      summary: Create a fetch configuration
      tags:
      - Organization
      description: Create a fetch configuration
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - mapping
              - endpoint
              - method
              properties:
                body:
                  anyOf:
                  - type: string
                    minLength: 1
                  - type: 'null'
                mapping:
                  type: array
                  items:
                    type: object
                    required:
                    - sourceProperty
                    - targetProperty
                    properties:
                      sourceProperty:
                        type: string
                        minLength: 1
                      targetProperty:
                        type: string
                        minLength: 1
                        maxLength: 512
                    additionalProperties: false
                  minItems: 1
                endpoint:
                  type: string
                  minLength: 1
                  format: uri
                  examples:
                  - https://wwww.example.net/abc123
                method:
                  type: string
                  enum:
                  - DELETE
                  - GET
                  - PATCH
                  - POST
                  - PUT
                headers:
                  anyOf:
                  - type: array
                    items:
                      type: object
                      required:
                      - name
                      - value
                      properties:
                        name:
                          type: string
                          minLength: 1
                          examples:
                          - Authorization
                        value:
                          type: string
                          minLength: 1
                          examples:
                          - apiKey ABCDEFG
                      additionalProperties: false
                    minItems: 1
                  - type: 'null'
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:forms:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/FetchConfigurationDetail"
                description: Successful operation
                additionalProperties: false
        '422':
          description: |-
            Business validation failed



            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed



                  See [Error codes](#topic-error-codes)
  "/fetch-configurations/{id}":
    get:
      operationId: getFetchConfigurationById
      summary: Get a fetch configuration
      tags:
      - Organization
      description: Get a fetch configuration by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:forms:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/FetchConfigurationDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    patch:
      operationId: updateFetchConfigurationById
      summary: Update a fetch configuration
      tags:
      - Organization
      description: Update a fetch configuration by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                body:
                  anyOf:
                  - type: string
                    minLength: 1
                  - type: 'null'
                mapping:
                  type: array
                  items:
                    type: object
                    required:
                    - sourceProperty
                    - targetProperty
                    properties:
                      sourceProperty:
                        type: string
                        minLength: 1
                      targetProperty:
                        type: string
                        minLength: 1
                        maxLength: 512
                    additionalProperties: false
                  minItems: 1
                endpoint:
                  type: string
                  minLength: 1
                  format: uri
                  examples:
                  - https://wwww.example.net/abc123
                method:
                  type: string
                  enum:
                  - DELETE
                  - GET
                  - PATCH
                  - POST
                  - PUT
                headers:
                  anyOf:
                  - type: array
                    items:
                      type: object
                      required:
                      - name
                      - value
                      properties:
                        name:
                          type: string
                          minLength: 1
                          examples:
                          - Authorization
                        value:
                          type: string
                          minLength: 1
                          examples:
                          - apiKey ABCDEFG
                      additionalProperties: false
                    minItems: 1
                  - type: 'null'
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:forms:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/FetchConfigurationDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed



            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed



                  See [Error codes](#topic-error-codes)
    delete:
      operationId: deleteFetchConfigurationById
      summary: Delete a fetch configuration
      tags:
      - Organization
      description: Delete a fetch configuration by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:forms:readWrite
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `FETCH_CONFIGURATION_LINKED_TO_QUESTION_ON_DELETE`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `FETCH_CONFIGURATION_LINKED_TO_QUESTION_ON_DELETE`

                  See [Error codes](#topic-error-codes)
  "/files":
    get:
      operationId: getFiles
      summary: Get files
      tags:
      - Organization
      description: Get files with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
          minItems: 1
          maxItems: 100
        in: query
        name: original-file-name
        required: false
        description: Original file name(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
          minItems: 1
          maxItems: 100
        in: query
        name: blob-name
        required: false
        description: Blob name(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            enum:
            - MALICIOUS
            - NOT_SCANNED
            - NO_THREATS_FOUND
            - PENDING
            examples:
            - NO_THREATS_FOUND
          minItems: 1
          maxItems: 100
        in: query
        name: scan-result-type
        required: false
        description: Scan result type(s) to be considered for filtering
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: boolean
        in: query
        name: with-deleted
        required: false
        description: Includes deleted resources in the results
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:files:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/FileDetail"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
  "/files/{id}":
    get:
      operationId: getFileById
      summary: Get a file
      tags:
      - Organization
      description: Get a file by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:files:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/FileDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/files/{id}/_actions/download":
    get:
      operationId: downloadFile
      summary: Download the file
      tags:
      - Scheduling
      description: Download the file
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:files:download
      responses:
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `FILE_SCAN_MALICIOUS`
            * `FILE_SCAN_PENDING`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `FILE_SCAN_MALICIOUS`
                  * `FILE_SCAN_PENDING`

                  See [Error codes](#topic-error-codes)
  "/files/_actions/upload":
    post:
      operationId: uploadFile
      summary: Upload the file
      tags:
      - Scheduling
      description: upload the file
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - originalFileName
              properties:
                originalFileName:
                  type: string
                  minLength: 1
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:files:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: object
                    required:
                    - file
                    - uploadFileLink
                    properties:
                      file:
                        "$ref": "#/components/schemas/FileDetail"
                      uploadFileLink:
                        type: string
                        minLength: 1
                description: Successful operation
                additionalProperties: false
  "/forms":
    get:
      operationId: getForms
      summary: Get forms
      tags:
      - Organization
      description: Get forms with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
          minItems: 1
          maxItems: 100
        in: query
        name: external-id
        required: false
        description: Form external ids to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            enum:
            - APPOINTMENT_CANCELLATION
            - APPOINTMENT_COMPLETION
            - CALLBACK_REQUEST
            - QUALIFICATION
            - SUBJECT_QUESTIONNAIRE
            - UNAVAILABILITY
            examples:
            - SUBJECT_QUESTIONNAIRE
          minItems: 1
          maxItems: 100
        in: query
        name: type
        required: false
        description: Type(s) to be considered for filtering
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: boolean
        in: query
        name: with-deleted
        required: false
        description: Includes deleted resources in the results
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:forms:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/FormSummary"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
    post:
      operationId: createForm
      summary: Create a form
      tags:
      - Organization
      description: Create a form
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              - type
              properties:
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                name:
                  type: string
                  minLength: 1
                type:
                  type: string
                  enum:
                  - APPOINTMENT_CANCELLATION
                  - APPOINTMENT_COMPLETION
                  - CALLBACK_REQUEST
                  - QUALIFICATION
                  - SUBJECT_QUESTIONNAIRE
                  - UNAVAILABILITY
                  examples:
                  - SUBJECT_QUESTIONNAIRE
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:forms:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/FormSummary"
                description: Successful operation
                additionalProperties: false
        '422':
          description: |-
            Business validation failed



            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed



                  See [Error codes](#topic-error-codes)
  "/forms/{id}":
    get:
      operationId: getFormById
      summary: Get a form
      tags:
      - Organization
      description: Get a form by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:forms:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/FormSummary"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    patch:
      operationId: updateFormById
      summary: Update a form
      tags:
      - Organization
      description: Update a form by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                name:
                  type: string
                  minLength: 1
                type:
                  type: string
                  enum:
                  - APPOINTMENT_CANCELLATION
                  - APPOINTMENT_COMPLETION
                  - CALLBACK_REQUEST
                  - QUALIFICATION
                  - SUBJECT_QUESTIONNAIRE
                  - UNAVAILABILITY
                  examples:
                  - SUBJECT_QUESTIONNAIRE
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:forms:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/FormSummary"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed



            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed



                  See [Error codes](#topic-error-codes)
    delete:
      operationId: deleteFormById
      summary: Delete a form
      tags:
      - Organization
      description: Delete a form by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:forms:readWrite
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/listings":
    get:
      operationId: getListings
      summary: Get listings
      tags:
      - Scheduling
      description: Get listings with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: external-id
        required: false
        description: External ID(s) to be considered for filtering
      - schema:
          type: boolean
        in: query
        name: active
        required: false
        description: Status to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
          minItems: 1
          maxItems: 100
        in: query
        name: tag
        required: false
        description: Tag(s) to be considered for filtering
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: boolean
        in: query
        name: with-deleted
        required: false
        description: Includes deleted resources in the results
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:listings:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/ListingSummary"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
    post:
      operationId: createListing
      summary: Create a listing
      tags:
      - Scheduling
      description: Create a listing
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - translations
              properties:
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                active:
                  anyOf:
                  - type: boolean
                    default: true
                    examples:
                    - true
                    - false
                  - type: 'null'
                internalNotes:
                  anyOf:
                  - type: string
                    minLength: 1
                  - type: 'null'
                tags:
                  anyOf:
                  - type: array
                    items:
                      type: string
                      minLength: 1
                  - type: 'null'
                translations:
                  type: object
                  required:
                  - name
                  properties:
                    name:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                      minItems: 1
                    description:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                      minItems: 0
                  additionalProperties: false
                timeZone:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Europe/Brussels
                  - type: 'null'
                location:
                  anyOf:
                  - type: object
                    required:
                    - countryCode
                    - translations
                    properties:
                      postalCode:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - '9000'
                        - type: 'null'
                      countryCode:
                        type: string
                        minLength: 2
                        maxLength: 2
                        examples:
                        - BE
                      geolocation:
                        anyOf:
                        - type: object
                          required:
                          - latitude
                          - longitude
                          properties:
                            latitude:
                              type: number
                              minimum: -90
                              maximum: 90
                              examples:
                              - 51.0479466
                            longitude:
                              type: number
                              minimum: -180
                              maximum: 180
                              examples:
                              - 3.6912248
                          additionalProperties: false
                        - type: 'null'
                      translations:
                        type: object
                        required:
                        - city
                        - street1
                        properties:
                          city:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          state:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                          street1:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          street2:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                        additionalProperties: false
                    additionalProperties: false
                  - type: 'null'
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:listings:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/ListingDetail"
                description: Successful operation
                additionalProperties: false
        '422':
          description: |-
            Business validation failed

            * `LOCATION_GEOCODING_FAILED`
            * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `LOCATION_GEOCODING_FAILED`
                  * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

                  See [Error codes](#topic-error-codes)
  "/listings/{id}":
    get:
      operationId: getListingById
      summary: Get a listing
      tags:
      - Scheduling
      description: Get a listing by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:listings:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/ListingDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    patch:
      operationId: updateListingById
      summary: Update a listing
      tags:
      - Scheduling
      description: Update a listing by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                active:
                  anyOf:
                  - type: boolean
                    examples:
                    - true
                    - false
                  - type: 'null'
                internalNotes:
                  anyOf:
                  - type: string
                    minLength: 1
                  - type: 'null'
                tags:
                  anyOf:
                  - type: array
                    items:
                      type: string
                      minLength: 1
                  - type: 'null'
                translations:
                  type: object
                  properties:
                    name:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                    description:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                timeZone:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Europe/Brussels
                  - type: 'null'
                location:
                  anyOf:
                  - type: object
                    required:
                    - countryCode
                    - translations
                    properties:
                      postalCode:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - '9000'
                        - type: 'null'
                      countryCode:
                        type: string
                        minLength: 2
                        maxLength: 2
                        examples:
                        - BE
                      geolocation:
                        anyOf:
                        - type: object
                          required:
                          - latitude
                          - longitude
                          properties:
                            latitude:
                              type: number
                              minimum: -90
                              maximum: 90
                              examples:
                              - 51.0479466
                            longitude:
                              type: number
                              minimum: -180
                              maximum: 180
                              examples:
                              - 3.6912248
                          additionalProperties: false
                        - type: 'null'
                      translations:
                        type: object
                        required:
                        - city
                        - street1
                        properties:
                          city:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          state:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                          street1:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          street2:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                        additionalProperties: false
                    additionalProperties: false
                  - type: 'null'
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:listings:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/ListingDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `LOCATION_GEOCODING_FAILED`
            * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `LOCATION_GEOCODING_FAILED`
                  * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

                  See [Error codes](#topic-error-codes)
    delete:
      operationId: deleteListingById
      summary: Delete a listing
      tags:
      - Scheduling
      description: Delete a listing by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:listings:readWrite
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/listings/{id}/scheduling-settings":
    get:
      operationId: getListingSchedulingSettings
      summary: Get listing scheduling settings
      tags:
      - Scheduling
      description: Get scheduling settings for a listing by its ID with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: employee-id
        required: false
        description: Employee ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: office-id
        required: false
        description: Office ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
          minItems: 1
          maxItems: 100
        in: query
        name: meeting-type
        required: false
        description: Meeting type(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: subject-id
        required: false
        description: Subject ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:listings:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    anyOf:
                    - "$ref": "#/components/schemas/ListingSchedulingSetting"
                    - type: 'null'
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    put:
      operationId: updateListingSchedulingSettings
      summary: Update listing scheduling settings
      tags:
      - Scheduling
      description: Update listing scheduling settings
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/ListingSchedulingSettingInput"
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:listings:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    anyOf:
                    - "$ref": "#/components/schemas/ListingSchedulingSetting"
                    - type: 'null'
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed



            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed



                  See [Error codes](#topic-error-codes)
  "/listings/{listingId}/time-slots":
    get:
      operationId: getListingTimeSlots
      summary: Get listing time slots
      tags:
      - Scheduling
      description: Get listing time slots for a listing by its ID
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: from
        required: false
        description: Start date and time to be considered for filtering (ISO 8601)
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: to
        required: false
        description: End date and time to be considered for filtering (ISO 8601)
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: employee-id
        required: false
        description: Employee ID(s) to be considered for filtering
      - schema:
          type: boolean
        in: query
        name: bookable
        required: false
        description: Bookable flag to be considered for filtering
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: listingId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/ListingTimeSlotDetail"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    post:
      operationId: createListingTimeSlot
      summary: Create a listing time slot
      tags:
      - Scheduling
      description: Create a listing time slot
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - date
              - startTime
              - endTime
              - bookable
              - assignments
              properties:
                date:
                  type: string
                  minLength: 1
                  examples:
                  - '2022-08-01'
                startTime:
                  type: string
                  minLength: 1
                  examples:
                  - '09:00'
                endTime:
                  type: string
                  minLength: 1
                  examples:
                  - '17:00'
                bookable:
                  type: boolean
                assignments:
                  type: array
                  items:
                    type: object
                    required:
                    - employeeId
                    - exclusive
                    properties:
                      employeeId:
                        type: string
                        minLength: 1
                        examples:
                        - '123'
                      exclusive:
                        type: boolean
                    additionalProperties: false
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: listingId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/ListingTimeSlotDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `LISTING_TIME_SLOT_EMPLOYEE_NOT_LINKED`
            * `LISTING_TIME_SLOT_OVERLAP`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `LISTING_TIME_SLOT_EMPLOYEE_NOT_LINKED`
                  * `LISTING_TIME_SLOT_OVERLAP`

                  See [Error codes](#topic-error-codes)
  "/listings/{listingId}/time-slots/{id}":
    get:
      operationId: getListingTimeSlotById
      summary: Get a listing time slot
      tags:
      - Scheduling
      description: Get a listing time slots by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: listingId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: id
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/ListingTimeSlotDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    put:
      operationId: updateListingTimeSlotById
      summary: Update a listing time slot
      tags:
      - Scheduling
      description: Update a listing time slot by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - date
              - startTime
              - endTime
              - bookable
              - assignments
              properties:
                date:
                  type: string
                  minLength: 1
                  examples:
                  - '2022-08-01'
                startTime:
                  type: string
                  minLength: 1
                  examples:
                  - '09:00'
                endTime:
                  type: string
                  minLength: 1
                  examples:
                  - '17:00'
                bookable:
                  type: boolean
                assignments:
                  type: array
                  items:
                    type: object
                    required:
                    - employeeId
                    - exclusive
                    properties:
                      employeeId:
                        type: string
                        minLength: 1
                        examples:
                        - '123'
                      exclusive:
                        type: boolean
                    additionalProperties: false
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: listingId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: id
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/ListingTimeSlotDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `LISTING_TIME_SLOT_EMPLOYEE_NOT_LINKED`
            * `LISTING_TIME_SLOT_OVERLAP`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `LISTING_TIME_SLOT_EMPLOYEE_NOT_LINKED`
                  * `LISTING_TIME_SLOT_OVERLAP`

                  See [Error codes](#topic-error-codes)
    delete:
      operationId: deleteListingTimeSlotById
      summary: Delete a listing time slot
      tags:
      - Scheduling
      description: Delete a listing time slot by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: listingId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: id
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readWrite
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/lead-segments":
    get:
      operationId: getLeadSegments
      summary: Get lead segments
      tags:
      - Scheduling
      description: Get lead segments with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
          minItems: 1
          maxItems: 100
        in: query
        name: code
        required: false
        description: Code(s) to be considered for filtering
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: boolean
        in: query
        name: with-deleted
        required: false
        description: Includes deleted resources in the results
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:leadSegments:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/LeadSegmentDetail"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
    post:
      operationId: createLeadSegment
      summary: Create a lead segment
      tags:
      - Scheduling
      description: Create a lead segment
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - code
              properties:
                description:
                  anyOf:
                  - type: string
                    minLength: 1
                    description: Repeat visitor
                  - type: 'null'
                code:
                  type: string
                  minLength: 1
                  maxLength: 255
                  description: REPEATVISITOR
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:leadSegments:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/LeadSegmentDetail"
                description: Successful operation
                additionalProperties: false
        '422':
          description: |-
            Business validation failed

            * `LEAD_SEGMENT_CODE_ALREADY_IN_USE`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `LEAD_SEGMENT_CODE_ALREADY_IN_USE`

                  See [Error codes](#topic-error-codes)
  "/lead-segments/{id}":
    get:
      operationId: getLeadSegmentById
      summary: Get a lead segment
      tags:
      - Scheduling
      description: Get a lead segment by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:leadSegments:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/LeadSegmentDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    patch:
      operationId: updateLeadSegmentById
      summary: Update a lead segment
      tags:
      - Scheduling
      description: Update a lead segment by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  anyOf:
                  - type: string
                    minLength: 1
                    description: Repeat visitor
                  - type: 'null'
                code:
                  type: string
                  minLength: 1
                  maxLength: 255
                  description: REPEATVISITOR
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:leadSegments:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/LeadSegmentDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `LEAD_SEGMENT_CODE_ALREADY_IN_USE`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `LEAD_SEGMENT_CODE_ALREADY_IN_USE`

                  See [Error codes](#topic-error-codes)
    delete:
      operationId: deleteLeadSegmentById
      summary: Delete a lead segment
      tags:
      - Scheduling
      description: Delete a lead segment by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:leadSegments:readWrite
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/lead-segments/{id}/scheduling-settings":
    get:
      operationId: getLeadSegmentSchedulingSettings
      summary: Get lead segment scheduling settings
      tags:
      - Scheduling
      description: Get scheduling settings for a lead segment by its ID with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
          minItems: 1
          maxItems: 100
        in: query
        name: meeting-type
        required: false
        description: Meeting type(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: subject-id
        required: false
        description: Subject ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:leadSegments:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/LeadSegmentSchedulingSetting"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    put:
      operationId: updateLeadSegmentSchedulingSettings
      summary: Update lead segment scheduling settings
      tags:
      - Scheduling
      description: Update lead segment scheduling settings
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/LeadSegmentSchedulingSettingInput"
              minItems: 1
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:leadSegments:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/LeadSegmentSchedulingSetting"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/meeting-rooms":
    get:
      operationId: getMeetingRooms
      summary: Get Meeting Rooms
      tags:
      - Scheduling
      description: Get meeting rooms with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: external-id
        required: false
        description: External ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
        in: query
        name: search
        required: false
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: boolean
        in: query
        name: with-deleted
        required: false
        description: Includes deleted resources in the results
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:meetingRooms:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/MeetingRoomDetail"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
  "/meeting-rooms/{id}":
    get:
      operationId: getMeetingRoomById
      summary: Get a meeting room
      tags:
      - Scheduling
      description: Get a meeting room by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:meetingRooms:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/MeetingRoomDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/employees/{id}/office-coverage-regions":
    get:
      operationId: getOfficeCoverageRegions
      summary: Get office coverage regions
      tags:
      - Organization
      description: Get office coverage regions for an agent by its ID with filtering
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: office-id
        required: true
        description: Office ID to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
          minItems: 1
          maxItems: 100
        in: query
        name: meeting-type
        required: false
        description: Meeting type(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: region-id
        required: false
        description: Region ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:offices:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/OfficeEmployeeCoverageRegion"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    put:
      operationId: updateOfficeCoverageRegions
      summary: Update office coverage regions
      tags:
      - Organization
      description: Update office coverage regions for an agent within an office by
        its ID
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/OfficeEmployeeCoverageRegionInput"
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: office-id
        required: true
        description: Office ID
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:offices:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/OfficeEmployeeCoverageRegion"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/employees/{id}/office-subject-coverage-regions":
    get:
      operationId: getOfficeSubjectCoverageRegions
      summary: Get office subject coverage regions
      tags:
      - Organization
      description: Get office subject coverage regions for an agent by its ID with
        filtering
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: office-id
        required: true
      - schema:
          type: array
          items:
            type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
          minItems: 1
          maxItems: 100
        in: query
        name: meeting-type
        required: false
        description: Meeting type(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: subject-id
        required: false
        description: Subject ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: region-id
        required: false
        description: Region ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:offices:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/OfficeEmployeeSubjectCoverageRegion"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    put:
      operationId: updateOfficeSubjectCoverageRegions
      summary: Update office subject coverage regions
      tags:
      - Organization
      description: Update office subject coverage regions for an agent within an office
        by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/OfficeEmployeeSubjectCoverageRegionInput"
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: office-id
        required: true
        description: Office ID
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: subject-id
        required: true
        description: Subject ID
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:offices:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/OfficeEmployeeSubjectCoverageRegion"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/offices":
    get:
      operationId: getOffices
      summary: Get offices
      tags:
      - Organization
      description: Get offices with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: external-id
        required: false
        description: External ID(s) to be considered for filtering
      - schema:
          type: boolean
        in: query
        name: active
        required: false
        description: Status to be considered for filtering
      - schema:
          type: boolean
        in: query
        name: virtual
        required: false
        description: Type to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: employee-id
        required: false
        description: Related employee ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: employee-external-id
        required: false
        description: Related employee external ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            enum:
            - AGENT
            - OFFICE_MANAGER
            examples:
            - AGENT
          minItems: 1
          maxItems: 100
        in: query
        name: employee-relation-role
        required: false
        description: Related employee relation role(s) to be considered for filtering
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: boolean
        in: query
        name: with-deleted
        required: false
        description: Includes deleted resources in the results
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:offices:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/OfficeSummary"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
    post:
      operationId: createOffice
      summary: Create an office
      tags:
      - Organization
      description: Create an office
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - translations
              - location
              properties:
                email:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - john.doe@pexip.com
                  - type: 'null'
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                phoneNumber:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - "+32412345678"
                  - type: 'null'
                metadata:
                  anyOf:
                  - type: object
                    properties: {}
                    additionalProperties: true
                  - type: 'null'
                active:
                  anyOf:
                  - type: boolean
                    default: false
                    examples:
                    - true
                    - false
                  - type: 'null'
                virtual:
                  anyOf:
                  - type: boolean
                    default: false
                    examples:
                    - true
                    - false
                  - type: 'null'
                timeZone:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Europe/Brussels
                  - type: 'null'
                usesIndependentAgents:
                  anyOf:
                  - type: boolean
                    examples:
                    - true
                    - false
                  - type: 'null'
                translations:
                  type: object
                  required:
                  - name
                  properties:
                    name:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                      minItems: 1
                    description:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                      minItems: 0
                    directions:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                      minItems: 0
                    parkingInfo:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                      minItems: 0
                  additionalProperties: false
                location:
                  type: object
                  required:
                  - countryCode
                  - translations
                  properties:
                    postalCode:
                      anyOf:
                      - type: string
                        minLength: 1
                        examples:
                        - '9000'
                      - type: 'null'
                    countryCode:
                      type: string
                      minLength: 2
                      maxLength: 2
                      examples:
                      - BE
                    geolocation:
                      anyOf:
                      - type: object
                        required:
                        - latitude
                        - longitude
                        properties:
                          latitude:
                            type: number
                            minimum: -90
                            maximum: 90
                            examples:
                            - 51.0479466
                          longitude:
                            type: number
                            minimum: -180
                            maximum: 180
                            examples:
                            - 3.6912248
                        additionalProperties: false
                      - type: 'null'
                    translations:
                      type: object
                      required:
                      - city
                      - street1
                      properties:
                        city:
                          type: array
                          items:
                            type: object
                            required:
                            - language
                            - value
                            properties:
                              language:
                                type: string
                                enum:
                                - da
                                - de
                                - el
                                - en
                                - es
                                - fr
                                - ja
                                - nl
                                - 'no'
                                - pl
                                examples:
                                - en
                              value:
                                type: string
                                minLength: 1
                                examples:
                                - Lorem ipsum
                            additionalProperties: false
                          minItems: 1
                        state:
                          type: array
                          items:
                            type: object
                            required:
                            - language
                            - value
                            properties:
                              language:
                                type: string
                                enum:
                                - da
                                - de
                                - el
                                - en
                                - es
                                - fr
                                - ja
                                - nl
                                - 'no'
                                - pl
                                examples:
                                - en
                              value:
                                type: string
                                minLength: 1
                                examples:
                                - Lorem ipsum
                            additionalProperties: false
                          minItems: 0
                        street1:
                          type: array
                          items:
                            type: object
                            required:
                            - language
                            - value
                            properties:
                              language:
                                type: string
                                enum:
                                - da
                                - de
                                - el
                                - en
                                - es
                                - fr
                                - ja
                                - nl
                                - 'no'
                                - pl
                                examples:
                                - en
                              value:
                                type: string
                                minLength: 1
                                examples:
                                - Lorem ipsum
                            additionalProperties: false
                          minItems: 1
                        street2:
                          type: array
                          items:
                            type: object
                            required:
                            - language
                            - value
                            properties:
                              language:
                                type: string
                                enum:
                                - da
                                - de
                                - el
                                - en
                                - es
                                - fr
                                - ja
                                - nl
                                - 'no'
                                - pl
                                examples:
                                - en
                              value:
                                type: string
                                minLength: 1
                                examples:
                                - Lorem ipsum
                            additionalProperties: false
                          minItems: 0
                      additionalProperties: false
                  additionalProperties: false
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:offices:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/OfficeDetail"
                description: Successful operation
                additionalProperties: false
        '422':
          description: |-
            Business validation failed

            * `LOCATION_GEOCODING_FAILED`
            * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `LOCATION_GEOCODING_FAILED`
                  * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

                  See [Error codes](#topic-error-codes)
  "/offices/{id}":
    get:
      operationId: getOfficeById
      summary: Get an office
      tags:
      - Organization
      description: Get an office by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:offices:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/OfficeDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    patch:
      operationId: updateOfficeById
      summary: Update an office
      tags:
      - Organization
      description: Update an office by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - john.doe@pexip.com
                  - type: 'null'
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                phoneNumber:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - "+32412345678"
                  - type: 'null'
                metadata:
                  anyOf:
                  - type: object
                    properties: {}
                    additionalProperties: true
                  - type: 'null'
                active:
                  anyOf:
                  - type: boolean
                    examples:
                    - true
                    - false
                  - type: 'null'
                virtual:
                  anyOf:
                  - type: boolean
                    examples:
                    - true
                    - false
                  - type: 'null'
                timeZone:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - Europe/Brussels
                  - type: 'null'
                usesIndependentAgents:
                  anyOf:
                  - type: boolean
                    examples:
                    - true
                    - false
                  - type: 'null'
                translations:
                  type: object
                  properties:
                    name:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                    description:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                    directions:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                    parkingInfo:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                location:
                  anyOf:
                  - type: object
                    required:
                    - countryCode
                    - translations
                    properties:
                      postalCode:
                        anyOf:
                        - type: string
                          minLength: 1
                          examples:
                          - '9000'
                        - type: 'null'
                      countryCode:
                        type: string
                        minLength: 2
                        maxLength: 2
                        examples:
                        - BE
                      geolocation:
                        anyOf:
                        - type: object
                          required:
                          - latitude
                          - longitude
                          properties:
                            latitude:
                              type: number
                              minimum: -90
                              maximum: 90
                              examples:
                              - 51.0479466
                            longitude:
                              type: number
                              minimum: -180
                              maximum: 180
                              examples:
                              - 3.6912248
                          additionalProperties: false
                        - type: 'null'
                      translations:
                        type: object
                        required:
                        - city
                        - street1
                        properties:
                          city:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          state:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                          street1:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                          street2:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 0
                        additionalProperties: false
                    additionalProperties: false
                  - type: 'null'
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:offices:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/OfficeDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `LOCATION_GEOCODING_FAILED`
            * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `LOCATION_GEOCODING_FAILED`
                  * `LOCATION_TIME_ZONE_RESOLUTION_FAILED`

                  See [Error codes](#topic-error-codes)
    delete:
      operationId: deleteOfficeById
      summary: Delete an office
      tags:
      - Organization
      description: Delete an office by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:offices:readWrite
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/offices/{officeId}/meeting-rooms/{meetingRoomId}":
    post:
      operationId: linkMeetingRoomToOffice
      summary: Link a meeting room to an office
      tags:
      - Organization
      description: Link a meeting room to an office by the office id and meeting room
        id
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: officeId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: meetingRoomId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:offices:readWrite
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    delete:
      operationId: unlinkMeetingRoomFromOffice
      summary: Unlink a meeting room from an office
      tags:
      - Organization
      description: Unlink a meeting room from an office by the office id and meeting
        room id
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: officeId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: meetingRoomId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:offices:readWrite
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/offices/{id}/scheduling-settings":
    get:
      operationId: getOfficeSchedulingSettings
      summary: Get office scheduling settings
      tags:
      - Organization
      description: Get all scheduling settings for an office by its ID
      parameters:
      - schema:
          type: array
          items:
            type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
          minItems: 1
          maxItems: 100
        in: query
        name: meeting-type
        required: false
        description: Meeting type(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:offices:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/OfficeSchedulingSetting"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    put:
      operationId: updateOfficeSchedulingSettings
      summary: Update office scheduling settings
      tags:
      - Scheduling
      description: Update all scheduling settings for an office by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/OfficeSchedulingSetting"
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:offices:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/OfficeSchedulingSetting"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/plugin/{intent}/{token}":
    get:
      operationId: getPluginEditURL
      summary: Go to plugin edit action
      tags:
      - Scheduling
      description: Get plugin edit URL
      parameters:
      - schema:
          type: string
          enum:
          - cancel
          - decline
          - edit
          - invite
          examples:
          - edit
        in: path
        name: intent
        required: true
        description: Intent to start the plugin
      - schema:
          type: string
          minLength: 1
          examples:
          - m8WwB7iPxDgCKpnBGM83wXJnv7OxzccKagbwyxQXFL
        in: path
        name: token
        required: true
        description: Token of the appointment participant
      security: []
      responses:
        '302':
          description: Redirect
  "/forms/{formId}/questions":
    get:
      operationId: getFormQuestions
      summary: Get form questions
      tags:
      - Organization
      description: Get questions for a form by its ID with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: external-id
        required: false
        description: External ID(s) to be considered for filtering
      - schema:
          type: boolean
        in: query
        name: with-deleted
        required: false
        description: Includes deleted resources in the results
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: formId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:forms:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/QuestionSummary"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    post:
      operationId: createFormQuestion
      summary: Create a form question
      tags:
      - Organization
      description: Create a form question
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - inputType
              - translations
              properties:
                defaultValue:
                  anyOf:
                  - type: string
                    minLength: 1
                  - type: 'null'
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                targetProperty:
                  anyOf:
                  - type: string
                    minLength: 1
                  - type: 'null'
                required:
                  anyOf:
                  - type: boolean
                    default: false
                    examples:
                    - true
                    - false
                  - type: 'null'
                hidden:
                  anyOf:
                  - type: boolean
                    default: false
                    examples:
                    - true
                    - false
                  - type: 'null'
                inputType:
                  type: string
                  enum:
                  - ADDRESS
                  - BOOLEAN
                  - DATE
                  - DATE_TIME
                  - EMAIL
                  - FETCH
                  - FILE
                  - LANGUAGE
                  - LONG_TEXT
                  - MULTI_FILE
                  - MULTI_SELECT
                  - NUMBER
                  - PHONE
                  - SELECT
                  - SHORT_TEXT
                  - TIME_ZONE
                  - URL
                  examples:
                  - SELECT
                validator:
                  anyOf:
                  - type: object
                    required:
                    - regex
                    - translations
                    properties:
                      regex:
                        type: string
                        minLength: 1
                        description: A regular expression
                        examples:
                        - "^.{8}"
                      translations:
                        type: object
                        required:
                        - errorMessage
                        properties:
                          errorMessage:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                        additionalProperties: false
                    additionalProperties: false
                  - type: 'null'
                translations:
                  type: object
                  required:
                  - label
                  properties:
                    label:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                      minItems: 1
                    helpText:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            maxLength: 1024
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                      minItems: 0
                    placeholder:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            maxLength: 1024
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                      minItems: 0
                  additionalProperties: false
                order:
                  anyOf:
                  - type: integer
                    minimum: 0
                    examples:
                    - 5
                    default: 0
                  - type: 'null'
                fetchConfigurationId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                answerOptions:
                  anyOf:
                  - type: array
                    items:
                      type: object
                      required:
                      - translations
                      properties:
                        externalId:
                          anyOf:
                          - type: string
                            minLength: 1
                            maxLength: 255
                            examples:
                            - ABCD1234
                          - type: 'null'
                        value:
                          anyOf:
                          - type: string
                            minLength: 1
                            maxLength: 255
                          - type: 'null'
                        translations:
                          type: object
                          required:
                          - label
                          properties:
                            label:
                              type: array
                              items:
                                type: object
                                required:
                                - language
                                - value
                                properties:
                                  language:
                                    type: string
                                    enum:
                                    - da
                                    - de
                                    - el
                                    - en
                                    - es
                                    - fr
                                    - ja
                                    - nl
                                    - 'no'
                                    - pl
                                    examples:
                                    - en
                                  value:
                                    type: string
                                    minLength: 1
                                    examples:
                                    - Lorem ipsum
                                additionalProperties: false
                              minItems: 1
                          additionalProperties: false
                        order:
                          anyOf:
                          - type: integer
                            minimum: 0
                            examples:
                            - 5
                            default: 0
                          - type: 'null'
                      additionalProperties: false
                    description: 'Should be used in combination with `inputType: SELECT`
                      or `inputType: MULTI_SELECT`'
                  - type: 'null'
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: formId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:forms:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/QuestionDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `QUESTION_NON_SELECTION_TYPE_WITH_ANSWER_OPTIONS`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `QUESTION_NON_SELECTION_TYPE_WITH_ANSWER_OPTIONS`

                  See [Error codes](#topic-error-codes)
  "/forms/{formId}/questions/{id}":
    get:
      operationId: getFormQuestionById
      summary: Get a form question
      tags:
      - Organization
      description: Get a form question by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: formId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: id
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:forms:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/QuestionDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    patch:
      operationId: updateFormQuestionById
      summary: Update a form question
      tags:
      - Organization
      description: Update a form question by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                defaultValue:
                  anyOf:
                  - type: string
                    minLength: 1
                  - type: 'null'
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                targetProperty:
                  anyOf:
                  - type: string
                    minLength: 1
                  - type: 'null'
                required:
                  anyOf:
                  - type: boolean
                    examples:
                    - true
                    - false
                  - type: 'null'
                hidden:
                  anyOf:
                  - type: boolean
                    examples:
                    - true
                    - false
                  - type: 'null'
                inputType:
                  type: string
                  enum:
                  - ADDRESS
                  - BOOLEAN
                  - DATE
                  - DATE_TIME
                  - EMAIL
                  - FETCH
                  - FILE
                  - LANGUAGE
                  - LONG_TEXT
                  - MULTI_FILE
                  - MULTI_SELECT
                  - NUMBER
                  - PHONE
                  - SELECT
                  - SHORT_TEXT
                  - TIME_ZONE
                  - URL
                  examples:
                  - SELECT
                validator:
                  anyOf:
                  - type: object
                    properties:
                      regex:
                        type: string
                        minLength: 1
                        description: A regular expression
                        examples:
                        - "^.{8}"
                      translations:
                        type: object
                        properties:
                          errorMessage:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                  - type: 'null'
                translations:
                  type: object
                  properties:
                    label:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                    helpText:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            maxLength: 1024
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                    placeholder:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            maxLength: 1024
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                order:
                  anyOf:
                  - type: integer
                    minimum: 0
                    examples:
                    - 5
                  - type: 'null'
                answerOptions:
                  type: array
                  items:
                    type: object
                    required:
                    - translations
                    properties:
                      externalId:
                        anyOf:
                        - type: string
                          minLength: 1
                          maxLength: 255
                          examples:
                          - ABCD1234
                        - type: 'null'
                      value:
                        anyOf:
                        - type: string
                          minLength: 1
                          maxLength: 255
                        - type: 'null'
                      translations:
                        type: object
                        required:
                        - label
                        properties:
                          label:
                            type: array
                            items:
                              type: object
                              required:
                              - language
                              - value
                              properties:
                                language:
                                  type: string
                                  enum:
                                  - da
                                  - de
                                  - el
                                  - en
                                  - es
                                  - fr
                                  - ja
                                  - nl
                                  - 'no'
                                  - pl
                                  examples:
                                  - en
                                value:
                                  type: string
                                  minLength: 1
                                  examples:
                                  - Lorem ipsum
                              additionalProperties: false
                            minItems: 1
                        additionalProperties: false
                      order:
                        anyOf:
                        - type: integer
                          minimum: 0
                          examples:
                          - 5
                          default: 0
                        - type: 'null'
                    additionalProperties: false
                  description: 'Should be used in combination with `inputType: SELECT`
                    or `inputType: MULTI_SELECT`'
                fetchConfigurationId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: formId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: id
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:forms:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/QuestionDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `QUESTION_FETCH_TYPE_WITHOUT_FETCH_CONFIGURATION`
            * `QUESTION_NON_FETCH_TYPE_WITH_FETCH_CONFIGURATION`
            * `QUESTION_NON_SELECTION_TYPE_WITH_ANSWER_OPTIONS`
            * `QUESTION_SELECTION_TYPE_WITHOUT_ANSWER_OPTIONS`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `QUESTION_FETCH_TYPE_WITHOUT_FETCH_CONFIGURATION`
                  * `QUESTION_NON_FETCH_TYPE_WITH_FETCH_CONFIGURATION`
                  * `QUESTION_NON_SELECTION_TYPE_WITH_ANSWER_OPTIONS`
                  * `QUESTION_SELECTION_TYPE_WITHOUT_ANSWER_OPTIONS`

                  See [Error codes](#topic-error-codes)
    delete:
      operationId: deleteFormQuestionById
      summary: Delete a form question
      tags:
      - Organization
      description: Delete a form question by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: formId
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: path
        name: id
        required: true
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:forms:readWrite
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/regions":
    get:
      operationId: getRegions
      summary: Get Regions
      tags:
      - Scheduling
      description: Get regions with filtering
      parameters:
      - schema:
          type: string
          minLength: 1
        examples:
          BE:
            value: BE
          DK:
            value: DK
        in: query
        name: country-code
        required: true
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
        in: query
        name: search
        required: false
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:regions:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/RegionDetail"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
  "/schedulable/employees":
    get:
      operationId: getSchedulableEmployees
      summary: Get schedulable employees
      tags:
      - Scheduling
      description: Get schedulable employees with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: employee-id
        required: false
        description: Employee ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: employee-external-id
        required: false
        description: Employee external ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: lead-segment-id
        required: false
        description: Lead segment ID to be considered for filtering
      - schema:
          type: string
          minLength: 1
          maxLength: 255
          examples:
          - ABCD1234
        in: query
        name: lead-segment-code
        required: false
        description: Lead segment code to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: listing-id
        required: false
        description: Listing ID to be considered for filtering
      - schema:
          type: string
          minLength: 1
          maxLength: 255
          examples:
          - ABCD1234
        in: query
        name: listing-external-id
        required: false
        description: Listing external ID to be considered for filtering
      - schema:
          type: object
          properties:
            latitude:
              type: string
            longitude:
              type: string
          additionalProperties: false
        in: query
        name: location
        required: false
      - schema:
          type: array
          items:
            type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
        in: query
        name: meeting-type
        required: false
        description: Meeting type(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: office-id
        required: false
        description: Office ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: office-external-id
        required: false
        description: Office external ID(s) to be considered for filtering
      - schema:
          type: object
          properties:
            latitude:
              type: string
            longitude:
              type: string
          additionalProperties: false
        in: query
        name: order-by-distance-to
        required: false
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: subject-id
        required: false
        description: Subject ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: subject-external-id
        required: false
        description: Subject external ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: subject-group-id
        required: false
        description: Subject group ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: subject-group-external-id
        required: false
        description: Subject group external ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/SchedulableEmployeeSummary"
                additionalProperties: false
  "/schedulable/meeting-types":
    get:
      operationId: getSchedulableMeetingTypes
      summary: Get schedulable meeting types
      tags:
      - Scheduling
      description: Get schedulable meeting types with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: employee-id
        required: false
        description: Employee ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: employee-external-id
        required: false
        description: Employee external ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: lead-segment-id
        required: false
        description: Lead segment ID to be considered for filtering
      - schema:
          type: string
          minLength: 1
          maxLength: 255
          examples:
          - ABCD1234
        in: query
        name: lead-segment-code
        required: false
        description: Lead segment code to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: listing-id
        required: false
        description: Listing ID to be considered for filtering
      - schema:
          type: string
          minLength: 1
          maxLength: 255
          examples:
          - ABCD1234
        in: query
        name: listing-external-id
        required: false
        description: Listing external ID to be considered for filtering
      - schema:
          type: object
          properties:
            latitude:
              type: string
            longitude:
              type: string
          additionalProperties: false
        in: query
        name: location
        required: false
      - schema:
          type: array
          items:
            type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
        in: query
        name: meeting-type
        required: false
        description: Meeting type(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: office-id
        required: false
        description: Office ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: office-external-id
        required: false
        description: Office external ID(s) to be considered for filtering
      - schema:
          type: object
          properties:
            latitude:
              type: string
            longitude:
              type: string
          additionalProperties: false
        in: query
        name: order-by-distance-to
        required: false
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: subject-id
        required: false
        description: Subject ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: subject-external-id
        required: false
        description: Subject external ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: subject-group-id
        required: false
        description: Subject group ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: subject-group-external-id
        required: false
        description: Subject group external ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      type: string
                      enum:
                      - OFFICE
                      - ON_LOCATION
                      - PHONE
                      - VIDEO
                      examples:
                      - OFFICE
                additionalProperties: false
  "/schedulable/offices":
    get:
      operationId: getSchedulableOffices
      summary: Get schedulable offices
      tags:
      - Scheduling
      description: Get schedulable offices with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: employee-id
        required: false
        description: Employee ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: employee-external-id
        required: false
        description: Employee external ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: lead-segment-id
        required: false
        description: Lead segment ID to be considered for filtering
      - schema:
          type: string
          minLength: 1
          maxLength: 255
          examples:
          - ABCD1234
        in: query
        name: lead-segment-code
        required: false
        description: Lead segment code to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: listing-id
        required: false
        description: Listing ID to be considered for filtering
      - schema:
          type: string
          minLength: 1
          maxLength: 255
          examples:
          - ABCD1234
        in: query
        name: listing-external-id
        required: false
        description: Listing external ID to be considered for filtering
      - schema:
          type: object
          properties:
            latitude:
              type: string
            longitude:
              type: string
          additionalProperties: false
        in: query
        name: location
        required: false
      - schema:
          type: array
          items:
            type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
        in: query
        name: meeting-type
        required: false
        description: Meeting type(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: office-id
        required: false
        description: Office ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: office-external-id
        required: false
        description: Office external ID(s) to be considered for filtering
      - schema:
          type: object
          properties:
            latitude:
              type: string
            longitude:
              type: string
          additionalProperties: false
        in: query
        name: order-by-distance-to
        required: false
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: subject-id
        required: false
        description: Subject ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: subject-external-id
        required: false
        description: Subject external ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: subject-group-id
        required: false
        description: Subject group ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: subject-group-external-id
        required: false
        description: Subject group external ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/SchedulableOfficeSummary"
                additionalProperties: false
  "/schedulable/subjects":
    get:
      operationId: getSchedulableSubjects
      summary: Get schedulable subjects
      tags:
      - Scheduling
      description: Get schedulable subjects with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: employee-id
        required: false
        description: Employee ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: employee-external-id
        required: false
        description: Employee external ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: lead-segment-id
        required: false
        description: Lead segment ID to be considered for filtering
      - schema:
          type: string
          minLength: 1
          maxLength: 255
          examples:
          - ABCD1234
        in: query
        name: lead-segment-code
        required: false
        description: Lead segment code to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: listing-id
        required: false
        description: Listing ID to be considered for filtering
      - schema:
          type: string
          minLength: 1
          maxLength: 255
          examples:
          - ABCD1234
        in: query
        name: listing-external-id
        required: false
        description: Listing external ID to be considered for filtering
      - schema:
          type: object
          properties:
            latitude:
              type: string
            longitude:
              type: string
          additionalProperties: false
        in: query
        name: location
        required: false
      - schema:
          type: array
          items:
            type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
        in: query
        name: meeting-type
        required: false
        description: Meeting type(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: office-id
        required: false
        description: Office ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: office-external-id
        required: false
        description: Office external ID(s) to be considered for filtering
      - schema:
          type: object
          properties:
            latitude:
              type: string
            longitude:
              type: string
          additionalProperties: false
        in: query
        name: order-by-distance-to
        required: false
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: subject-id
        required: false
        description: Subject ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: subject-external-id
        required: false
        description: Subject external ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: subject-group-id
        required: false
        description: Subject group ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: subject-group-external-id
        required: false
        description: Subject group external ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/SchedulableSubjectSummary"
                additionalProperties: false
  "/subjects":
    get:
      operationId: getSubjects
      summary: Get subjects
      tags:
      - Scheduling
      description: Get subjects with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: external-id
        required: false
        description: External ID(s) to be considered for filtering
      - schema:
          type: boolean
        in: query
        name: enabled-for-internal-use
        required: false
        description: Status to be considered for filtering
      - schema:
          type: boolean
        in: query
        name: enabled-for-customer-use
        required: false
        description: Status to be considered for filtering
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: boolean
        in: query
        name: with-deleted
        required: false
        description: Includes deleted resources in the results
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:subjects:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/SubjectSummary"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
    post:
      operationId: createSubject
      summary: Create a subject
      tags:
      - Scheduling
      description: Create a subject
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - translations
              - subjectGroupId
              properties:
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                translations:
                  type: object
                  required:
                  - name
                  properties:
                    name:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                      minItems: 1
                    description:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                      minItems: 0
                    instructions:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                      minItems: 0
                  additionalProperties: false
                order:
                  anyOf:
                  - type: integer
                    minimum: 0
                    examples:
                    - 5
                    default: 0
                  - type: 'null'
                subjectGroupId:
                  type: string
                  minLength: 1
                  examples:
                  - '123'
                enabledForInternalUse:
                  anyOf:
                  - type: boolean
                    default: false
                    examples:
                    - true
                    - false
                  - type: 'null'
                enabledForCustomerUse:
                  anyOf:
                  - type: boolean
                    default: false
                    examples:
                    - true
                    - false
                  - type: 'null'
                cancellationByAgentFormId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                cancellationByCustomerFormId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                completionByAgentFormId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                questionnaireFormId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:subjects:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/SubjectDetail"
                description: Successful operation
                additionalProperties: false
  "/subjects/{id}":
    get:
      operationId: getSubjectById
      summary: Get a subject
      tags:
      - Scheduling
      description: Get a subject by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:subjects:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/SubjectDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    patch:
      operationId: updateSubjectById
      summary: Update a subject
      tags:
      - Scheduling
      description: Update a subject by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                translations:
                  type: object
                  properties:
                    name:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                    description:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                    instructions:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                order:
                  anyOf:
                  - type: integer
                    minimum: 0
                    examples:
                    - 5
                  - type: 'null'
                subjectGroupId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                enabledForInternalUse:
                  anyOf:
                  - type: boolean
                    examples:
                    - true
                    - false
                  - type: 'null'
                enabledForCustomerUse:
                  anyOf:
                  - type: boolean
                    examples:
                    - true
                    - false
                  - type: 'null'
                cancellationByAgentFormId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                cancellationByCustomerFormId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                completionByAgentFormId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
                questionnaireFormId:
                  anyOf:
                  - type: string
                    minLength: 1
                    examples:
                    - '123'
                  - type: 'null'
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:subjects:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/SubjectDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    delete:
      operationId: deleteSubjectById
      summary: Delete a subject
      tags:
      - Scheduling
      description: Delete a subject by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:subjects:readWrite
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/subject-groups":
    get:
      operationId: getSubjectGroups
      summary: Get subject groups
      tags:
      - Scheduling
      description: Get subject groups with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 255
            examples:
            - ABCD1234
          minItems: 1
          maxItems: 100
        in: query
        name: external-id
        required: false
        description: External ID(s) to be considered for filtering
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: boolean
        in: query
        name: with-deleted
        required: false
        description: Includes deleted resources in the results
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:subjects:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/SubjectGroupSummary"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
    post:
      operationId: createSubjectGroup
      summary: Create a subject group
      tags:
      - Scheduling
      description: Create a subject group
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - translations
              properties:
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                image:
                  anyOf:
                  - type: string
                    minLength: 1
                    format: uri
                    examples:
                    - https://wwww.example.net/abc123
                  - type: 'null'
                translations:
                  type: object
                  required:
                  - name
                  properties:
                    name:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                      minItems: 1
                    description:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                      minItems: 0
                  additionalProperties: false
                color:
                  anyOf:
                  - type: string
                    minLength: 7
                    maxLength: 7
                    default: "#89d0c1"
                    examples:
                    - "#89d0c1"
                  - type: 'null'
                order:
                  anyOf:
                  - type: integer
                    minimum: 0
                    examples:
                    - 5
                    default: 0
                  - type: 'null'
              additionalProperties: false
        required: true
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:subjects:readWrite
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/SubjectGroupDetail"
                description: Successful operation
                additionalProperties: false
        '422':
          description: |-
            Business validation failed



            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed



                  See [Error codes](#topic-error-codes)
  "/subject-groups/{id}":
    get:
      operationId: getSubjectGroup
      summary: Get a subject group
      tags:
      - Scheduling
      description: Get a subject group by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:subjects:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/SubjectGroupDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    patch:
      operationId: updateSubjectGroupById
      summary: Update a subject group
      tags:
      - Scheduling
      description: Update a subject group by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                externalId:
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    examples:
                    - ABCD1234
                  - type: 'null'
                image:
                  anyOf:
                  - type: string
                    minLength: 1
                    format: uri
                    examples:
                    - https://wwww.example.net/abc123
                  - type: 'null'
                translations:
                  type: object
                  properties:
                    name:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                    description:
                      type: array
                      items:
                        type: object
                        required:
                        - language
                        - value
                        properties:
                          language:
                            type: string
                            enum:
                            - da
                            - de
                            - el
                            - en
                            - es
                            - fr
                            - ja
                            - nl
                            - 'no'
                            - pl
                            examples:
                            - en
                          value:
                            type: string
                            minLength: 1
                            examples:
                            - Lorem ipsum
                        additionalProperties: false
                color:
                  anyOf:
                  - type: string
                    minLength: 7
                    maxLength: 7
                    examples:
                    - "#89d0c1"
                  - type: 'null'
                order:
                  anyOf:
                  - type: integer
                    minimum: 0
                    examples:
                    - 5
                  - type: 'null'
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:subjects:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    "$ref": "#/components/schemas/SubjectGroupDetail"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed



            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed



                  See [Error codes](#topic-error-codes)
    delete:
      operationId: deleteSubjectGroupById
      summary: Delete a subject group
      tags:
      - Scheduling
      description: Delete a subject group by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      - schema:
          type: string
          minLength: 1
          examples:
          - en *
        in: header
        name: Accept-Language
        required: false
        description: Returns the requested resources translated according to the passed
          languages (see [translatable resources](../topic/topic-languages-translations\#topic-translatable-resources))
      security:
      - OAuth2:
        - engage:subjects:readWrite
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
        '422':
          description: |-
            Business validation failed

            * `SUBJECT_GROUP_NOT_EMPTY_ON_DELETE`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `SUBJECT_GROUP_NOT_EMPTY_ON_DELETE`

                  See [Error codes](#topic-error-codes)
  "/subjects/{id}/availability-settings":
    get:
      operationId: getSubjectAvailabilitySettings
      summary: Get subject availability settings
      tags:
      - Scheduling
      description: Get all availability settings for a subject by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:subjects:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/SubjectMeetingTypeAvailabilitySetting"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    put:
      operationId: updateSubjectAvailabilitySettings
      summary: Update subject availability settings
      tags:
      - Scheduling
      description: Update all availability settings for a subject by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/SubjectMeetingTypeAvailabilitySetting"
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:subjects:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/SubjectMeetingTypeAvailabilitySetting"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/offices/{id}/expertises":
    get:
      operationId: getExpertises
      summary: Get expertises
      tags:
      - Scheduling
      description: Get all expertises for agents within an office by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: employee-id
        required: false
        description: Employee ID to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: subject-id
        required: false
        description: Subject ID to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:expertises:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/SubjectOfficeEmployeeSchedulingSetting"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    put:
      operationId: updateExpertises
      summary: Update expertises
      tags:
      - Scheduling
      description: Update all expertises for agents within an office by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/SubjectOfficeEmployeeSchedulingSettingInput"
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:expertises:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/SubjectOfficeEmployeeSchedulingSetting"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/offices/{id}/subject-availability-settings":
    get:
      operationId: getOfficeSubjectAvailabilitySettings
      summary: Get office subject availability settings
      tags:
      - Scheduling
      description: Get all subject availability settings for an office by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:offices:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/SubjectOfficeMeetingTypeAvailabilitySetting"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    put:
      operationId: updateOfficeSubjectAvailabilitySettings
      summary: Update office subject availability settings
      tags:
      - Scheduling
      description: Update all subject availability settings for an office by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/SubjectOfficeMeetingTypeAvailabilitySettingInput"
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:offices:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/SubjectOfficeMeetingTypeAvailabilitySetting"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/offices/{id}/subject-scheduling-settings":
    get:
      operationId: getSubjectOfficeSchedulingSettings
      summary: Get subject office scheduling settings
      tags:
      - Scheduling
      description: Get all subject scheduling settings for an office by its ID
      parameters:
      - schema:
          type: array
          items:
            type: string
            enum:
            - OFFICE
            - ON_LOCATION
            - PHONE
            - VIDEO
            examples:
            - OFFICE
          minItems: 1
          maxItems: 100
        in: query
        name: meeting-type
        required: false
        description: Meeting type(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: subject-id
        required: false
        description: Subject ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:offices:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/SubjectOfficeSchedulingSetting"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    put:
      operationId: updateSubjectOfficeSchedulingSettings
      summary: Update subject office scheduling settings
      tags:
      - Scheduling
      description: Update all subject scheduling settings for an office by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/SubjectOfficeSchedulingSettingInput"
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:offices:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/SubjectOfficeSchedulingSetting"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/subjects/{id}/scheduling-settings":
    get:
      operationId: getSubjectSchedulingSettings
      summary: Get subject scheduling settings
      tags:
      - Scheduling
      description: Get all scheduling settings for a subject by its ID
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:subjects:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/SubjectSchedulingSetting"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
    put:
      operationId: updateSubjectSchedulingSettings
      summary: Update subject scheduling settings
      tags:
      - Scheduling
      description: Update all scheduling settings for a subject by its ID
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/SubjectSchedulingSetting"
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - '1234'
        in: path
        name: id
        required: true
        description: Primary identifier of the requested resource
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:subjects:readWrite
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/SubjectSchedulingSetting"
                description: Successful operation
                additionalProperties: false
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                    minItems: 1
                description: Resource not found
  "/timetable":
    get:
      operationId: getTimetable
      summary: Get timetable
      tags:
      - Scheduling
      description: Get timetable with filtering
      parameters:
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: from
        required: true
        description: Start date and time to be considered for filtering (ISO 8601)
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: to
        required: true
        description: End date and time to be considered for filtering (ISO 8601)
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: employee-id
        required: false
        description: Employee ID(s) to be considered for filtering
      - schema:
          type: array
          items:
            type: string
            enum:
            - da
            - de
            - el
            - en
            - es
            - fr
            - ja
            - nl
            - 'no'
            - pl
          minItems: 1
          maxItems: 100
        in: query
        name: employee-languages
        required: false
        description: Employee languages to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: office-id
        required: true
        description: Office ID to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: subject-id
        required: true
        description: Subject ID to be considered for filtering
      - schema:
          type: string
          enum:
          - OFFICE
          - ON_LOCATION
          - PHONE
          - VIDEO
          examples:
          - OFFICE
        in: query
        name: meeting-type
        required: true
        description: Meeting type to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: lead-segment-id
        required: false
        description: Lead segment ID to be considered for filtering
      - schema:
          type: string
          minLength: 1
          examples:
          - '123'
        in: query
        name: listing-id
        required: false
        description: Listing ID to be considered for filtering
      - schema:
          type: object
          properties:
            latitude:
              type: string
            longitude:
              type: string
          additionalProperties: false
        in: query
        name: location
        required: false
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: object
                    required:
                    - duration
                    - earliestPossible
                    - latestPossible
                    - meetingType
                    - office
                    - slots
                    - subject
                    - trailingBufferTime
                    properties:
                      duration:
                        type: integer
                        minimum: 0
                        examples:
                        - 5
                      earliestPossible:
                        type: string
                        minLength: 1
                        format: date-time
                        examples:
                        - '2022-08-01T09:00:00.000Z'
                      latestPossible:
                        type: string
                        minLength: 1
                        format: date-time
                        examples:
                        - '2022-09-01T17:00:00.000Z'
                      listing:
                        anyOf:
                        - type: object
                          required:
                          - id
                          properties:
                            id:
                              type: string
                              minLength: 1
                              examples:
                              - '123'
                          additionalProperties: false
                        - type: 'null'
                      meetingType:
                        type: string
                        enum:
                        - OFFICE
                        - ON_LOCATION
                        - PHONE
                        - VIDEO
                        examples:
                        - OFFICE
                      office:
                        type: object
                        required:
                        - id
                        properties:
                          id:
                            type: string
                            minLength: 1
                            examples:
                            - '123'
                        additionalProperties: false
                      slots:
                        type: array
                        items:
                          type: object
                          required:
                          - availableEmployees
                          - start
                          - end
                          properties:
                            availableEmployees:
                              type: array
                              items:
                                type: object
                                required:
                                - autoAccept
                                - employee
                                properties:
                                  autoAccept:
                                    type: boolean
                                  employee:
                                    type: object
                                    required:
                                    - id
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        examples:
                                        - '123'
                                    additionalProperties: false
                                additionalProperties: false
                            start:
                              type: string
                              minLength: 1
                              format: date-time
                              examples:
                              - '2022-08-01T09:00:00.000Z'
                            end:
                              type: string
                              minLength: 1
                              format: date-time
                              examples:
                              - '2022-08-01T10:00:00.000Z'
                          additionalProperties: false
                      subject:
                        type: object
                        required:
                        - id
                        properties:
                          id:
                            type: string
                            minLength: 1
                            examples:
                            - '123'
                        additionalProperties: false
                      trailingBufferTime:
                        type: integer
                        minimum: 0
                        examples:
                        - 5
                    additionalProperties: false
                description: Successful operation
                additionalProperties: false
        '422':
          description: |-
            Business validation failed

            * `TIMETABLE_NOT_SCHEDULABLE`

            See [Error codes](#topic-error-codes)
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - message
                      - code
                      - type
                      - statusCode
                      properties:
                        message:
                          type: string
                          minLength: 1
                        code:
                          type: string
                          minLength: 1
                        type:
                          type: string
                          minLength: 1
                        statusCode:
                          type: string
                          minLength: 1
                        arguments:
                          anyOf:
                          - type: object
                            properties: {}
                          - type: 'null'
                    minItems: 1
                description: |-
                  Business validation failed

                  * `TIMETABLE_NOT_SCHEDULABLE`

                  See [Error codes](#topic-error-codes)
  "/unavailability":
    get:
      operationId: getUnavailability
      summary: Get unavailability
      tags:
      - Scheduling
      description: Get unavailability with filtering
      parameters:
      - schema:
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - '123'
          minItems: 1
          maxItems: 100
        in: query
        name: employee-id
        required: false
        description: ID(s) to be considered for filtering
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: start
        required: false
        description: Start date and time to be considered for filtering (ISO 8601)
      - schema:
          type: string
          minLength: 1
          format: date-time
        in: query
        name: end
        required: false
        description: End date and time to be considered for filtering (ISO 8601)
      - schema:
          type: array
          items:
            type: string
            enum:
            - APPOINTMENT
            - EXTERNAL_CALENDAR
            - LISTING_EXCLUSIVITY
            - USER_DEFINED
            examples:
            - USER_DEFINED
          minItems: 1
        in: query
        name: type
        required: false
        description: Unavailability type(s) to be considered for filtering
      - schema:
          "$ref": "#/components/schemas/Offset"
        in: query
        name: offset
      - schema:
          "$ref": "#/components/schemas/Limit"
        in: query
        name: limit
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security:
      - OAuth2:
        - engage:availability:readOnly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/UnavailabilityDetail"
                  meta:
                    "$ref": "#/components/schemas/PagingMetadata"
                description: Successful operation
                additionalProperties: false
  "/video/{token}":
    get:
      operationId: getVideoURL
      summary: Go to the video meeting
      tags:
      - Video
      description: Get meeting destination URL
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - m8WwB7iPxDgCKpnBGM83wXJnv7OxzccKagbwyxQXFL
        in: path
        name: token
        required: true
        description: Token of the appointment participant
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security: []
      responses:
        '200':
          description: Default Response
  "/video/{token}/test":
    get:
      operationId: getVideoTestURL
      summary: Go to the video test meeting
      tags:
      - Video
      description: Get meeting test destination URL
      parameters:
      - schema:
          type: string
          minLength: 1
          examples:
          - m8WwB7iPxDgCKpnBGM83wXJnv7OxzccKagbwyxQXFL
        in: path
        name: token
        required: true
        description: Token of the appointment participant
      - schema:
          type: string
          minLength: 1
          examples:
          - Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        in: header
        name: Authorization
        required: false
        description: Bearer token used for authorization
      - schema:
          type: string
          minLength: 1
          maxLength: 36
          examples:
          - a4f0048e-c983-11ed-afa1-0242ac120002
        in: header
        name: X-Correlation-Id
        required: false
        description: Unique identifier to allow referencing a particular transaction
          or event chain
      security: []
      responses:
        '200':
          description: Default Response
servers:
- url: https://api.development.pexipengage.com/enterprises/{enterprise}
  variables:
    enterprise:
      default: acme
      description: Your enterprise (tenant) name, assigned by the service provider
tags:
- name: Customer Management
  description: Customers
- name: External Calendars
  description: Synchronization with external calendars
- name: Integrations
  description: Integrations and communication
- name: Internationalization
  description: Languages and translations
- name: Organization
  description: Organization structures, people, scheduling settings, templates, forms
    and settings
- name: Scheduling
  description: Agent availability, global scheduling settings, timetable generation,
    appointments and callback requests
externalDocs:
  description: Find out more about Pexip Engage
  url: https://engage.pexip.com
webhooks:
  AppointmentCreate:
    post:
      summary: appointment.create
      description: A new appointment is scheduled on your environment. Subscribe to
        these events to update relevant documents in your CRM or other dataflows.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/AppointmentCreateWebhook"
      responses:
        '200':
          description: Your server returns this code if it succesfully processed the
            event
        '201':
          description: Your server returns this code if it succesfully processed the
            event
        '202':
          description: Your server returns this code if it succesfully processed the
            event
        '204':
          description: Your server returns this code if it succesfully processed the
            event
  AppointmentUpdate:
    post:
      summary: appointment.update
      description: An existing appointment is updated on your environment. Subscribe
        to these events to update relevant documents in your CRM or other dataflows.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/AppointmentUpdateWebhook"
      responses:
        '200':
          description: Your server returns this code if it succesfully processed the
            event
        '201':
          description: Your server returns this code if it succesfully processed the
            event
        '202':
          description: Your server returns this code if it succesfully processed the
            event
        '204':
          description: Your server returns this code if it succesfully processed the
            event
  CallbackRequestCreate:
    post:
      summary: callback-request.create
      description: A new callback request is created on your environment. Subscribe
        to these events to update relevant documents in your CRM or other dataflows.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/CallbackRequestCreateWebhook"
      responses:
        '200':
          description: Your server returns this code if it succesfully processed the
            event
        '201':
          description: Your server returns this code if it succesfully processed the
            event
        '202':
          description: Your server returns this code if it succesfully processed the
            event
        '204':
          description: Your server returns this code if it succesfully processed the
            event
  CallbackRequestUpdate:
    post:
      summary: appointment.update
      description: An existing callback request is updated on your environment. Subscribe
        to these events to update relevant documents in your CRM or other dataflows.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/CallbackRequestUpdateWebhook"
      responses:
        '200':
          description: Your server returns this code if it succesfully processed the
            event
        '201':
          description: Your server returns this code if it succesfully processed the
            event
        '202':
          description: Your server returns this code if it succesfully processed the
            event
        '204':
          description: Your server returns this code if it succesfully processed the
            event
  CommunicationWebhook:
    post:
      summary: communication.send
      description: Subscribe to these events to be notified whenever a communication
        or reminder must be send to the participants of an appointment or callback
        request.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/CommunicationWebhook"
      responses:
        '200':
          description: Your server returns this code if it succesfully processed the
            event
        '201':
          description: Your server returns this code if it succesfully processed the
            event
        '202':
          description: Your server returns this code if it succesfully processed the
            event
        '204':
          description: Your server returns this code if it succesfully processed the
            event
  PingWebhook:
    post:
      summary: ping
      description: Subscribe to this event to receive periodic ping messages used
        to validate that your webhook endpoint is reachable and functioning properly.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/PingWebhook"
      responses:
        '200':
          description: Your server returns this code if it successfully processed
            the event
        '201':
          description: Your server returns this code if it successfully processed
            the event
        '202':
          description: Your server returns this code if it successfully processed
            the event
        '204':
          description: Your server returns this code if it successfully processed
            the event
