openapi: 3.0.3
info:
  title: JSON API
  description: API for interacting with Appointedd compliant with the JSON:API
    specification (https://jsonapi.org/)
  version: 2.0.0
components:
  securitySchemes:
    OAuth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: /v2/oauth/tokens
          scopes: {}
  schemas: {}
paths:
  /v2/accounts/{accountId}:
    get:
      summary: Get Account By ID
      tags:
        - Accounts
      description: Get an Appointedd account that you have access to by it's unique
        identifier.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: accountId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - Account
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          name:
                            type: string
                            minLength: 1
                            maxLength: 4000
                            description: Human readable name for this account.
                          slug:
                            type: string
                            minLength: 1
                            maxLength: 2000
                            description: URL safe representation of the name of this account.
                          coordinates:
                            type: object
                            properties:
                              latitude:
                                type: number
                                minimum: -90
                                maximum: 90
                                description: latitude.
                              longitude:
                                type: number
                                minimum: -180
                                maximum: 180
                                description: longitude.
                            required:
                              - latitude
                              - longitude
                            additionalProperties: false
                            nullable: true
                            description: Coordinates that corresponds to the geographic location of this
                              account.
                          customFields:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                                type:
                                  type: string
                                  enum:
                                    - text
                                    - date
                                required:
                                  type: boolean
                              required:
                                - id
                                - name
                                - type
                                - required
                              additionalProperties: false
                            nullable: true
                            description: Custom fields configured for this account.
                          additionalCustomerBookingStatuses:
                            type: array
                            items:
                              type: object
                              properties:
                                label:
                                  type: string
                                key:
                                  type: string
                              required:
                                - label
                              additionalProperties: false
                            nullable: true
                            description: Additional custom arrival statuses configured for this account.
                          customQuestions:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                type:
                                  type: string
                                  enum:
                                    - text
                                    - checkbox
                                    - dropdown
                                    - terms
                                    - file
                                name:
                                  type: string
                                required:
                                  type: boolean
                                statusType:
                                  type: string
                                  enum:
                                    - online
                                    - internal
                                    - both
                                order:
                                  type: number
                                options:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      value:
                                        type: string
                                      id:
                                        type: string
                                    required:
                                      - value
                                    additionalProperties: false
                                services:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - type
                                - name
                              additionalProperties: false
                            nullable: true
                            description: Custom intake questions configured for this account. Questions may
                              be filtered by service.
                        required:
                          - slug
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          bookings:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Booking
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          customers:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Customer
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          events:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Event
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          resources:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Resource
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          services:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Service
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          saml:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Saml
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
    patch:
      summary: Update Account By ID
      tags:
        - Accounts
      description: Update an existing account using a valid account Id
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                attributes:
                  type: object
                  properties:
                    name:
                      type: string
                      minLength: 1
                      maxLength: 4000
                      description: Human readable name for this account.
                    coordinates:
                      type: object
                      properties:
                        latitude:
                          type: number
                          minimum: -90
                          maximum: 90
                          description: latitude.
                        longitude:
                          type: number
                          minimum: -180
                          maximum: 180
                          description: longitude.
                      required:
                        - latitude
                        - longitude
                      additionalProperties: false
                      nullable: true
                      description: Coordinates that corresponds to the geographic location of this
                        account.
                  additionalProperties: false
              required:
                - attributes
              additionalProperties: false
        required: true
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: accountId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - Account
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          name:
                            type: string
                            minLength: 1
                            maxLength: 4000
                            description: Human readable name for this account.
                          slug:
                            type: string
                            minLength: 1
                            maxLength: 2000
                            description: URL safe representation of the name of this account.
                          coordinates:
                            type: object
                            properties:
                              latitude:
                                type: number
                                minimum: -90
                                maximum: 90
                                description: latitude.
                              longitude:
                                type: number
                                minimum: -180
                                maximum: 180
                                description: longitude.
                            required:
                              - latitude
                              - longitude
                            additionalProperties: false
                            nullable: true
                            description: Coordinates that corresponds to the geographic location of this
                              account.
                          customFields:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                                type:
                                  type: string
                                  enum:
                                    - text
                                    - date
                                required:
                                  type: boolean
                              required:
                                - id
                                - name
                                - type
                                - required
                              additionalProperties: false
                            nullable: true
                            description: Custom fields configured for this account.
                          additionalCustomerBookingStatuses:
                            type: array
                            items:
                              type: object
                              properties:
                                label:
                                  type: string
                                key:
                                  type: string
                              required:
                                - label
                              additionalProperties: false
                            nullable: true
                            description: Additional custom arrival statuses configured for this account.
                          customQuestions:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                type:
                                  type: string
                                  enum:
                                    - text
                                    - checkbox
                                    - dropdown
                                    - terms
                                    - file
                                name:
                                  type: string
                                required:
                                  type: boolean
                                statusType:
                                  type: string
                                  enum:
                                    - online
                                    - internal
                                    - both
                                order:
                                  type: number
                                options:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      value:
                                        type: string
                                      id:
                                        type: string
                                    required:
                                      - value
                                    additionalProperties: false
                                services:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - type
                                - name
                              additionalProperties: false
                            nullable: true
                            description: Custom intake questions configured for this account. Questions may
                              be filtered by service.
                        required:
                          - slug
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          bookings:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Booking
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          customers:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Customer
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          events:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Event
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          resources:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Resource
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          services:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Service
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          saml:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Saml
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/accounts:
    get:
      summary: Get All Accounts
      tags:
        - Accounts
      description: Get a paginated view of all Appointedd accounts you have access to.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: string
          in: query
          name: filter[accountQuery]
          required: false
          description: Search query for accounts (matches name).
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][bookings]
          required: false
          description: Whether to include bookings in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][customers]
          required: false
          description: Whether to include customers in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][events]
          required: false
          description: Whether to include events in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][resources]
          required: false
          description: Whether to include resources in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][services]
          required: false
          description: Whether to include services in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][saml]
          required: false
          description: Whether to include saml in the relationships.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - Account
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            name:
                              type: string
                              minLength: 1
                              maxLength: 4000
                              description: Human readable name for this account.
                            slug:
                              type: string
                              minLength: 1
                              maxLength: 2000
                              description: URL safe representation of the name of this account.
                            coordinates:
                              type: object
                              properties:
                                latitude:
                                  type: number
                                  minimum: -90
                                  maximum: 90
                                  description: latitude.
                                longitude:
                                  type: number
                                  minimum: -180
                                  maximum: 180
                                  description: longitude.
                              required:
                                - latitude
                                - longitude
                              additionalProperties: false
                              nullable: true
                              description: Coordinates that corresponds to the geographic location of this
                                account.
                            customFields:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  name:
                                    type: string
                                  type:
                                    type: string
                                    enum:
                                      - text
                                      - date
                                  required:
                                    type: boolean
                                required:
                                  - id
                                  - name
                                  - type
                                  - required
                                additionalProperties: false
                              nullable: true
                              description: Custom fields configured for this account.
                            additionalCustomerBookingStatuses:
                              type: array
                              items:
                                type: object
                                properties:
                                  label:
                                    type: string
                                  key:
                                    type: string
                                required:
                                  - label
                                additionalProperties: false
                              nullable: true
                              description: Additional custom arrival statuses configured for this account.
                            customQuestions:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  type:
                                    type: string
                                    enum:
                                      - text
                                      - checkbox
                                      - dropdown
                                      - terms
                                      - file
                                  name:
                                    type: string
                                  required:
                                    type: boolean
                                  statusType:
                                    type: string
                                    enum:
                                      - online
                                      - internal
                                      - both
                                  order:
                                    type: number
                                  options:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        value:
                                          type: string
                                        id:
                                          type: string
                                      required:
                                        - value
                                      additionalProperties: false
                                  services:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - type
                                  - name
                                additionalProperties: false
                              nullable: true
                              description: Custom intake questions configured for this account. Questions may
                                be filtered by service.
                          required:
                            - slug
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            bookings:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Booking
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                            customers:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Customer
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                            events:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Event
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                            resources:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                            services:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Service
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                            saml:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Saml
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/accounts/{accountId}/bookings:
    get:
      summary: Get All Bookings By Account ID
      tags:
        - Accounts
        - Bookings
      description: Get a paginated view of all Appointedd bookings in an account with
        a specific ID.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[accountIds]
          required: false
          description: Returns any bookings that belong to any of the given account IDs.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[customerIds]
          required: false
          description: Returns any bookings that belong to any of the given customer IDs.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[resourceIds]
          required: false
          description: Returns any bookings that belong to any of the given resource IDs.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[eventIds]
          required: false
          description: Returns any bookings that belong to any of the given event IDs.
        - schema:
            type: array
            items:
              type: string
              minLength: 1
          in: query
          name: filter[payments][externalIds]
          required: false
          description: Returns any bookings that have a payment that references any of the
            given external IDs provided by the payment provider used for the
            payment.
        - schema:
            type: string
            enum:
              - pending
              - confirmed
              - declined
              - cancelled
          in: query
          name: filter[state]
          required: false
          description: Returns any bookings that have a state set to the given value.
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[start][after]
          required: false
          description: Returns any bookings that start after the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[start][before]
          required: false
          description: Returns any bookings that start before the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[end][after]
          required: false
          description: Returns any bookings that end after the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[end][before]
          required: false
          description: Returns any bookings that end before the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[created][after]
          required: false
          description: Returns any bookings that were created after the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[created][before]
          required: false
          description: Returns any bookings that were created before the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[updated][after]
          required: false
          description: Returns any bookings that were updated after the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[updated][before]
          required: false
          description: Returns any bookings that were updated before the given date and
            time (inclusive).
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][resources]
          required: false
          description: Whether to include resources in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][invoices]
          required: false
          description: Whether to include invoice payment data in the attributes.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: accountId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - Booking
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            bookingId:
                              type: string
                              description: The unique identifier for this booking.
                            created:
                              type: string
                              format: date-time
                              description: ISO 8601 date and time that this booking was created at.
                            bookingPrice:
                              type: number
                              minimum: 0
                              nullable: true
                              description: Total amount that this booking costs. If this is booking is for an
                                event this will the the total price of the vent.
                                It is possible for a booking's price to be
                                changed independently from the customer's price
                                which can cause this value to differ from the
                                value of the `customerPrice` property.
                            customerPrice:
                              type: number
                              minimum: 0
                              description: Total amount that this booking costs for this customer in the
                                currency configured for the account that this
                                booking belongs to.
                            end:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this booking ends
                                at.
                            endWithBuffer:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this booking ends
                                at with the booking's 'after' buffer added if it
                                has one.
                            locale:
                              type: string
                              description: ISO 639 code of the locale of the customer that created this
                                booking.
                            notes:
                              type: string
                              nullable: true
                              description: Free-form text attached to this booking as a note.
                            parts:
                              type: array
                              items:
                                type: object
                                properties:
                                  label:
                                    type: string
                                    minLength: 1
                                    nullable: true
                                    description: Human readable text label for this part of the booking.
                                  start:
                                    type: string
                                    format: date-time
                                    description: ISO 8601 representation of the data and time that this part starts
                                      at.
                                  end:
                                    type: string
                                    format: date-time
                                    description: ISO 8601 representation of the date and time that this part ends
                                      at.
                                required:
                                  - label
                                  - start
                                  - end
                                additionalProperties: false
                              minItems: 1
                              description: One or more parts that are contained by this booking. This is used
                                for multi-part bookings which can have gaps
                                within it's start and end which are considered
                                'free' and not blocked by the booking.
                            payments:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    description: The external reference used to identify the payment within the
                                      payment provider e.g. a Stripe charge id
                                      or an Adyen PSP reference.
                                  provider:
                                    type: string
                                    description: The connected provider the booking payment was processed for.
                                  amount:
                                    type: number
                                    description: The value of the payment that was processed.
                                required:
                                  - id
                                  - provider
                                  - amount
                                additionalProperties: false
                              description: One or more payments that are related to this booking.
                            refunds:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    description: The external reference used to identify the refund within the
                                      payment provider e.g. a Stripe charge id
                                      or an Adyen PSP reference.
                                  provider:
                                    type: string
                                    description: The connected provider the booking refund was processed for.
                                  originalPaymentId:
                                    type: string
                                    description: The id that relates to the original payment being refunded.
                                  amount:
                                    type: number
                                    description: The value of the refund that was processed.
                                  status:
                                    type: string
                                    enum:
                                      - pending
                                      - success
                                      - failed
                                    description: Indicates the status of the refund.
                                  description:
                                    type: string
                                    description: The description / reason for this refund.
                                  refundFailedReason:
                                    type: string
                                    description: The reason this refund failed.
                                required:
                                  - id
                                  - provider
                                  - amount
                                  - description
                                additionalProperties: false
                              description: One or more refunds that are related to this booking.
                            questions:
                              type: array
                              items:
                                anyOf:
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - text
                                      value:
                                        type: string
                                        nullable: true
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a free-form text value as an answer. A value of
                                      `null` indicates an empty answer.
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - dropdown
                                      value:
                                        type: string
                                        maxLength: 100
                                        nullable: true
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a free-form a text value selected from a preset
                                      number of options as an answer. A value of
                                      `null` indicates no selection.
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - checkbox
                                      value:
                                        type: boolean
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a boolean value as an answer.
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - terms
                                      value:
                                        type: boolean
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a boolean value as an answer (terms of
                                      service).
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - file
                                      value:
                                        type: string
                                        minLength: 1
                                        maxLength: 1000
                                        nullable: true
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a file upload as an answer.
                              description: Array of questions that were answered by the customer when creating
                                this booking.
                            rescheduleUrl:
                              type: string
                              format: uri
                              maxLength: 3000
                              nullable: true
                              description: URL that provides a web widget to reschedule this booking.
                            source:
                              type: string
                              maxLength: 200
                              description: Name of the source where this booking was created.
                            spaces:
                              type: number
                              minimum: 1
                              description: Number of spaces that the customer has requested for this booking.
                            start:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this booking
                                starts at.
                            state:
                              type: string
                              enum:
                                - pending
                                - confirmed
                                - declined
                                - cancelled
                              description: State that the booking is currently in.
                            status:
                              type: string
                              description: Status that this booking is currently in.
                              default: No Status
                            startWithBuffer:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this booking
                                starts at with the booking's 'before' buffer
                                subtracted if it has one.
                            timezone:
                              type: string
                              description: IANA name of the time zone that the customer made this booking in.
                                Deprecated time zones are supported but we
                                recommend only using non-deprecated time zone
                                names where possible.
                            updated:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 representation of the date and time that this booking was
                                last updated at. If not set then this booking
                                has never been updated since it's creation.
                          required:
                            - created
                            - bookingPrice
                            - customerPrice
                            - end
                            - endWithBuffer
                            - locale
                            - notes
                            - parts
                            - questions
                            - rescheduleUrl
                            - source
                            - spaces
                            - start
                            - state
                            - startWithBuffer
                            - timezone
                            - updated
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            account:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            customer:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Customer
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            event:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Event
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            resources:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                            service:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Service
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - account
                            - customer
                            - event
                            - resources
                            - service
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/accounts/{accountId}/customers:
    get:
      summary: Get All Customers By Account ID
      tags:
        - Accounts
        - Customers
      description: Get a paginated view of all Appointedd customers in an account with
        a specific ID.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: accountId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - Customer
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            created:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the data and time that this customer was
                                created at.
                            customFields:
                              type: object
                              additionalProperties:
                                anyOf:
                                  - type: string
                                  - type: string
                                    format: date-time
                                description: Value of this custom field for this customer.
                              description: Object containing custom fields that are set on this customer.
                            email:
                              type: string
                              nullable: true
                              description: Email address for this customer.
                            ccEmails:
                              type: array
                              items:
                                type: string
                              nullable: true
                              description: "If customer CC email addresses (max 2) are provided all customer
                                email comms will be cc'd to these addresses:
                                Note this is a paid for enterprise only
                                feature."
                            mobile:
                              type: object
                              properties:
                                number:
                                  type: string
                                  minLength: 1
                                  maxLength: 50
                                  description: Mobile number for this customer.
                                countryCode:
                                  type: string
                                  minLength: 1
                                  maxLength: 50
                                  nullable: true
                                  description: Country code for this mobile number if it contains one, otherwise
                                    `null` if it does not or the mobile number
                                    is invalid.
                              required:
                                - number
                              additionalProperties: false
                              nullable: true
                              description: Object containing mobile information for this customer.
                            marketingOptIn:
                              type: boolean
                              description: Indicates if the customer has subscribed to receive marketing
                                communications.
                            firstname:
                              type: string
                              minLength: 1
                              description: First name of this customer.
                            lastname:
                              type: string
                              minLength: 1
                              description: Last name of this customer.
                            tags:
                              type: array
                              items:
                                type: string
                              description: One or more tags that have been assigned to this customer.
                            updated:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 representation of the date and time that this customer was
                                last updated at. If not set then this customer
                                has never been updated since it's creation.
                          required:
                            - created
                            - marketingOptIn
                            - firstname
                            - lastname
                            - updated
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            account:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            bookings:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Booking
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - account
                            - bookings
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/oauth/tokens:
    post:
      summary: Create OAuth Token
      tags:
        - Auth
      description: Create an OAuth access token from an OAuth client ID and secret
        which can be used to authenticate requests to the API. The client ID and
        secret can be provided either in the request body or in the
        Authorization header using the basic authentication scheme.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                client_id:
                  type: string
                  minLength: 1
                  description: Unique identifier of the OAuth client to create an access token
                    for. Only required if the request does not include an
                    Authorization header that contains the OAuth client ID and
                    secret using the basic authentication scheme.
                client_secret:
                  type: string
                  minLength: 1
                  description: Secret of the OAuth client to create an access token for. Only
                    required if the request does not include an Authorization
                    header that contains the OAuth client ID and secret using
                    the basic authentication scheme.
                expires_in:
                  type: number
                  minimum: 300
                  maximum: 315360000
                  default: 3600
                  description: Number of seconds from the date and time that the access token is
                    created that it will expire. Must be an amount of seconds
                    between 300 (5 minutes) and 315360000 (10 years). Defaults
                    to 3600 (1 hour) if not set.
                grant_type:
                  type: string
                  enum:
                    - client_credentials
              required:
                - grant_type
              additionalProperties: false
        required: true
      security: []
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  access_token:
                    type: string
                  token_type:
                    type: string
                    enum:
                      - Bearer
                  expires_in:
                    type: number
                    minimum: 300
                    maximum: 315360000
                    default: 3600
                    description: Number of seconds from the date and time that the access token is
                      created that it will expire.
                required:
                  - access_token
                  - token_type
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/availability/intervals/search:
    post:
      summary: Find Available Intervals
      tags:
        - Availability
      description: Search for available time intervals for booking. This endpoint
        proxies requests to the Chronos availability engine while maintaining
        compatibility with existing request structures.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                ranges:
                  type: array
                  items:
                    type: object
                    properties:
                      start:
                        type: string
                        format: date-time
                        description: Starting date and time of the range to query. Must be in a valid
                          ISO8601 formatted string.
                      end:
                        type: string
                        format: date-time
                        description: Ending date and time of the range to query. Must be in a valid
                          ISO8601 formatted string.
                    required:
                      - start
                      - end
                    additionalProperties: false
                  minItems: 1
                  description: One or more ranges of dates & times to query for available
                    intervals.
                accounts:
                  type: array
                  items:
                    type: object
                    properties:
                      accountId:
                        type: string
                        description: Unique identifier of the account (organisation) for this
                          availability request.
                      serviceId:
                        type: string
                        description: Unique identifier of the service in this organisation to use when
                          calculating the available intervals.
                      resourceIds:
                        type: array
                        items:
                          type: string
                        description: One or more unique identifiers of resources in this organisation to
                          find available intervals for. If not set this defaults
                          to all of the resources assigned to the service you
                          specified.
                      resourceGroupIds:
                        type: array
                        items:
                          type: string
                        description: One or more unique identifiers of resource groups in this
                          organisation whose resources you want to find
                          available intervals. Mutually exclusive with
                          resourceIds.
                    required:
                      - accountId
                      - serviceId
                    additionalProperties: false
                  minItems: 1
                  description: One or more account-specific availability requests. Each account
                    will have its own service, resource, and resource group IDs.
                buffers:
                  type: object
                  properties:
                    before:
                      type: integer
                      minimum: 0
                      description: Number of minutes from the start of a potential booking that is
                        required to not have any other bookings, breaks, or
                        external events. If this property is not given in the
                        request it either be loaded from the service if one is
                        given, or default to 0.
                    after:
                      type: integer
                      minimum: 0
                      description: Number of minutes from the end of a potential booking that is
                        required to not have any other bookings, breaks, or
                        external events. If this property is not given in the
                        request it either be loaded from the service if one is
                        given, or default to 0.
                  additionalProperties: false
                  description: Controls the amount of time before and/or after a booking that must
                    not contain any other bookings, breaks, or external events.
                    If you do not specify any buffers then they will either be
                    loaded from a service if you have given one, or default to
                    query with no buffers.
                duration:
                  type: integer
                  minimum: 1
                  description: Number of continuous minutes of time from the start of an interval
                    that must be free for an interval to be considered
                    available. If you do not specify the parts property or this
                    property, and you have specified a service property, the
                    default duration or parts for that service will be used. If
                    you specify the parts property in this request this property
                    will be ignored.
                parts:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - block
                          - free
                        description: Type of this part.
                      duration:
                        type: integer
                        minimum: 1
                        description: Number of continuous minutes that this part spans.
                    required:
                      - type
                      - duration
                    additionalProperties: false
                  description: Parts that define the structure of the booking time.
                spaces:
                  type: integer
                  minimum: 1
                  default: 1
                  description: Number of spaces that are required. This is used to exclude any
                    group bookings that do not have enough spaces.
                timezone:
                  type: string
                  default: Europe/London
                  description: Name of an IANA timezone to return the resulting dates & times in.
                ignorePastRestriction:
                  type: boolean
                  default: false
                  description: If set to true availability will not be restricted by the current
                    date and time. By default this is set to false and any date
                    and time before the current date and time will be considered
                    as unavailable.
                ignoreNoticeRestriction:
                  type: boolean
                  default: false
                  description: If set to true availability will not be restricted by your
                    organisation's or service's notice period settings. By
                    default this is set to false and any date and time before
                    the number of minutes/hours/days added onto the current date
                    and time will be considered as unavailable.
                ignoreBookings:
                  type: array
                  items:
                    type: string
                  description: One or more unique identifiers of bookings in your organisation to
                    ignore for the purposes of this availability query. This
                    means that it will not block availability and if it is a
                    group booking it will not be returned if it is available.
                ignoreServiceAssignment:
                  type: boolean
                  default: false
                  description: If set to true, the request will not fail if the resource on this
                    booking is not assigned to the service on this booking.
                ignoreServiceSchedule:
                  type: boolean
                  default: false
                  description: If set to true availability will not be restricted by the service's
                    schedule. By default this is set to false and any date and
                    time outside of the service's schedule will be considered as
                    unavailable.
                ignoreGroupSetting:
                  type: boolean
                  default: false
                  description: If set to true the availability will return bookings that have
                    enough space as group bookings, regardless if they have
                    online group bookings turned on.
                ignoreBlockRestriction:
                  type: boolean
                  default: false
                  description: If set to true availability will ignore the block after setting on
                    your account.
              required:
                - ranges
                - accounts
              additionalProperties: false
        required: true
      responses:
        "200":
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  organisations:
                    type: array
                    items:
                      type: object
                      properties:
                        organisationId:
                          type: string
                          description: Unique identifier of the organisation.
                        intervals:
                          type: array
                          items:
                            type: object
                            properties:
                              start:
                                type: string
                                description: ISO8601 formatted date and time when this interval starts.
                              resourceIds:
                                type: array
                                items:
                                  type: string
                                description: Array of resource IDs that are available for this interval.
                              groupBookings:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Unique identifier of the group booking.
                                    resourceId:
                                      type: string
                                      description: Unique identifier of the resource for this group booking.
                                    spaces:
                                      type: integer
                                      description: Number of available spaces in this group booking.
                                    recurrence:
                                      type: object
                                      properties:
                                        id:
                                          type: string
                                          description: Unique identifier of the recurring booking.
                                        bookings:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              id:
                                                type: string
                                                description: Unique identifier of the individual booking.
                                            required:
                                              - id
                                            additionalProperties: false
                                          description: Array of individual bookings that are part of this recurring
                                            pattern.
                                      required:
                                        - id
                                        - bookings
                                      additionalProperties: false
                                      description: Recurrence information if this group booking is part of a recurring
                                        pattern.
                                  required:
                                    - id
                                    - resourceId
                                    - spaces
                                  additionalProperties: false
                                description: Array of available group bookings for this interval.
                              groupSlots:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Unique identifier of the group slot.
                                    resourceId:
                                      type: string
                                      description: Unique identifier of the resource for this group slot.
                                    spaces:
                                      type: integer
                                      description: Number of available spaces in this group slot.
                                  required:
                                    - id
                                    - resourceId
                                    - spaces
                                  additionalProperties: false
                                description: Array of group slot information.
                            required:
                              - start
                              - resourceIds
                            additionalProperties: false
                          description: Available intervals for this organisation.
                      required:
                        - organisationId
                        - intervals
                      additionalProperties: false
                required:
                  - organisations
                additionalProperties: false
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/availability/days/search:
    post:
      summary: Find Available Dates
      tags:
        - Availability
      description: Search for available dates for booking.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                ranges:
                  type: array
                  items:
                    type: object
                    properties:
                      start:
                        type: string
                        format: date-time
                        description: Starting date and time of the range to query. Must be in a valid
                          ISO8601 formatted string.
                      end:
                        type: string
                        format: date-time
                        description: Ending date and time of the range to query. Must be in a valid
                          ISO8601 formatted string.
                    required:
                      - start
                      - end
                    additionalProperties: false
                  minItems: 1
                  description: One or more ranges of dates & times to query for available
                    intervals.
                accounts:
                  type: array
                  items:
                    type: object
                    properties:
                      accountId:
                        type: string
                        description: Unique identifier of the account (organisation) for this
                          availability request.
                      serviceId:
                        type: string
                        description: Unique identifier of the service in this organisation to use when
                          calculating the available intervals.
                      resourceIds:
                        type: array
                        items:
                          type: string
                        description: One or more unique identifiers of resources in this organisation to
                          find available intervals for. If not set this defaults
                          to all of the resources assigned to the service you
                          specified.
                      resourceGroupIds:
                        type: array
                        items:
                          type: string
                        description: One or more unique identifiers of resource groups in this
                          organisation whose resources you want to find
                          available intervals. Mutually exclusive with
                          resourceIds.
                    required:
                      - accountId
                      - serviceId
                    additionalProperties: false
                  minItems: 1
                  description: One or more account-specific availability requests. Each account
                    will have its own service, resource, and resource group IDs.
                buffers:
                  type: object
                  properties:
                    before:
                      type: integer
                      minimum: 0
                      description: Number of minutes from the start of a potential booking that is
                        required to not have any other bookings, breaks, or
                        external events. If this property is not given in the
                        request it either be loaded from the service if one is
                        given, or default to 0.
                    after:
                      type: integer
                      minimum: 0
                      description: Number of minutes from the end of a potential booking that is
                        required to not have any other bookings, breaks, or
                        external events. If this property is not given in the
                        request it either be loaded from the service if one is
                        given, or default to 0.
                  additionalProperties: false
                  description: Controls the amount of time before and/or after a booking that must
                    not contain any other bookings, breaks, or external events.
                    If you do not specify any buffers then they will either be
                    loaded from a service if you have given one, or default to
                    query with no buffers.
                duration:
                  type: integer
                  minimum: 1
                  description: Number of continuous minutes of time from the start of an interval
                    that must be free for an interval to be considered
                    available. If you do not specify the parts property or this
                    property, and you have specified a service property, the
                    default duration or parts for that service will be used. If
                    you specify the parts property in this request this property
                    will be ignored.
                parts:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - block
                          - free
                        description: Type of this part.
                      duration:
                        type: integer
                        minimum: 1
                        description: Number of continuous minutes that this part spans.
                    required:
                      - type
                      - duration
                    additionalProperties: false
                  description: Parts that define the structure of the booking time.
                spaces:
                  type: integer
                  minimum: 1
                  default: 1
                  description: Number of spaces that are required. This is used to exclude any
                    group bookings that do not have enough spaces.
                timezone:
                  type: string
                  default: Europe/London
                  description: Name of an IANA timezone to return the resulting dates & times in.
                ignorePastRestriction:
                  type: boolean
                  default: false
                  description: If set to true availability will not be restricted by the current
                    date and time. By default this is set to false and any date
                    and time before the current date and time will be considered
                    as unavailable.
                ignoreNoticeRestriction:
                  type: boolean
                  default: false
                  description: If set to true availability will not be restricted by your
                    organisation's or service's notice period settings. By
                    default this is set to false and any date and time before
                    the number of minutes/hours/days added onto the current date
                    and time will be considered as unavailable.
                ignoreBookings:
                  type: array
                  items:
                    type: string
                  description: One or more unique identifiers of bookings in your organisation to
                    ignore for the purposes of this availability query. This
                    means that it will not block availability and if it is a
                    group booking it will not be returned if it is available.
                ignoreServiceAssignment:
                  type: boolean
                  default: false
                  description: If set to true, the request will not fail if the resource on this
                    booking is not assigned to the service on this booking.
                ignoreServiceSchedule:
                  type: boolean
                  default: false
                  description: If set to true availability will not be restricted by the service's
                    schedule. By default this is set to false and any date and
                    time outside of the service's schedule will be considered as
                    unavailable.
                ignoreGroupSetting:
                  type: boolean
                  default: false
                  description: If set to true the availability will return bookings that have
                    enough space as group bookings, regardless if they have
                    online group bookings turned on.
                ignoreBlockRestriction:
                  type: boolean
                  default: false
                  description: If set to true availability will ignore the block after setting on
                    your account.
              required:
                - ranges
                - accounts
              additionalProperties: false
        required: true
      responses:
        "200":
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  organisations:
                    type: array
                    items:
                      type: object
                      properties:
                        organisationId:
                          type: string
                          description: Unique identifier of the organisation.
                        dates:
                          type: array
                          items:
                            type: object
                            properties:
                              date:
                                type: string
                                description: Date when this date starts. Accepts YYYY-MM-DD or ISO8601 format.
                              resourceIds:
                                type: array
                                items:
                                  type: string
                                description: Array of resource IDs that are available for this date.
                              groupBookings:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Unique identifier of the group booking.
                                    resourceId:
                                      type: string
                                      description: Unique identifier of the resource for this group booking.
                                    spaces:
                                      type: integer
                                      description: Number of available spaces in this group booking.
                                    recurrence:
                                      type: object
                                      properties:
                                        id:
                                          type: string
                                          description: Unique identifier of the recurring booking.
                                        bookings:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              id:
                                                type: string
                                                description: Unique identifier of the individual booking.
                                            required:
                                              - id
                                            additionalProperties: false
                                          description: Array of individual bookings that are part of this recurring
                                            pattern.
                                      required:
                                        - id
                                        - bookings
                                      additionalProperties: false
                                      description: Recurrence information if this group booking is part of a recurring
                                        pattern.
                                  required:
                                    - id
                                    - resourceId
                                    - spaces
                                  additionalProperties: false
                                description: Array of available group bookings for this date.
                              groupSlots:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Unique identifier of the group slot.
                                    resourceId:
                                      type: string
                                      description: Unique identifier of the resource for this group slot.
                                    spaces:
                                      type: integer
                                      description: Number of available spaces in this group slot.
                                  required:
                                    - id
                                    - resourceId
                                    - spaces
                                  additionalProperties: false
                                description: Array of group slot information.
                            required:
                              - date
                              - resourceIds
                            additionalProperties: false
                          description: Available dates for this organisation.
                      required:
                        - organisationId
                        - dates
                      additionalProperties: false
                required:
                  - organisations
                additionalProperties: false
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/bookings/{bookingId}/cancel:
    post:
      summary: Cancel Booking By ID
      tags:
        - Bookings
      description: Cancel an Appointedd booking that you have access to by it's unique
        identifier.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: bookingId
          required: true
      responses:
        "204":
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties: {}
                additionalProperties: false
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/bookings/{bookingId}/account:
    get:
      summary: Get Account By Booking ID
      tags:
        - Bookings
        - Accounts
      description: Get an Appointedd account that you have access to by a bookings
        unique identifier.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: bookingId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - Account
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          name:
                            type: string
                            minLength: 1
                            maxLength: 4000
                            description: Human readable name for this account.
                          slug:
                            type: string
                            minLength: 1
                            maxLength: 2000
                            description: URL safe representation of the name of this account.
                          coordinates:
                            type: object
                            properties:
                              latitude:
                                type: number
                                minimum: -90
                                maximum: 90
                                description: latitude.
                              longitude:
                                type: number
                                minimum: -180
                                maximum: 180
                                description: longitude.
                            required:
                              - latitude
                              - longitude
                            additionalProperties: false
                            nullable: true
                            description: Coordinates that corresponds to the geographic location of this
                              account.
                          customFields:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                                type:
                                  type: string
                                  enum:
                                    - text
                                    - date
                                required:
                                  type: boolean
                              required:
                                - id
                                - name
                                - type
                                - required
                              additionalProperties: false
                            nullable: true
                            description: Custom fields configured for this account.
                          additionalCustomerBookingStatuses:
                            type: array
                            items:
                              type: object
                              properties:
                                label:
                                  type: string
                                key:
                                  type: string
                              required:
                                - label
                              additionalProperties: false
                            nullable: true
                            description: Additional custom arrival statuses configured for this account.
                          customQuestions:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                type:
                                  type: string
                                  enum:
                                    - text
                                    - checkbox
                                    - dropdown
                                    - terms
                                    - file
                                name:
                                  type: string
                                required:
                                  type: boolean
                                statusType:
                                  type: string
                                  enum:
                                    - online
                                    - internal
                                    - both
                                order:
                                  type: number
                                options:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      value:
                                        type: string
                                      id:
                                        type: string
                                    required:
                                      - value
                                    additionalProperties: false
                                services:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - type
                                - name
                              additionalProperties: false
                            nullable: true
                            description: Custom intake questions configured for this account. Questions may
                              be filtered by service.
                        required:
                          - slug
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          bookings:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Booking
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          customers:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Customer
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          events:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Event
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          resources:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Resource
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          services:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Service
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          saml:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Saml
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/bookings:
    get:
      summary: Get All Bookings
      tags:
        - Bookings
      description: Get a paginated view of all Appointedd bookings you have access to.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[accountIds]
          required: false
          description: Returns any bookings that belong to any of the given account IDs.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[customerIds]
          required: false
          description: Returns any bookings that belong to any of the given customer IDs.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[resourceIds]
          required: false
          description: Returns any bookings that belong to any of the given resource IDs.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[eventIds]
          required: false
          description: Returns any bookings that belong to any of the given event IDs.
        - schema:
            type: array
            items:
              type: string
              minLength: 1
          in: query
          name: filter[payments][externalIds]
          required: false
          description: Returns any bookings that have a payment that references any of the
            given external IDs provided by the payment provider used for the
            payment.
        - schema:
            type: string
            enum:
              - pending
              - confirmed
              - declined
              - cancelled
          in: query
          name: filter[state]
          required: false
          description: Returns any bookings that have a state set to the given value.
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[start][after]
          required: false
          description: Returns any bookings that start after the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[start][before]
          required: false
          description: Returns any bookings that start before the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[end][after]
          required: false
          description: Returns any bookings that end after the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[end][before]
          required: false
          description: Returns any bookings that end before the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[created][after]
          required: false
          description: Returns any bookings that were created after the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[created][before]
          required: false
          description: Returns any bookings that were created before the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[updated][after]
          required: false
          description: Returns any bookings that were updated after the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[updated][before]
          required: false
          description: Returns any bookings that were updated before the given date and
            time (inclusive).
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][resources]
          required: false
          description: Whether to include resources in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][invoices]
          required: false
          description: Whether to include invoice payment data in the attributes.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - Booking
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            bookingId:
                              type: string
                              description: The unique identifier for this booking.
                            created:
                              type: string
                              format: date-time
                              description: ISO 8601 date and time that this booking was created at.
                            bookingPrice:
                              type: number
                              minimum: 0
                              nullable: true
                              description: Total amount that this booking costs. If this is booking is for an
                                event this will the the total price of the vent.
                                It is possible for a booking's price to be
                                changed independently from the customer's price
                                which can cause this value to differ from the
                                value of the `customerPrice` property.
                            customerPrice:
                              type: number
                              minimum: 0
                              description: Total amount that this booking costs for this customer in the
                                currency configured for the account that this
                                booking belongs to.
                            end:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this booking ends
                                at.
                            endWithBuffer:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this booking ends
                                at with the booking's 'after' buffer added if it
                                has one.
                            locale:
                              type: string
                              description: ISO 639 code of the locale of the customer that created this
                                booking.
                            notes:
                              type: string
                              nullable: true
                              description: Free-form text attached to this booking as a note.
                            parts:
                              type: array
                              items:
                                type: object
                                properties:
                                  label:
                                    type: string
                                    minLength: 1
                                    nullable: true
                                    description: Human readable text label for this part of the booking.
                                  start:
                                    type: string
                                    format: date-time
                                    description: ISO 8601 representation of the data and time that this part starts
                                      at.
                                  end:
                                    type: string
                                    format: date-time
                                    description: ISO 8601 representation of the date and time that this part ends
                                      at.
                                required:
                                  - label
                                  - start
                                  - end
                                additionalProperties: false
                              minItems: 1
                              description: One or more parts that are contained by this booking. This is used
                                for multi-part bookings which can have gaps
                                within it's start and end which are considered
                                'free' and not blocked by the booking.
                            payments:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    description: The external reference used to identify the payment within the
                                      payment provider e.g. a Stripe charge id
                                      or an Adyen PSP reference.
                                  provider:
                                    type: string
                                    description: The connected provider the booking payment was processed for.
                                  amount:
                                    type: number
                                    description: The value of the payment that was processed.
                                required:
                                  - id
                                  - provider
                                  - amount
                                additionalProperties: false
                              description: One or more payments that are related to this booking.
                            refunds:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    description: The external reference used to identify the refund within the
                                      payment provider e.g. a Stripe charge id
                                      or an Adyen PSP reference.
                                  provider:
                                    type: string
                                    description: The connected provider the booking refund was processed for.
                                  originalPaymentId:
                                    type: string
                                    description: The id that relates to the original payment being refunded.
                                  amount:
                                    type: number
                                    description: The value of the refund that was processed.
                                  status:
                                    type: string
                                    enum:
                                      - pending
                                      - success
                                      - failed
                                    description: Indicates the status of the refund.
                                  description:
                                    type: string
                                    description: The description / reason for this refund.
                                  refundFailedReason:
                                    type: string
                                    description: The reason this refund failed.
                                required:
                                  - id
                                  - provider
                                  - amount
                                  - description
                                additionalProperties: false
                              description: One or more refunds that are related to this booking.
                            questions:
                              type: array
                              items:
                                anyOf:
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - text
                                      value:
                                        type: string
                                        nullable: true
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a free-form text value as an answer. A value of
                                      `null` indicates an empty answer.
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - dropdown
                                      value:
                                        type: string
                                        maxLength: 100
                                        nullable: true
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a free-form a text value selected from a preset
                                      number of options as an answer. A value of
                                      `null` indicates no selection.
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - checkbox
                                      value:
                                        type: boolean
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a boolean value as an answer.
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - terms
                                      value:
                                        type: boolean
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a boolean value as an answer (terms of
                                      service).
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - file
                                      value:
                                        type: string
                                        minLength: 1
                                        maxLength: 1000
                                        nullable: true
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a file upload as an answer.
                              description: Array of questions that were answered by the customer when creating
                                this booking.
                            rescheduleUrl:
                              type: string
                              format: uri
                              maxLength: 3000
                              nullable: true
                              description: URL that provides a web widget to reschedule this booking.
                            source:
                              type: string
                              maxLength: 200
                              description: Name of the source where this booking was created.
                            spaces:
                              type: number
                              minimum: 1
                              description: Number of spaces that the customer has requested for this booking.
                            start:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this booking
                                starts at.
                            state:
                              type: string
                              enum:
                                - pending
                                - confirmed
                                - declined
                                - cancelled
                              description: State that the booking is currently in.
                            status:
                              type: string
                              description: Status that this booking is currently in.
                              default: No Status
                            startWithBuffer:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this booking
                                starts at with the booking's 'before' buffer
                                subtracted if it has one.
                            timezone:
                              type: string
                              description: IANA name of the time zone that the customer made this booking in.
                                Deprecated time zones are supported but we
                                recommend only using non-deprecated time zone
                                names where possible.
                            updated:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 representation of the date and time that this booking was
                                last updated at. If not set then this booking
                                has never been updated since it's creation.
                          required:
                            - created
                            - bookingPrice
                            - customerPrice
                            - end
                            - endWithBuffer
                            - locale
                            - notes
                            - parts
                            - questions
                            - rescheduleUrl
                            - source
                            - spaces
                            - start
                            - state
                            - startWithBuffer
                            - timezone
                            - updated
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            account:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            customer:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Customer
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            event:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Event
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            resources:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                            service:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Service
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - account
                            - customer
                            - event
                            - resources
                            - service
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/bookings/{bookingId}:
    get:
      summary: Get Booking By ID
      tags:
        - Bookings
      description: Get an Appointedd booking that you have access to by it's unique
        identifier.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: bookingId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - Booking
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          bookingId:
                            type: string
                            description: The unique identifier for this booking.
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 date and time that this booking was created at.
                          bookingPrice:
                            type: number
                            minimum: 0
                            nullable: true
                            description: Total amount that this booking costs. If this is booking is for an
                              event this will the the total price of the vent.
                              It is possible for a booking's price to be changed
                              independently from the customer's price which can
                              cause this value to differ from the value of the
                              `customerPrice` property.
                          customerPrice:
                            type: number
                            minimum: 0
                            description: Total amount that this booking costs for this customer in the
                              currency configured for the account that this
                              booking belongs to.
                          end:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time that this booking ends
                              at.
                          endWithBuffer:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time that this booking ends
                              at with the booking's 'after' buffer added if it
                              has one.
                          locale:
                            type: string
                            description: ISO 639 code of the locale of the customer that created this
                              booking.
                          notes:
                            type: string
                            nullable: true
                            description: Free-form text attached to this booking as a note.
                          parts:
                            type: array
                            items:
                              type: object
                              properties:
                                label:
                                  type: string
                                  minLength: 1
                                  nullable: true
                                  description: Human readable text label for this part of the booking.
                                start:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the data and time that this part starts
                                    at.
                                end:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the date and time that this part ends
                                    at.
                              required:
                                - label
                                - start
                                - end
                              additionalProperties: false
                            minItems: 1
                            description: One or more parts that are contained by this booking. This is used
                              for multi-part bookings which can have gaps within
                              it's start and end which are considered 'free' and
                              not blocked by the booking.
                          payments:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  description: The external reference used to identify the payment within the
                                    payment provider e.g. a Stripe charge id or
                                    an Adyen PSP reference.
                                provider:
                                  type: string
                                  description: The connected provider the booking payment was processed for.
                                amount:
                                  type: number
                                  description: The value of the payment that was processed.
                              required:
                                - id
                                - provider
                                - amount
                              additionalProperties: false
                            description: One or more payments that are related to this booking.
                          refunds:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  description: The external reference used to identify the refund within the
                                    payment provider e.g. a Stripe charge id or
                                    an Adyen PSP reference.
                                provider:
                                  type: string
                                  description: The connected provider the booking refund was processed for.
                                originalPaymentId:
                                  type: string
                                  description: The id that relates to the original payment being refunded.
                                amount:
                                  type: number
                                  description: The value of the refund that was processed.
                                status:
                                  type: string
                                  enum:
                                    - pending
                                    - success
                                    - failed
                                  description: Indicates the status of the refund.
                                description:
                                  type: string
                                  description: The description / reason for this refund.
                                refundFailedReason:
                                  type: string
                                  description: The reason this refund failed.
                              required:
                                - id
                                - provider
                                - amount
                                - description
                              additionalProperties: false
                            description: One or more refunds that are related to this booking.
                          questions:
                            type: array
                            items:
                              anyOf:
                                - type: object
                                  properties:
                                    label:
                                      type: string
                                      minLength: 1
                                      maxLength: 4000
                                      description: Human readable text label for this question
                                    type:
                                      type: string
                                      enum:
                                        - text
                                    value:
                                      type: string
                                      nullable: true
                                  required:
                                    - label
                                    - type
                                    - value
                                  additionalProperties: false
                                  description: Question that takes a free-form text value as an answer. A value of
                                    `null` indicates an empty answer.
                                - type: object
                                  properties:
                                    label:
                                      type: string
                                      minLength: 1
                                      maxLength: 4000
                                      description: Human readable text label for this question
                                    type:
                                      type: string
                                      enum:
                                        - dropdown
                                    value:
                                      type: string
                                      maxLength: 100
                                      nullable: true
                                  required:
                                    - label
                                    - type
                                    - value
                                  additionalProperties: false
                                  description: Question that takes a free-form a text value selected from a preset
                                    number of options as an answer. A value of
                                    `null` indicates no selection.
                                - type: object
                                  properties:
                                    label:
                                      type: string
                                      minLength: 1
                                      maxLength: 4000
                                      description: Human readable text label for this question
                                    type:
                                      type: string
                                      enum:
                                        - checkbox
                                    value:
                                      type: boolean
                                  required:
                                    - label
                                    - type
                                    - value
                                  additionalProperties: false
                                  description: Question that takes a boolean value as an answer.
                                - type: object
                                  properties:
                                    label:
                                      type: string
                                      minLength: 1
                                      maxLength: 4000
                                      description: Human readable text label for this question
                                    type:
                                      type: string
                                      enum:
                                        - terms
                                    value:
                                      type: boolean
                                  required:
                                    - label
                                    - type
                                    - value
                                  additionalProperties: false
                                  description: Question that takes a boolean value as an answer (terms of
                                    service).
                                - type: object
                                  properties:
                                    label:
                                      type: string
                                      minLength: 1
                                      maxLength: 4000
                                      description: Human readable text label for this question
                                    type:
                                      type: string
                                      enum:
                                        - file
                                    value:
                                      type: string
                                      minLength: 1
                                      maxLength: 1000
                                      nullable: true
                                  required:
                                    - label
                                    - type
                                    - value
                                  additionalProperties: false
                                  description: Question that takes a file upload as an answer.
                            description: Array of questions that were answered by the customer when creating
                              this booking.
                          rescheduleUrl:
                            type: string
                            format: uri
                            maxLength: 3000
                            nullable: true
                            description: URL that provides a web widget to reschedule this booking.
                          source:
                            type: string
                            maxLength: 200
                            description: Name of the source where this booking was created.
                          spaces:
                            type: number
                            minimum: 1
                            description: Number of spaces that the customer has requested for this booking.
                          start:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time that this booking
                              starts at.
                          state:
                            type: string
                            enum:
                              - pending
                              - confirmed
                              - declined
                              - cancelled
                            description: State that the booking is currently in.
                          status:
                            type: string
                            description: Status that this booking is currently in.
                            default: No Status
                          startWithBuffer:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time that this booking
                              starts at with the booking's 'before' buffer
                              subtracted if it has one.
                          timezone:
                            type: string
                            description: IANA name of the time zone that the customer made this booking in.
                              Deprecated time zones are supported but we
                              recommend only using non-deprecated time zone
                              names where possible.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this booking was
                              last updated at. If not set then this booking has
                              never been updated since it's creation.
                        required:
                          - created
                          - bookingPrice
                          - customerPrice
                          - end
                          - endWithBuffer
                          - locale
                          - notes
                          - parts
                          - questions
                          - rescheduleUrl
                          - source
                          - spaces
                          - start
                          - state
                          - startWithBuffer
                          - timezone
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          customer:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Customer
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          event:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Event
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          resources:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Resource
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          service:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Service
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                          - customer
                          - event
                          - resources
                          - service
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/bookings/{bookingId}/customer:
    get:
      summary: Get Customer By Booking ID
      tags:
        - Bookings
        - Customers
      description: Get an Appointedd customer that you have access to by a bookings
        unique identifier.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: bookingId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - Customer
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the data and time that this customer was
                              created at.
                          customFields:
                            type: object
                            additionalProperties:
                              anyOf:
                                - type: string
                                - type: string
                                  format: date-time
                              description: Value of this custom field for this customer.
                            description: Object containing custom fields that are set on this customer.
                          email:
                            type: string
                            nullable: true
                            description: Email address for this customer.
                          ccEmails:
                            type: array
                            items:
                              type: string
                            nullable: true
                            description: "If customer CC email addresses (max 2) are provided all customer
                              email comms will be cc'd to these addresses: Note
                              this is a paid for enterprise only feature."
                          mobile:
                            type: object
                            properties:
                              number:
                                type: string
                                minLength: 1
                                maxLength: 50
                                description: Mobile number for this customer.
                              countryCode:
                                type: string
                                minLength: 1
                                maxLength: 50
                                nullable: true
                                description: Country code for this mobile number if it contains one, otherwise
                                  `null` if it does not or the mobile number is
                                  invalid.
                            required:
                              - number
                            additionalProperties: false
                            nullable: true
                            description: Object containing mobile information for this customer.
                          marketingOptIn:
                            type: boolean
                            description: Indicates if the customer has subscribed to receive marketing
                              communications.
                          firstname:
                            type: string
                            minLength: 1
                            description: First name of this customer.
                          lastname:
                            type: string
                            minLength: 1
                            description: Last name of this customer.
                          tags:
                            type: array
                            items:
                              type: string
                            description: One or more tags that have been assigned to this customer.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this customer was
                              last updated at. If not set then this customer has
                              never been updated since it's creation.
                        required:
                          - created
                          - marketingOptIn
                          - firstname
                          - lastname
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          bookings:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Booking
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                          - bookings
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/calendar/external-events:
    get:
      summary: Get All External Events
      tags:
        - Calendar
      description: Get a paginated view of all external calendar events from connected
        calendar systems.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[accountIds]
          required: false
          description: Returns any calendar events that belong to any of the given account
            IDs.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[resourceIds]
          required: false
          description: Returns any calendar events that belong to any of the given
            resource IDs (bookable_id).
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[customerIds]
          required: false
          description: Returns any booking events that belong to any of the given customer
            IDs. Only applies to booking events.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[eventIds]
          required: false
          description: Returns any booking events that match the given event IDs (booking
            _id). Only applies to booking events.
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[start][after]
          required: false
          description: Returns any calendar events that start after the given date and
            time (inclusive). Uses UTC timezone.
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[start][before]
          required: false
          description: Returns any calendar events that start before the given date and
            time (inclusive). Uses UTC timezone.
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[end][after]
          required: false
          description: Returns any calendar events that end after the given date and time
            (inclusive). Uses UTC timezone.
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[end][before]
          required: false
          description: Returns any calendar events that end before the given date and time
            (inclusive). Uses UTC timezone.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - ExternalEvent
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            allDay:
                              type: boolean
                              description: Whether this is an all-day event.
                            resourceId:
                              type: string
                              description: ID of the resource this external event is associated with.
                            calendarId:
                              type: string
                              description: Calendar ID from the external calendar system.
                            created:
                              type: string
                              format: date-time
                              description: ISO 8601 date and time that this external event was created at.
                            createdInCalendar:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 date and time when this external event was created in the
                                calendar.
                            cronofyData:
                              type: object
                              properties:
                                calendarId:
                                  type: string
                                eventUid:
                                  type: string
                                summary:
                                  type: string
                                description:
                                  type: string
                                start:
                                  type: string
                                end:
                                  type: string
                                deleted:
                                  type: boolean
                                created:
                                  type: string
                                updated:
                                  type: string
                                eventPrivate:
                                  type: boolean
                                meetingUrl:
                                  type: string
                                participationStatus:
                                  type: string
                                attendees:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      email:
                                        type: string
                                      displayName:
                                        type: string
                                        nullable: true
                                      status:
                                        type: string
                                    required:
                                      - email
                                      - status
                                    additionalProperties: false
                                organizer:
                                  type: object
                                  properties:
                                    email:
                                      type: string
                                    displayName:
                                      type: string
                                      nullable: true
                                  required:
                                    - email
                                  additionalProperties: false
                                transparency:
                                  type: string
                                extendedTransparency:
                                  type: string
                                status:
                                  type: string
                                categories:
                                  type: array
                                  items:
                                    type: string
                                recurring:
                                  type: boolean
                                seriesIdentifier:
                                  type: string
                                options:
                                  type: object
                                  properties:
                                    delete:
                                      type: boolean
                                    update:
                                      type: boolean
                                    changeParticipationStatus:
                                      type: boolean
                                  required:
                                    - delete
                                    - update
                                    - changeParticipationStatus
                                  additionalProperties: false
                              required:
                                - calendarId
                                - eventUid
                                - summary
                                - start
                                - end
                                - deleted
                                - created
                                - updated
                                - eventPrivate
                                - participationStatus
                                - transparency
                                - extendedTransparency
                                - status
                                - categories
                                - recurring
                                - options
                              additionalProperties: false
                              nullable: true
                              description: Raw data from the external calendar provider (e.g., Cronofy).
                            deleted:
                              type: boolean
                              description: Whether this external event has been deleted.
                            end:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this external
                                event ends at.
                            eventUid:
                              type: string
                              description: Unique event identifier from the external calendar system.
                            id:
                              type: number
                              description: Legacy ID field for backwards compatibility.
                            start:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this external
                                event starts at.
                            summary:
                              type: string
                              description: Summary/title of the external event.
                            transparency:
                              type: string
                              description: Transparency setting for the event (opaque/transparent).
                            updatedInCalendar:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 date and time when this external event was last updated in
                                the calendar.
                          required:
                            - allDay
                            - resourceId
                            - calendarId
                            - created
                            - deleted
                            - end
                            - eventUid
                            - start
                            - summary
                            - transparency
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            account:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - account
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
  /v2/customers:
    post:
      summary: Create Customer
      tags:
        - Customers
      description: Create a new customer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                attributes:
                  type: object
                  properties:
                    customFields:
                      type: object
                      additionalProperties:
                        anyOf:
                          - type: string
                          - type: string
                            format: date-time
                        description: Value of this custom field for this customer.
                      description: Object containing custom fields that are set on this customer.
                    ccEmails:
                      type: array
                      items:
                        type: string
                      maxItems: 2
                      nullable: true
                    marketingOptIn:
                      type: boolean
                      description: Indicates if the customer has subscribed to receive marketing
                        communications.
                    firstname:
                      type: string
                      minLength: 1
                      description: First name of this customer.
                    lastname:
                      type: string
                      minLength: 1
                      description: Last name of this customer.
                    tags:
                      type: array
                      items:
                        type: string
                        minLength: 1
                      description: One or more tags that have been assigned to this customer. Tags
                        cannot be empty.
                    mobile:
                      type: object
                      properties:
                        number:
                          type: string
                          minLength: 1
                          maxLength: 50
                          description: Mobile number for this customer.
                        countryCode:
                          type: string
                          minLength: 1
                          maxLength: 50
                          nullable: true
                          description: Country code for this mobile number if it contains one, otherwise
                            `null` if it does not or the mobile number is
                            invalid.
                      required:
                        - number
                      additionalProperties: false
                      nullable: true
                      description: Object containing mobile information for this customer.
                    email:
                      type: string
                      nullable: true
                      description: Email address for this customer.
                  required:
                    - marketingOptIn
                    - firstname
                    - lastname
                  additionalProperties: false
                relationships:
                  type: object
                  properties:
                    account:
                      type: object
                      properties:
                        data:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - Account
                            id:
                              type: string
                              pattern: ^[a-f\d]{24}$
                              description: Unique identifier of the related account the customer should be
                                stored on.
                          required:
                            - type
                            - id
                          additionalProperties: false
                      required:
                        - data
                      additionalProperties: false
                  required:
                    - account
                  additionalProperties: false
              required:
                - attributes
                - relationships
              additionalProperties: false
        required: true
      security: []
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - Customer
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the data and time that this customer was
                              created at.
                          customFields:
                            type: object
                            additionalProperties:
                              anyOf:
                                - type: string
                                - type: string
                                  format: date-time
                              description: Value of this custom field for this customer.
                            description: Object containing custom fields that are set on this customer.
                          email:
                            type: string
                            nullable: true
                            description: Email address for this customer.
                          ccEmails:
                            type: array
                            items:
                              type: string
                            nullable: true
                            description: "If customer CC email addresses (max 2) are provided all customer
                              email comms will be cc'd to these addresses: Note
                              this is a paid for enterprise only feature."
                          mobile:
                            type: object
                            properties:
                              number:
                                type: string
                                minLength: 1
                                maxLength: 50
                                description: Mobile number for this customer.
                              countryCode:
                                type: string
                                minLength: 1
                                maxLength: 50
                                nullable: true
                                description: Country code for this mobile number if it contains one, otherwise
                                  `null` if it does not or the mobile number is
                                  invalid.
                            required:
                              - number
                            additionalProperties: false
                            nullable: true
                            description: Object containing mobile information for this customer.
                          marketingOptIn:
                            type: boolean
                            description: Indicates if the customer has subscribed to receive marketing
                              communications.
                          firstname:
                            type: string
                            minLength: 1
                            description: First name of this customer.
                          lastname:
                            type: string
                            minLength: 1
                            description: Last name of this customer.
                          tags:
                            type: array
                            items:
                              type: string
                            description: One or more tags that have been assigned to this customer.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this customer was
                              last updated at. If not set then this customer has
                              never been updated since it's creation.
                        required:
                          - created
                          - marketingOptIn
                          - firstname
                          - lastname
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          bookings:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Booking
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                          - bookings
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "409":
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 409
                  error:
                    type: string
                    enum:
                      - Conflict
                  message:
                    type: string
                  metadata:
                    type: object
                    additionalProperties: {}
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Conflict
        "422":
          description: Unprocessable Content
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 422
                  error:
                    type: string
                    enum:
                      - Unprocessable Content
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unprocessable Content
    get:
      summary: Get All Customers
      tags:
        - Customers
      description: Get a paginated view of all Appointedd customers you have access to.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[accountIds]
          required: false
          description: Returns any customers that belong to any of the given account IDs.
        - schema:
            type: string
            minLength: 1
            maxLength: 2000
          in: query
          name: filter[query]
          required: false
          description: Returns any customers that match the given search term across
            email, first name, and last name fields.
        - schema:
            type: string
            minLength: 1
            maxLength: 2000
          in: query
          name: filter[email]
          required: false
          description: Returns any customers with the exact given email address.
        - schema:
            type: string
            minLength: 1
            maxLength: 2000
          in: query
          name: filter[email][matches]
          required: false
          description: Returns any customers that match the partial given email address.
        - schema:
            type: string
            minLength: 1
            maxLength: 2000
          in: query
          name: filter[firstname]
          required: false
          description: Returns any customers with the exact given first name.
        - schema:
            type: string
            minLength: 1
            maxLength: 2000
          in: query
          name: filter[firstname][matches]
          required: false
          description: Returns any customers that match the partial given first name.
        - schema:
            type: string
            minLength: 1
            maxLength: 2000
          in: query
          name: filter[lastname]
          required: false
          description: Returns any customers with the exact given last name.
        - schema:
            type: string
            minLength: 1
            maxLength: 2000
          in: query
          name: filter[lastname][matches]
          required: false
          description: Returns any customers that match the partial given last name.
        - schema:
            type: string
            minLength: 1
            maxLength: 2000
          in: query
          name: filter[mobile]
          required: false
          description: Returns any customers with the exact given mobile phone number.
        - schema:
            type: array
            items:
              type: string
              minLength: 1
              maxLength: 2000
          in: query
          name: filter[tags][all]
          required: false
          description: Returns any customers that have been tagged with all the given tags.
        - schema:
            type: array
            items:
              type: string
              minLength: 1
              maxLength: 2000
          in: query
          name: filter[tags][any]
          required: false
          description: Returns any customers that have been tagged with any of the given
            tags.
        - schema:
            type: string
          in: query
          name: filter[updatedSince]
          required: false
          description: Returns any customers that have been updated (or created if they
            have not been modified) after this date
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - Customer
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            created:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the data and time that this customer was
                                created at.
                            customFields:
                              type: object
                              additionalProperties:
                                anyOf:
                                  - type: string
                                  - type: string
                                    format: date-time
                                description: Value of this custom field for this customer.
                              description: Object containing custom fields that are set on this customer.
                            email:
                              type: string
                              nullable: true
                              description: Email address for this customer.
                            ccEmails:
                              type: array
                              items:
                                type: string
                              nullable: true
                              description: "If customer CC email addresses (max 2) are provided all customer
                                email comms will be cc'd to these addresses:
                                Note this is a paid for enterprise only
                                feature."
                            mobile:
                              type: object
                              properties:
                                number:
                                  type: string
                                  minLength: 1
                                  maxLength: 50
                                  description: Mobile number for this customer.
                                countryCode:
                                  type: string
                                  minLength: 1
                                  maxLength: 50
                                  nullable: true
                                  description: Country code for this mobile number if it contains one, otherwise
                                    `null` if it does not or the mobile number
                                    is invalid.
                              required:
                                - number
                              additionalProperties: false
                              nullable: true
                              description: Object containing mobile information for this customer.
                            marketingOptIn:
                              type: boolean
                              description: Indicates if the customer has subscribed to receive marketing
                                communications.
                            firstname:
                              type: string
                              minLength: 1
                              description: First name of this customer.
                            lastname:
                              type: string
                              minLength: 1
                              description: Last name of this customer.
                            tags:
                              type: array
                              items:
                                type: string
                              description: One or more tags that have been assigned to this customer.
                            updated:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 representation of the date and time that this customer was
                                last updated at. If not set then this customer
                                has never been updated since it's creation.
                          required:
                            - created
                            - marketingOptIn
                            - firstname
                            - lastname
                            - updated
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            account:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            bookings:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Booking
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - account
                            - bookings
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/customers/{customerId}:
    delete:
      summary: Delete Customer By ID
      tags:
        - Customers
      description: Delete a customer using a valid customer Id
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: customerId
          required: true
      security: []
      responses:
        "204":
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties: {}
                additionalProperties: false
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
    get:
      summary: Get Customer By ID
      tags:
        - Customers
      description: Get an Appointedd customer that you have access to by it's unique
        identifier.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: customerId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - Customer
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the data and time that this customer was
                              created at.
                          customFields:
                            type: object
                            additionalProperties:
                              anyOf:
                                - type: string
                                - type: string
                                  format: date-time
                              description: Value of this custom field for this customer.
                            description: Object containing custom fields that are set on this customer.
                          email:
                            type: string
                            nullable: true
                            description: Email address for this customer.
                          ccEmails:
                            type: array
                            items:
                              type: string
                            nullable: true
                            description: "If customer CC email addresses (max 2) are provided all customer
                              email comms will be cc'd to these addresses: Note
                              this is a paid for enterprise only feature."
                          mobile:
                            type: object
                            properties:
                              number:
                                type: string
                                minLength: 1
                                maxLength: 50
                                description: Mobile number for this customer.
                              countryCode:
                                type: string
                                minLength: 1
                                maxLength: 50
                                nullable: true
                                description: Country code for this mobile number if it contains one, otherwise
                                  `null` if it does not or the mobile number is
                                  invalid.
                            required:
                              - number
                            additionalProperties: false
                            nullable: true
                            description: Object containing mobile information for this customer.
                          marketingOptIn:
                            type: boolean
                            description: Indicates if the customer has subscribed to receive marketing
                              communications.
                          firstname:
                            type: string
                            minLength: 1
                            description: First name of this customer.
                          lastname:
                            type: string
                            minLength: 1
                            description: Last name of this customer.
                          tags:
                            type: array
                            items:
                              type: string
                            description: One or more tags that have been assigned to this customer.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this customer was
                              last updated at. If not set then this customer has
                              never been updated since it's creation.
                        required:
                          - created
                          - marketingOptIn
                          - firstname
                          - lastname
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          bookings:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Booking
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                          - bookings
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
    patch:
      summary: Update Customer By ID
      tags:
        - Customers
      description: Update an existing customer using a valid customer Id
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                attributes:
                  type: object
                  properties:
                    customFields:
                      type: object
                      additionalProperties:
                        anyOf:
                          - type: string
                          - type: string
                            format: date-time
                        description: Value of this custom field for this customer.
                      description: Object containing custom fields that are set on this customer.
                    ccEmails:
                      type: array
                      items:
                        type: string
                      maxItems: 2
                      nullable: true
                    marketingOptIn:
                      type: boolean
                      description: Indicates if the customer has subscribed to receive marketing
                        communications.
                    firstname:
                      type: string
                      minLength: 1
                      description: First name of this customer.
                    lastname:
                      type: string
                      minLength: 1
                      description: Last name of this customer.
                    tags:
                      type: array
                      items:
                        type: string
                        minLength: 1
                      description: One or more tags that have been assigned to this customer. Tags
                        cannot be empty.
                    mobile:
                      type: object
                      properties:
                        number:
                          type: string
                          minLength: 1
                          maxLength: 50
                          description: Mobile number for this customer.
                        countryCode:
                          type: string
                          minLength: 1
                          maxLength: 50
                          nullable: true
                          description: Country code for this mobile number if it contains one, otherwise
                            `null` if it does not or the mobile number is
                            invalid.
                      required:
                        - number
                      additionalProperties: false
                      nullable: true
                      description: Object containing mobile information for this customer.
                    email:
                      type: string
                      nullable: true
                      description: Email address for this customer.
                  additionalProperties: false
              required:
                - attributes
              additionalProperties: false
        required: true
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: customerId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - Customer
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the data and time that this customer was
                              created at.
                          customFields:
                            type: object
                            additionalProperties:
                              anyOf:
                                - type: string
                                - type: string
                                  format: date-time
                              description: Value of this custom field for this customer.
                            description: Object containing custom fields that are set on this customer.
                          email:
                            type: string
                            nullable: true
                            description: Email address for this customer.
                          ccEmails:
                            type: array
                            items:
                              type: string
                            nullable: true
                            description: "If customer CC email addresses (max 2) are provided all customer
                              email comms will be cc'd to these addresses: Note
                              this is a paid for enterprise only feature."
                          mobile:
                            type: object
                            properties:
                              number:
                                type: string
                                minLength: 1
                                maxLength: 50
                                description: Mobile number for this customer.
                              countryCode:
                                type: string
                                minLength: 1
                                maxLength: 50
                                nullable: true
                                description: Country code for this mobile number if it contains one, otherwise
                                  `null` if it does not or the mobile number is
                                  invalid.
                            required:
                              - number
                            additionalProperties: false
                            nullable: true
                            description: Object containing mobile information for this customer.
                          marketingOptIn:
                            type: boolean
                            description: Indicates if the customer has subscribed to receive marketing
                              communications.
                          firstname:
                            type: string
                            minLength: 1
                            description: First name of this customer.
                          lastname:
                            type: string
                            minLength: 1
                            description: Last name of this customer.
                          tags:
                            type: array
                            items:
                              type: string
                            description: One or more tags that have been assigned to this customer.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this customer was
                              last updated at. If not set then this customer has
                              never been updated since it's creation.
                        required:
                          - created
                          - marketingOptIn
                          - firstname
                          - lastname
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          bookings:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Booking
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                          - bookings
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "409":
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 409
                  error:
                    type: string
                    enum:
                      - Conflict
                  message:
                    type: string
                  metadata:
                    type: object
                    additionalProperties: {}
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Conflict
        "422":
          description: Unprocessable Content
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 422
                  error:
                    type: string
                    enum:
                      - Unprocessable Content
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unprocessable Content
  /v2/customers/{customerId}/account:
    get:
      summary: Get Account By Customer ID
      tags:
        - Customers
        - Accounts
      description: Get an Appointedd account that you have access to by a customers
        unique identifier.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: customerId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - Account
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          name:
                            type: string
                            minLength: 1
                            maxLength: 4000
                            description: Human readable name for this account.
                          slug:
                            type: string
                            minLength: 1
                            maxLength: 2000
                            description: URL safe representation of the name of this account.
                          coordinates:
                            type: object
                            properties:
                              latitude:
                                type: number
                                minimum: -90
                                maximum: 90
                                description: latitude.
                              longitude:
                                type: number
                                minimum: -180
                                maximum: 180
                                description: longitude.
                            required:
                              - latitude
                              - longitude
                            additionalProperties: false
                            nullable: true
                            description: Coordinates that corresponds to the geographic location of this
                              account.
                          customFields:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                                type:
                                  type: string
                                  enum:
                                    - text
                                    - date
                                required:
                                  type: boolean
                              required:
                                - id
                                - name
                                - type
                                - required
                              additionalProperties: false
                            nullable: true
                            description: Custom fields configured for this account.
                          additionalCustomerBookingStatuses:
                            type: array
                            items:
                              type: object
                              properties:
                                label:
                                  type: string
                                key:
                                  type: string
                              required:
                                - label
                              additionalProperties: false
                            nullable: true
                            description: Additional custom arrival statuses configured for this account.
                          customQuestions:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                type:
                                  type: string
                                  enum:
                                    - text
                                    - checkbox
                                    - dropdown
                                    - terms
                                    - file
                                name:
                                  type: string
                                required:
                                  type: boolean
                                statusType:
                                  type: string
                                  enum:
                                    - online
                                    - internal
                                    - both
                                order:
                                  type: number
                                options:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      value:
                                        type: string
                                      id:
                                        type: string
                                    required:
                                      - value
                                    additionalProperties: false
                                services:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - type
                                - name
                              additionalProperties: false
                            nullable: true
                            description: Custom intake questions configured for this account. Questions may
                              be filtered by service.
                        required:
                          - slug
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          bookings:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Booking
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          customers:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Customer
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          events:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Event
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          resources:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Resource
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          services:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Service
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          saml:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Saml
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/customers/{customerId}/bookings:
    get:
      summary: Get All Bookings By Customer ID
      tags:
        - Customers
        - Bookings
      description: Get a paginated view of all Appointedd bookings made by a customer
        with a specific ID.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[accountIds]
          required: false
          description: Returns any bookings that belong to any of the given account IDs.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[customerIds]
          required: false
          description: Returns any bookings that belong to any of the given customer IDs.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[resourceIds]
          required: false
          description: Returns any bookings that belong to any of the given resource IDs.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[eventIds]
          required: false
          description: Returns any bookings that belong to any of the given event IDs.
        - schema:
            type: array
            items:
              type: string
              minLength: 1
          in: query
          name: filter[payments][externalIds]
          required: false
          description: Returns any bookings that have a payment that references any of the
            given external IDs provided by the payment provider used for the
            payment.
        - schema:
            type: string
            enum:
              - pending
              - confirmed
              - declined
              - cancelled
          in: query
          name: filter[state]
          required: false
          description: Returns any bookings that have a state set to the given value.
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[start][after]
          required: false
          description: Returns any bookings that start after the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[start][before]
          required: false
          description: Returns any bookings that start before the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[end][after]
          required: false
          description: Returns any bookings that end after the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[end][before]
          required: false
          description: Returns any bookings that end before the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[created][after]
          required: false
          description: Returns any bookings that were created after the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[created][before]
          required: false
          description: Returns any bookings that were created before the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[updated][after]
          required: false
          description: Returns any bookings that were updated after the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[updated][before]
          required: false
          description: Returns any bookings that were updated before the given date and
            time (inclusive).
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][resources]
          required: false
          description: Whether to include resources in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][invoices]
          required: false
          description: Whether to include invoice payment data in the attributes.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: customerId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - Booking
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            bookingId:
                              type: string
                              description: The unique identifier for this booking.
                            created:
                              type: string
                              format: date-time
                              description: ISO 8601 date and time that this booking was created at.
                            bookingPrice:
                              type: number
                              minimum: 0
                              nullable: true
                              description: Total amount that this booking costs. If this is booking is for an
                                event this will the the total price of the vent.
                                It is possible for a booking's price to be
                                changed independently from the customer's price
                                which can cause this value to differ from the
                                value of the `customerPrice` property.
                            customerPrice:
                              type: number
                              minimum: 0
                              description: Total amount that this booking costs for this customer in the
                                currency configured for the account that this
                                booking belongs to.
                            end:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this booking ends
                                at.
                            endWithBuffer:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this booking ends
                                at with the booking's 'after' buffer added if it
                                has one.
                            locale:
                              type: string
                              description: ISO 639 code of the locale of the customer that created this
                                booking.
                            notes:
                              type: string
                              nullable: true
                              description: Free-form text attached to this booking as a note.
                            parts:
                              type: array
                              items:
                                type: object
                                properties:
                                  label:
                                    type: string
                                    minLength: 1
                                    nullable: true
                                    description: Human readable text label for this part of the booking.
                                  start:
                                    type: string
                                    format: date-time
                                    description: ISO 8601 representation of the data and time that this part starts
                                      at.
                                  end:
                                    type: string
                                    format: date-time
                                    description: ISO 8601 representation of the date and time that this part ends
                                      at.
                                required:
                                  - label
                                  - start
                                  - end
                                additionalProperties: false
                              minItems: 1
                              description: One or more parts that are contained by this booking. This is used
                                for multi-part bookings which can have gaps
                                within it's start and end which are considered
                                'free' and not blocked by the booking.
                            payments:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    description: The external reference used to identify the payment within the
                                      payment provider e.g. a Stripe charge id
                                      or an Adyen PSP reference.
                                  provider:
                                    type: string
                                    description: The connected provider the booking payment was processed for.
                                  amount:
                                    type: number
                                    description: The value of the payment that was processed.
                                required:
                                  - id
                                  - provider
                                  - amount
                                additionalProperties: false
                              description: One or more payments that are related to this booking.
                            refunds:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    description: The external reference used to identify the refund within the
                                      payment provider e.g. a Stripe charge id
                                      or an Adyen PSP reference.
                                  provider:
                                    type: string
                                    description: The connected provider the booking refund was processed for.
                                  originalPaymentId:
                                    type: string
                                    description: The id that relates to the original payment being refunded.
                                  amount:
                                    type: number
                                    description: The value of the refund that was processed.
                                  status:
                                    type: string
                                    enum:
                                      - pending
                                      - success
                                      - failed
                                    description: Indicates the status of the refund.
                                  description:
                                    type: string
                                    description: The description / reason for this refund.
                                  refundFailedReason:
                                    type: string
                                    description: The reason this refund failed.
                                required:
                                  - id
                                  - provider
                                  - amount
                                  - description
                                additionalProperties: false
                              description: One or more refunds that are related to this booking.
                            questions:
                              type: array
                              items:
                                anyOf:
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - text
                                      value:
                                        type: string
                                        nullable: true
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a free-form text value as an answer. A value of
                                      `null` indicates an empty answer.
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - dropdown
                                      value:
                                        type: string
                                        maxLength: 100
                                        nullable: true
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a free-form a text value selected from a preset
                                      number of options as an answer. A value of
                                      `null` indicates no selection.
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - checkbox
                                      value:
                                        type: boolean
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a boolean value as an answer.
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - terms
                                      value:
                                        type: boolean
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a boolean value as an answer (terms of
                                      service).
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - file
                                      value:
                                        type: string
                                        minLength: 1
                                        maxLength: 1000
                                        nullable: true
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a file upload as an answer.
                              description: Array of questions that were answered by the customer when creating
                                this booking.
                            rescheduleUrl:
                              type: string
                              format: uri
                              maxLength: 3000
                              nullable: true
                              description: URL that provides a web widget to reschedule this booking.
                            source:
                              type: string
                              maxLength: 200
                              description: Name of the source where this booking was created.
                            spaces:
                              type: number
                              minimum: 1
                              description: Number of spaces that the customer has requested for this booking.
                            start:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this booking
                                starts at.
                            state:
                              type: string
                              enum:
                                - pending
                                - confirmed
                                - declined
                                - cancelled
                              description: State that the booking is currently in.
                            status:
                              type: string
                              description: Status that this booking is currently in.
                              default: No Status
                            startWithBuffer:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this booking
                                starts at with the booking's 'before' buffer
                                subtracted if it has one.
                            timezone:
                              type: string
                              description: IANA name of the time zone that the customer made this booking in.
                                Deprecated time zones are supported but we
                                recommend only using non-deprecated time zone
                                names where possible.
                            updated:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 representation of the date and time that this booking was
                                last updated at. If not set then this booking
                                has never been updated since it's creation.
                          required:
                            - created
                            - bookingPrice
                            - customerPrice
                            - end
                            - endWithBuffer
                            - locale
                            - notes
                            - parts
                            - questions
                            - rescheduleUrl
                            - source
                            - spaces
                            - start
                            - state
                            - startWithBuffer
                            - timezone
                            - updated
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            account:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            customer:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Customer
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            event:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Event
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            resources:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                            service:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Service
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - account
                            - customer
                            - event
                            - resources
                            - service
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/customers/{customerId}/sent-emails:
    get:
      summary: Get Sent Emails By Customer ID
      tags:
        - Customers
        - Emails
      description: Get a paginated view of Appointedd emails sent to a customer with a
        specific ID.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[bookingIds]
          required: false
          description: Filter sent emails by booking IDs
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: customerId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - SentEmail
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            subject:
                              type: string
                              description: Subject of the email.
                            content:
                              type: string
                              description: Content of the email.
                            to:
                              type: array
                              items:
                                type: string
                              minItems: 1
                              description: Recipients of the email.
                            from:
                              type: string
                              description: Sender of the email.
                            customerId:
                              type: string
                              description: Unique identifier of the customer this email is associated with
                            organisationId:
                              type: string
                              description: Unique identifier of the organisation this email is associated with
                            bookingId:
                              type: string
                              description: Unique identifier of the booking this email is associated with
                            sentTime:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this email was
                                sent at.
                          required:
                            - content
                            - to
                            - from
                            - sentTime
                          additionalProperties: false
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/customers/{customerId}/sent-sms:
    get:
      summary: Get Sent SMS By Customer ID
      tags:
        - Customers
        - SMS
      description: Get a paginated view of Appointedd SMS sent to a customer with a
        specific ID.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[bookingIds]
          required: false
          description: Filter sent SMS by booking IDs
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: customerId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - SentSms
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            content:
                              type: string
                              description: Content of the SMS.
                            to:
                              type: string
                              description: Recipient of the SMS.
                            from:
                              type: string
                              description: Sender of the SMS.
                            customerId:
                              type: string
                              description: Unique identifier of the customer this SMS is associated with
                            organisationId:
                              type: string
                              description: Unique identifier of the organisation this SMS is associated with
                            bookingId:
                              type: string
                              description: Unique identifier of the booking this SMS is associated with
                            sentTime:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this SMS was sent
                                at.
                          required:
                            - content
                            - to
                            - from
                            - sentTime
                          additionalProperties: false
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/customers/groups:
    post:
      summary: Create a Customer Group
      tags:
        - CustomerGroups
      description: Create a new customer group
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - CustomerGroup
                  description: Unique name for all documents that belong to this type.
                attributes:
                  type: object
                  properties:
                    name:
                      type: string
                      minLength: 1
                      description: Human readable identifier for this customer group.
                    description:
                      type: string
                      nullable: true
                      description: An optional description of this customer group.
                    colour:
                      type: string
                      nullable: true
                      description: An optional colour associated with this customer group.
                  required:
                    - name
                  additionalProperties: false
                relationships:
                  type: object
                  properties:
                    customers:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            related:
                              type: string
                              format: uri
                              description: URI for accessing a page containing documents belonging to this
                                relationship with attribute data included.
                            next:
                              type: string
                              format: uri
                              nullable: true
                              description: URI for accessing the next page (relative to this page) for this
                                relationship. If this is the last page this will
                                be set to `null` to indicate there are no pages
                                after this page.
                            prev:
                              type: string
                              format: uri
                              nullable: true
                              description: URI for accessing the previous page (relative to this page) for
                                this relationship. If this is the first page
                                this will be set to `null` to indicate there are
                                no pages before this page.
                          required:
                            - related
                            - next
                            - prev
                          additionalProperties: false
                          description: Links for this relationship page.
                        data:
                          type: array
                          items:
                            type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - Customer
                              id:
                                type: string
                                pattern: ^[a-f\d]{24}$
                                description: Unique identifier that identifies a document
                            required:
                              - type
                              - id
                            additionalProperties: false
                          minItems: 1
                        meta:
                          type: object
                          properties:
                            total:
                              type: number
                              minimum: 0
                              description: Total number of documents across all pages in this relationship.
                          required:
                            - total
                          additionalProperties: false
                      required:
                        - data
                        - meta
                      additionalProperties: false
                  required:
                    - customers
                  additionalProperties: false
              required:
                - type
                - attributes
                - relationships
              additionalProperties: false
        required: true
      responses:
        "201":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - CustomerGroup
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          name:
                            type: string
                            minLength: 1
                            description: Human readable identifier for this customer group.
                          description:
                            type: string
                            nullable: true
                            description: An optional description of this customer group.
                          colour:
                            type: string
                            nullable: true
                            description: An optional colour associated with this customer group.
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time that this customer
                              group was created at.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this customer
                              group was last updated at. If not set then this
                              customer group has never been updated since its
                              creation.
                        required:
                          - name
                          - created
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          customers:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Customer
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                  canManageAllCustomers:
                                    type: boolean
                                    description: Whether the requesting user has write access to every customer
                                      currently in this group. Can be used by
                                      clients to conditionally show edit
                                      controls.
                                required:
                                  - total
                                  - canManageAllCustomers
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - customers
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
        "409":
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 409
                  error:
                    type: string
                    enum:
                      - Conflict
                  message:
                    type: string
                  metadata:
                    type: object
                    additionalProperties: {}
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Conflict
    get:
      summary: Get All Customer Groups
      tags:
        - CustomerGroups
      description: Get a paginated view of all Appointedd Customer Groups you have
        access to.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - CustomerGroup
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            name:
                              type: string
                              minLength: 1
                              description: Human readable identifier for this customer group.
                            description:
                              type: string
                              nullable: true
                              description: An optional description of this customer group.
                            colour:
                              type: string
                              nullable: true
                              description: An optional colour associated with this customer group.
                            created:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this customer
                                group was created at.
                            updated:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 representation of the date and time that this customer
                                group was last updated at. If not set then this
                                customer group has never been updated since its
                                creation.
                          required:
                            - name
                            - created
                            - updated
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            customers:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Customer
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                    canManageAllCustomers:
                                      type: boolean
                                      description: Whether the requesting user has write access to every customer
                                        currently in this group. Can be used by
                                        clients to conditionally show edit
                                        controls.
                                  required:
                                    - total
                                    - canManageAllCustomers
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - customers
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/customers/groups/{customerGroupId}:
    delete:
      summary: Delete Customer Group by id
      tags:
        - CustomerGroups
      description: Delete a single Customer Group.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: customerGroupId
          required: true
      responses:
        "204":
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties: {}
                additionalProperties: false
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
    get:
      summary: Get Customer Group by id
      tags:
        - CustomerGroups
      description: Get a single Customer Group.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: customerGroupId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - CustomerGroup
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          name:
                            type: string
                            minLength: 1
                            description: Human readable identifier for this customer group.
                          description:
                            type: string
                            nullable: true
                            description: An optional description of this customer group.
                          colour:
                            type: string
                            nullable: true
                            description: An optional colour associated with this customer group.
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time that this customer
                              group was created at.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this customer
                              group was last updated at. If not set then this
                              customer group has never been updated since its
                              creation.
                        required:
                          - name
                          - created
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          customers:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Customer
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                  canManageAllCustomers:
                                    type: boolean
                                    description: Whether the requesting user has write access to every customer
                                      currently in this group. Can be used by
                                      clients to conditionally show edit
                                      controls.
                                required:
                                  - total
                                  - canManageAllCustomers
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - customers
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
    patch:
      summary: Update Customer Group
      tags:
        - CustomerGroups
      description: Update an existing customer group by its unique ID
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - CustomerGroup
                  description: Unique name for all documents that belong to this type.
                attributes:
                  type: object
                  properties:
                    name:
                      type: string
                      minLength: 1
                      description: Human readable identifier for this customer group.
                    description:
                      type: string
                      nullable: true
                      description: An optional description of this customer group.
                    colour:
                      type: string
                      nullable: true
                      description: An optional colour associated with this customer group.
                  additionalProperties: false
                relationships:
                  type: object
                  properties:
                    customers:
                      type: object
                      properties:
                        add:
                          type: object
                          properties:
                            data:
                              type: array
                              items:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Customer
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier that identifies a document
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                          required:
                            - data
                          additionalProperties: false
                        remove:
                          type: object
                          properties:
                            data:
                              type: array
                              items:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Customer
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier that identifies a document
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                          required:
                            - data
                          additionalProperties: false
                      additionalProperties: false
                  additionalProperties: false
              required:
                - type
              additionalProperties: false
        required: true
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: customerGroupId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - CustomerGroup
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          name:
                            type: string
                            minLength: 1
                            description: Human readable identifier for this customer group.
                          description:
                            type: string
                            nullable: true
                            description: An optional description of this customer group.
                          colour:
                            type: string
                            nullable: true
                            description: An optional colour associated with this customer group.
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time that this customer
                              group was created at.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this customer
                              group was last updated at. If not set then this
                              customer group has never been updated since its
                              creation.
                        required:
                          - name
                          - created
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          customers:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Customer
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                  canManageAllCustomers:
                                    type: boolean
                                    description: Whether the requesting user has write access to every customer
                                      currently in this group. Can be used by
                                      clients to conditionally show edit
                                      controls.
                                required:
                                  - total
                                  - canManageAllCustomers
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - customers
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 400
                  error:
                    type: string
                    enum:
                      - Bad Request
                  message:
                    type: string
                  details:
                    type: array
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Bad Request
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
        "409":
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 409
                  error:
                    type: string
                    enum:
                      - Conflict
                  message:
                    type: string
                  metadata:
                    type: object
                    additionalProperties: {}
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Conflict
  /v2/bookings/intent/events:
    post:
      summary: Create Intent Event
      tags:
        - IntentEvent
      description: Create a new intent event to track booking-related interactions and
        metadata
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                eventType:
                  type: string
                  description: Type of the intent event
                eventData:
                  type: object
                  additionalProperties: {}
                  description: Additional data specific to this event type
                customerBookingId:
                  type: string
                  pattern: ^[a-f\d]{24}$
                  description: Unique identifier of the customer booking this event relates to
                timestamp:
                  type: string
                  format: date-time
                  description: When the event occurred (defaults to current time)
                source:
                  type: string
                  maxLength: 100
                  description: Source system or component that generated the event
                metadata:
                  type: object
                  additionalProperties: {}
                  description: Additional metadata for the event
              required:
                - eventType
                - customerBookingId
              additionalProperties: false
        required: true
      responses:
        "201":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - IntentEvent
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          customerBookingId:
                            type: string
                            description: Customer booking ID as hex string
                          eventType:
                            type: string
                            description: Type of the intent event
                          eventData:
                            type: object
                            additionalProperties: {}
                            description: Event-specific data
                          timestamp:
                            type: string
                            description: Event timestamp as ISO string
                          source:
                            type: string
                            description: Source system that generated the event
                          metadata:
                            type: object
                            additionalProperties: {}
                            description: Additional event metadata
                          createdAt:
                            type: string
                            description: Creation timestamp as ISO string
                          updatedAt:
                            type: string
                            description: Last update timestamp as ISO string
                        required:
                          - customerBookingId
                          - eventType
                          - timestamp
                          - createdAt
                          - updatedAt
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          booking:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Booking
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - booking
                          - account
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 400
                  error:
                    type: string
                    enum:
                      - Bad Request
                  message:
                    type: string
                  details:
                    type: array
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Bad Request
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
        "422":
          description: Unprocessable Content
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 422
                  error:
                    type: string
                    enum:
                      - Unprocessable Content
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unprocessable Content
    get:
      summary: Get Intent Events
      tags:
        - IntentEvent
      description: Retrieve a paginated list of intent events with optional filtering
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
          in: query
          name: page[limit]
          required: false
        - schema:
            type: integer
            minimum: 0
            default: 0
          in: query
          name: page[offset]
          required: false
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: filter[customerBookingId]
          required: false
        - schema:
            anyOf:
              - type: string
                pattern: ^[a-f\d]{24}$
              - type: array
                items:
                  type: string
                  pattern: ^[a-f\d]{24}$
          in: query
          name: filter[customerBookingIds]
          required: false
        - schema:
            type: string
          in: query
          name: filter[eventType]
          required: false
        - schema:
            anyOf:
              - type: string
              - type: array
                items:
                  type: string
          in: query
          name: filter[eventTypes]
          required: false
        - schema:
            type: string
          in: query
          name: filter[source]
          required: false
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[dateFrom]
          required: false
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[dateTo]
          required: false
        - schema:
            type: string
            enum:
              - -timestamp
              - timestamp
              - -createdAt
              - createdAt
            default: -timestamp
          in: query
          name: sort
          required: false
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - IntentEvent
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            customerBookingId:
                              type: string
                              description: Customer booking ID as hex string
                            eventType:
                              type: string
                              description: Type of the intent event
                            eventData:
                              type: object
                              additionalProperties: {}
                              description: Event-specific data
                            timestamp:
                              type: string
                              description: Event timestamp as ISO string
                            source:
                              type: string
                              description: Source system that generated the event
                            metadata:
                              type: object
                              additionalProperties: {}
                              description: Additional event metadata
                            createdAt:
                              type: string
                              description: Creation timestamp as ISO string
                            updatedAt:
                              type: string
                              description: Last update timestamp as ISO string
                          required:
                            - customerBookingId
                            - eventType
                            - timestamp
                            - createdAt
                            - updatedAt
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            booking:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Booking
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            account:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - booking
                            - account
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
  /v2/bookings/intent/events/{eventId}:
    delete:
      summary: Delete Intent Event
      tags:
        - IntentEvent
      description: Delete an intent event by its unique identifier.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: eventId
          required: true
      responses:
        "204":
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties: {}
                additionalProperties: false
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
    get:
      summary: Get Intent Event By ID
      tags:
        - IntentEvent
      description: Get an intent event by its unique identifier.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: eventId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - IntentEvent
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          customerBookingId:
                            type: string
                            description: Customer booking ID as hex string
                          eventType:
                            type: string
                            description: Type of the intent event
                          eventData:
                            type: object
                            additionalProperties: {}
                            description: Event-specific data
                          timestamp:
                            type: string
                            description: Event timestamp as ISO string
                          source:
                            type: string
                            description: Source system that generated the event
                          metadata:
                            type: object
                            additionalProperties: {}
                            description: Additional event metadata
                          createdAt:
                            type: string
                            description: Creation timestamp as ISO string
                          updatedAt:
                            type: string
                            description: Last update timestamp as ISO string
                        required:
                          - customerBookingId
                          - eventType
                          - timestamp
                          - createdAt
                          - updatedAt
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          booking:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Booking
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - booking
                          - account
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
    patch:
      summary: Update Intent Event
      tags:
        - IntentEvent
      description: Update an existing intent event. Only certain fields can be updated.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                eventData:
                  type: object
                  additionalProperties: {}
                  description: Additional data specific to this event type
                source:
                  type: string
                  maxLength: 100
                  description: Source system or component that generated the event
                metadata:
                  type: object
                  additionalProperties: {}
                  description: Additional metadata for the event
              additionalProperties: false
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: eventId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - IntentEvent
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          customerBookingId:
                            type: string
                            description: Customer booking ID as hex string
                          eventType:
                            type: string
                            description: Type of the intent event
                          eventData:
                            type: object
                            additionalProperties: {}
                            description: Event-specific data
                          timestamp:
                            type: string
                            description: Event timestamp as ISO string
                          source:
                            type: string
                            description: Source system that generated the event
                          metadata:
                            type: object
                            additionalProperties: {}
                            description: Additional event metadata
                          createdAt:
                            type: string
                            description: Creation timestamp as ISO string
                          updatedAt:
                            type: string
                            description: Last update timestamp as ISO string
                        required:
                          - customerBookingId
                          - eventType
                          - timestamp
                          - createdAt
                          - updatedAt
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          booking:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Booking
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - booking
                          - account
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 400
                  error:
                    type: string
                    enum:
                      - Bad Request
                  message:
                    type: string
                  details:
                    type: array
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Bad Request
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
        "422":
          description: Unprocessable Content
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 422
                  error:
                    type: string
                    enum:
                      - Unprocessable Content
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unprocessable Content
  /v2/events/{eventId}/cancel:
    post:
      summary: Cancel Event By ID
      tags:
        - Events
      description: Cancel an Appointedd event that you have access to by it's unique
        identifier. Note that this will only cancel the specified event and not
        the entire series if it is a recurring event. If the event is part of a
        recurring series, you will need to cancel each event individually.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: eventId
          required: true
      responses:
        "204":
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties: {}
                additionalProperties: false
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/events:
    post:
      summary: Create Event
      tags:
        - Events
      description: Create a new event
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - Event
                attributes:
                  type: object
                  properties:
                    reservationId:
                      type: string
                      pattern: ^[a-f\d]{24}$
                      description: ID of the reservation to use to create this event.
                    accountId:
                      type: string
                      pattern: ^[a-f\d]{24}$
                      description: ID of the account that the event should be associated with.
                    sendPaymentRequest:
                      type: boolean
                      default: true
                      description: If set to true a payment request will be sent to each participant
                        on this event.
                    timezone:
                      type: string
                      default: UTC
                      description: The timezone to use for the date and time properties on the event.
                    label:
                      type: string
                      minLength: 1
                      maxLength: 255
                      description: Human readable text label for this event.
                    createdSource:
                      type: string
                      minLength: 1
                      maxLength: 255
                      default: api
                      description: Name of the source that created this event.
                    participants:
                      type: array
                      items:
                        anyOf:
                          - type: object
                            properties:
                              createdSource:
                                type: string
                                minLength: 1
                                maxLength: 255
                                default: api
                                description: Name of the source that was used to add the participant to this
                                  event.
                              locale:
                                type: string
                                minLength: 1
                                maxLength: 5
                                default: en
                                description: ISO 639 language code that the customer used to book onto this
                                  event.
                              notes:
                                type: string
                                minLength: 1
                                maxLength: 500
                                description: Free-form text that can store any additional details for this
                                  participant on the booking.
                              questions:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Internal field. Not all questions will have one.
                                    label:
                                      type: string
                                      minLength: 1
                                      maxLength: 255
                                      description: Text containing the question that was asked.
                                    value:
                                      anyOf:
                                        - type: string
                                        - type: boolean
                                      description: Answer given by the participant.
                                    type:
                                      type: string
                                      enum:
                                        - text
                                        - checkbox
                                        - dropdown
                                        - terms
                                        - file
                                      description: Type of input that the participant was presented with.
                                  required:
                                    - label
                                    - value
                                    - type
                                  additionalProperties: false
                                maxItems: 50
                                description: Questions asked during the booking flow and answers given by the
                                  participant.
                              spaces:
                                type: integer
                                minimum: 1
                                maximum: 500
                                default: 1
                                description: Number of spaces that this participant is using on this booking.
                              status:
                                type: string
                                enum:
                                  - Arrived
                                  - Complete
                                  - No Show
                                  - No Status
                                default: No Status
                                description: Arrival status of the participant in relation to this event.
                              timezone:
                                type: string
                                description: The timezone that the participant made the booking in.
                              tier:
                                type: object
                                properties:
                                  tierId:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: ID of the tier the participant selected.
                                  name:
                                    type: string
                                    minLength: 1
                                    maxLength: 255
                                    description: Snapshot of the tier name at the time the participant selected it.
                                required:
                                  - tierId
                                  - name
                                additionalProperties: false
                                description: Tier associated with the participant on a multi-tier service.
                              pricePoints:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    pricePointId:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: ID of the selected price point.
                                    pricePerQuantity:
                                      type: number
                                      minimum: 0
                                      description: Price of a single quantity.
                                    quantity:
                                      type: integer
                                      minimum: 1
                                      description: Quantity of the price point.
                                    spacesPerQuantity:
                                      type: integer
                                      minimum: 1
                                      description: Number of spaces per quantity.
                                  required:
                                    - pricePointId
                                    - quantity
                                    - spacesPerQuantity
                                  additionalProperties: false
                                maxItems: 25
                                description: Price points unique to the selected tier on a multi-tier service.
                              type:
                                type: string
                                enum:
                                  - NewCustomer
                              customer:
                                type: object
                                properties:
                                  firstName:
                                    type: string
                                    minLength: 1
                                    maxLength: 255
                                    description: Firstname of the new customer.
                                  lastName:
                                    type: string
                                    minLength: 1
                                    maxLength: 255
                                    description: Lastname of the new customer.
                                  email:
                                    type: string
                                    minLength: 1
                                    maxLength: 255
                                    format: email
                                    description: Email address of the new customer.
                                  mobile:
                                    type: string
                                    minLength: 1
                                    maxLength: 20
                                    description: Mobile number of the new customer.
                                  marketingSubscribed:
                                    type: boolean
                                    default: false
                                    description: Indicates if the customer has given permission to send marketing
                                      emails.
                                  customFields:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                          description: ID of the string custom field.
                                        value:
                                          type: string
                                          maxLength: 255
                                          description: Value of the custom field.
                                      required:
                                        - id
                                        - value
                                      additionalProperties: false
                                    maxItems: 50
                                    description: Custom fields associated with the new customer stored in the CRM.
                                required:
                                  - firstName
                                  - lastName
                                additionalProperties: false
                            required:
                              - type
                              - customer
                            additionalProperties: false
                            description: A participant that will create a new customer in your CRM for the
                              account associated to the reservation.
                          - type: object
                            properties:
                              createdSource:
                                type: string
                                minLength: 1
                                maxLength: 255
                                default: api
                                description: Name of the source that was used to add the participant to this
                                  event.
                              locale:
                                type: string
                                minLength: 1
                                maxLength: 5
                                default: en
                                description: ISO 639 language code that the customer used to book onto this
                                  event.
                              notes:
                                type: string
                                minLength: 1
                                maxLength: 500
                                description: Free-form text that can store any additional details for this
                                  participant on the booking.
                              questions:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Internal field. Not all questions will have one.
                                    label:
                                      type: string
                                      minLength: 1
                                      maxLength: 255
                                      description: Text containing the question that was asked.
                                    value:
                                      anyOf:
                                        - type: string
                                        - type: boolean
                                      description: Answer given by the participant.
                                    type:
                                      type: string
                                      enum:
                                        - text
                                        - checkbox
                                        - dropdown
                                        - terms
                                        - file
                                      description: Type of input that the participant was presented with.
                                  required:
                                    - label
                                    - value
                                    - type
                                  additionalProperties: false
                                maxItems: 50
                                description: Questions asked during the booking flow and answers given by the
                                  participant.
                              spaces:
                                type: integer
                                minimum: 1
                                maximum: 500
                                default: 1
                                description: Number of spaces that this participant is using on this booking.
                              status:
                                type: string
                                enum:
                                  - Arrived
                                  - Complete
                                  - No Show
                                  - No Status
                                default: No Status
                                description: Arrival status of the participant in relation to this event.
                              timezone:
                                type: string
                                description: The timezone that the participant made the booking in.
                              tier:
                                type: object
                                properties:
                                  tierId:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: ID of the tier the participant selected.
                                  name:
                                    type: string
                                    minLength: 1
                                    maxLength: 255
                                    description: Snapshot of the tier name at the time the participant selected it.
                                required:
                                  - tierId
                                  - name
                                additionalProperties: false
                                description: Tier associated with the participant on a multi-tier service.
                              pricePoints:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    pricePointId:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: ID of the selected price point.
                                    pricePerQuantity:
                                      type: number
                                      minimum: 0
                                      description: Price of a single quantity.
                                    quantity:
                                      type: integer
                                      minimum: 1
                                      description: Quantity of the price point.
                                    spacesPerQuantity:
                                      type: integer
                                      minimum: 1
                                      description: Number of spaces per quantity.
                                  required:
                                    - pricePointId
                                    - quantity
                                    - spacesPerQuantity
                                  additionalProperties: false
                                maxItems: 25
                                description: Price points unique to the selected tier on a multi-tier service.
                              type:
                                type: string
                                enum:
                                  - ExistingCustomer
                              id:
                                type: string
                                pattern: ^[a-f\d]{24}$
                                description: ID of an existing customer in your organisation that is on this
                                  booking.
                            required:
                              - type
                              - id
                            additionalProperties: false
                            description: A participant that will be associated with an existing customer in
                              your CRM for the account associated to the
                              reservation.
                      maxItems: 100
                      description: List of participants to add to this event.
                  required:
                    - reservationId
                    - accountId
                    - participants
                  additionalProperties: false
              required:
                - type
                - attributes
              additionalProperties: false
        required: true
      security: []
      responses:
        "201":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - Event
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 date and time that this event was created at.
                          end:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time that this event ends
                              at.
                          endWithBuffer:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time that this event ends
                              at with the event's 'after' buffer added if it has
                              one.
                          parts:
                            type: array
                            items:
                              type: object
                              properties:
                                label:
                                  type: string
                                  minLength: 1
                                  maxLength: 1000
                                  nullable: true
                                  description: Human readable text label for this part of the event.
                                start:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the data and time that this part starts
                                    at.
                                end:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the date and time that this part ends
                                    at.
                              required:
                                - label
                                - start
                                - end
                              additionalProperties: false
                            minItems: 1
                            description: One or more parts that are contained by this event. This is used
                              for multi-part events which can have gaps within
                              it's start and end which are considered 'free' and
                              not blocked by the event.
                          source:
                            type: string
                            maxLength: 200
                            nullable: true
                            description: Name of the source where this event was created.
                          start:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time that this event starts
                              at.
                          state:
                            type: string
                            enum:
                              - pending
                              - confirmed
                              - declined
                              - cancelled
                            description: State that the event is currently in.
                          startWithBuffer:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time that this event starts
                              at with the event's 'before' buffer subtracted if
                              it has one.
                          timezone:
                            type: string
                            nullable: true
                            description: IANA name of the time zone that the customer made this event in.
                              Deprecated time zones are supported but we
                              recommend only using non-deprecated time zone
                              names where possible.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this event was
                              last updated at. If not set then this event has
                              never been updated since it's creation.
                        required:
                          - created
                          - end
                          - endWithBuffer
                          - parts
                          - source
                          - start
                          - state
                          - startWithBuffer
                          - timezone
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          resources:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Resource
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          service:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Service
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                          - resources
                          - service
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
    get:
      summary: Get All Events
      tags:
        - Events
      description: Get a paginated view of all booking events you have access to.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[accountIds]
          required: false
          description: Returns any events that belong to any of the given account IDs.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[customerIds]
          required: false
          description: Returns any events that belong to any of the given customer IDs.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[resourceIds]
          required: false
          description: Returns any events that belong to any of the given resource IDs.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[eventIds]
          required: false
          description: Returns any events that belong to any of the given event IDs.
        - schema:
            type: string
            enum:
              - pending
              - confirmed
              - declined
              - cancelled
          in: query
          name: filter[state]
          required: false
          description: Returns any events that have a state set to the given value.
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[start][after]
          required: false
          description: Returns any events that start after the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[start][before]
          required: false
          description: Returns any events that start before the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[end][after]
          required: false
          description: Returns any events that end after the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[end][before]
          required: false
          description: Returns any events that end before the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[created][after]
          required: false
          description: Returns any events that were created after the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[created][before]
          required: false
          description: Returns any events that were created before the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[updated][after]
          required: false
          description: Returns any events that were updated after the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[updated][before]
          required: false
          description: Returns any events that were updated before the given date and time
            (inclusive).
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - Event
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            created:
                              type: string
                              format: date-time
                              description: ISO 8601 date and time that this event was created at.
                            end:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this event ends
                                at.
                            endWithBuffer:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this event ends
                                at with the event's 'after' buffer added if it
                                has one.
                            parts:
                              type: array
                              items:
                                type: object
                                properties:
                                  label:
                                    type: string
                                    minLength: 1
                                    maxLength: 1000
                                    nullable: true
                                    description: Human readable text label for this part of the event.
                                  start:
                                    type: string
                                    format: date-time
                                    description: ISO 8601 representation of the data and time that this part starts
                                      at.
                                  end:
                                    type: string
                                    format: date-time
                                    description: ISO 8601 representation of the date and time that this part ends
                                      at.
                                required:
                                  - label
                                  - start
                                  - end
                                additionalProperties: false
                              minItems: 1
                              description: One or more parts that are contained by this event. This is used
                                for multi-part events which can have gaps within
                                it's start and end which are considered 'free'
                                and not blocked by the event.
                            source:
                              type: string
                              maxLength: 200
                              nullable: true
                              description: Name of the source where this event was created.
                            start:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this event starts
                                at.
                            state:
                              type: string
                              enum:
                                - pending
                                - confirmed
                                - declined
                                - cancelled
                              description: State that the event is currently in.
                            startWithBuffer:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this event starts
                                at with the event's 'before' buffer subtracted
                                if it has one.
                            timezone:
                              type: string
                              nullable: true
                              description: IANA name of the time zone that the customer made this event in.
                                Deprecated time zones are supported but we
                                recommend only using non-deprecated time zone
                                names where possible.
                            updated:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 representation of the date and time that this event was
                                last updated at. If not set then this event has
                                never been updated since it's creation.
                          required:
                            - created
                            - end
                            - endWithBuffer
                            - parts
                            - source
                            - start
                            - state
                            - startWithBuffer
                            - timezone
                            - updated
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            account:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            resources:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                            service:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Service
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - account
                            - resources
                            - service
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/events/{eventId}/bookings:
    get:
      summary: Get All Bookings By Event ID
      tags:
        - Events
        - Bookings
      description: Get a paginated view of all Appointedd bookings made by a event
        with a specific ID.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[accountIds]
          required: false
          description: Returns any bookings that belong to any of the given account IDs.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[customerIds]
          required: false
          description: Returns any bookings that belong to any of the given customer IDs.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[resourceIds]
          required: false
          description: Returns any bookings that belong to any of the given resource IDs.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[eventIds]
          required: false
          description: Returns any bookings that belong to any of the given event IDs.
        - schema:
            type: array
            items:
              type: string
              minLength: 1
          in: query
          name: filter[payments][externalIds]
          required: false
          description: Returns any bookings that have a payment that references any of the
            given external IDs provided by the payment provider used for the
            payment.
        - schema:
            type: string
            enum:
              - pending
              - confirmed
              - declined
              - cancelled
          in: query
          name: filter[state]
          required: false
          description: Returns any bookings that have a state set to the given value.
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[start][after]
          required: false
          description: Returns any bookings that start after the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[start][before]
          required: false
          description: Returns any bookings that start before the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[end][after]
          required: false
          description: Returns any bookings that end after the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[end][before]
          required: false
          description: Returns any bookings that end before the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[created][after]
          required: false
          description: Returns any bookings that were created after the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[created][before]
          required: false
          description: Returns any bookings that were created before the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[updated][after]
          required: false
          description: Returns any bookings that were updated after the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[updated][before]
          required: false
          description: Returns any bookings that were updated before the given date and
            time (inclusive).
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][resources]
          required: false
          description: Whether to include resources in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][invoices]
          required: false
          description: Whether to include invoice payment data in the attributes.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: eventId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - Booking
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            bookingId:
                              type: string
                              description: The unique identifier for this booking.
                            created:
                              type: string
                              format: date-time
                              description: ISO 8601 date and time that this booking was created at.
                            bookingPrice:
                              type: number
                              minimum: 0
                              nullable: true
                              description: Total amount that this booking costs. If this is booking is for an
                                event this will the the total price of the vent.
                                It is possible for a booking's price to be
                                changed independently from the customer's price
                                which can cause this value to differ from the
                                value of the `customerPrice` property.
                            customerPrice:
                              type: number
                              minimum: 0
                              description: Total amount that this booking costs for this customer in the
                                currency configured for the account that this
                                booking belongs to.
                            end:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this booking ends
                                at.
                            endWithBuffer:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this booking ends
                                at with the booking's 'after' buffer added if it
                                has one.
                            locale:
                              type: string
                              description: ISO 639 code of the locale of the customer that created this
                                booking.
                            notes:
                              type: string
                              nullable: true
                              description: Free-form text attached to this booking as a note.
                            parts:
                              type: array
                              items:
                                type: object
                                properties:
                                  label:
                                    type: string
                                    minLength: 1
                                    nullable: true
                                    description: Human readable text label for this part of the booking.
                                  start:
                                    type: string
                                    format: date-time
                                    description: ISO 8601 representation of the data and time that this part starts
                                      at.
                                  end:
                                    type: string
                                    format: date-time
                                    description: ISO 8601 representation of the date and time that this part ends
                                      at.
                                required:
                                  - label
                                  - start
                                  - end
                                additionalProperties: false
                              minItems: 1
                              description: One or more parts that are contained by this booking. This is used
                                for multi-part bookings which can have gaps
                                within it's start and end which are considered
                                'free' and not blocked by the booking.
                            payments:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    description: The external reference used to identify the payment within the
                                      payment provider e.g. a Stripe charge id
                                      or an Adyen PSP reference.
                                  provider:
                                    type: string
                                    description: The connected provider the booking payment was processed for.
                                  amount:
                                    type: number
                                    description: The value of the payment that was processed.
                                required:
                                  - id
                                  - provider
                                  - amount
                                additionalProperties: false
                              description: One or more payments that are related to this booking.
                            refunds:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    description: The external reference used to identify the refund within the
                                      payment provider e.g. a Stripe charge id
                                      or an Adyen PSP reference.
                                  provider:
                                    type: string
                                    description: The connected provider the booking refund was processed for.
                                  originalPaymentId:
                                    type: string
                                    description: The id that relates to the original payment being refunded.
                                  amount:
                                    type: number
                                    description: The value of the refund that was processed.
                                  status:
                                    type: string
                                    enum:
                                      - pending
                                      - success
                                      - failed
                                    description: Indicates the status of the refund.
                                  description:
                                    type: string
                                    description: The description / reason for this refund.
                                  refundFailedReason:
                                    type: string
                                    description: The reason this refund failed.
                                required:
                                  - id
                                  - provider
                                  - amount
                                  - description
                                additionalProperties: false
                              description: One or more refunds that are related to this booking.
                            questions:
                              type: array
                              items:
                                anyOf:
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - text
                                      value:
                                        type: string
                                        nullable: true
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a free-form text value as an answer. A value of
                                      `null` indicates an empty answer.
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - dropdown
                                      value:
                                        type: string
                                        maxLength: 100
                                        nullable: true
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a free-form a text value selected from a preset
                                      number of options as an answer. A value of
                                      `null` indicates no selection.
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - checkbox
                                      value:
                                        type: boolean
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a boolean value as an answer.
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - terms
                                      value:
                                        type: boolean
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a boolean value as an answer (terms of
                                      service).
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                        minLength: 1
                                        maxLength: 4000
                                        description: Human readable text label for this question
                                      type:
                                        type: string
                                        enum:
                                          - file
                                      value:
                                        type: string
                                        minLength: 1
                                        maxLength: 1000
                                        nullable: true
                                    required:
                                      - label
                                      - type
                                      - value
                                    additionalProperties: false
                                    description: Question that takes a file upload as an answer.
                              description: Array of questions that were answered by the customer when creating
                                this booking.
                            rescheduleUrl:
                              type: string
                              format: uri
                              maxLength: 3000
                              nullable: true
                              description: URL that provides a web widget to reschedule this booking.
                            source:
                              type: string
                              maxLength: 200
                              description: Name of the source where this booking was created.
                            spaces:
                              type: number
                              minimum: 1
                              description: Number of spaces that the customer has requested for this booking.
                            start:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this booking
                                starts at.
                            state:
                              type: string
                              enum:
                                - pending
                                - confirmed
                                - declined
                                - cancelled
                              description: State that the booking is currently in.
                            status:
                              type: string
                              description: Status that this booking is currently in.
                              default: No Status
                            startWithBuffer:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this booking
                                starts at with the booking's 'before' buffer
                                subtracted if it has one.
                            timezone:
                              type: string
                              description: IANA name of the time zone that the customer made this booking in.
                                Deprecated time zones are supported but we
                                recommend only using non-deprecated time zone
                                names where possible.
                            updated:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 representation of the date and time that this booking was
                                last updated at. If not set then this booking
                                has never been updated since it's creation.
                          required:
                            - created
                            - bookingPrice
                            - customerPrice
                            - end
                            - endWithBuffer
                            - locale
                            - notes
                            - parts
                            - questions
                            - rescheduleUrl
                            - source
                            - spaces
                            - start
                            - state
                            - startWithBuffer
                            - timezone
                            - updated
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            account:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            customer:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Customer
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            event:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Event
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            resources:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                            service:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Service
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - account
                            - customer
                            - event
                            - resources
                            - service
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/events/{eventId}:
    get:
      summary: Get Event By ID
      tags:
        - Events
      description: Get an Appointedd event that you have access to by it's unique
        identifier.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: eventId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - Event
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 date and time that this event was created at.
                          end:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time that this event ends
                              at.
                          endWithBuffer:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time that this event ends
                              at with the event's 'after' buffer added if it has
                              one.
                          parts:
                            type: array
                            items:
                              type: object
                              properties:
                                label:
                                  type: string
                                  minLength: 1
                                  maxLength: 1000
                                  nullable: true
                                  description: Human readable text label for this part of the event.
                                start:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the data and time that this part starts
                                    at.
                                end:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the date and time that this part ends
                                    at.
                              required:
                                - label
                                - start
                                - end
                              additionalProperties: false
                            minItems: 1
                            description: One or more parts that are contained by this event. This is used
                              for multi-part events which can have gaps within
                              it's start and end which are considered 'free' and
                              not blocked by the event.
                          source:
                            type: string
                            maxLength: 200
                            nullable: true
                            description: Name of the source where this event was created.
                          start:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time that this event starts
                              at.
                          state:
                            type: string
                            enum:
                              - pending
                              - confirmed
                              - declined
                              - cancelled
                            description: State that the event is currently in.
                          startWithBuffer:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time that this event starts
                              at with the event's 'before' buffer subtracted if
                              it has one.
                          timezone:
                            type: string
                            nullable: true
                            description: IANA name of the time zone that the customer made this event in.
                              Deprecated time zones are supported but we
                              recommend only using non-deprecated time zone
                              names where possible.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this event was
                              last updated at. If not set then this event has
                              never been updated since it's creation.
                        required:
                          - created
                          - end
                          - endWithBuffer
                          - parts
                          - source
                          - start
                          - state
                          - startWithBuffer
                          - timezone
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          resources:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Resource
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          service:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Service
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                          - resources
                          - service
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/reservations:
    post:
      summary: Create Reservation
      tags:
        - Reservations
      description: Create a new reservation
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - Reservation
                      description: Indicates this is a standard (non-recurring) reservation.
                    attributes:
                      type: object
                      properties:
                        ignorePastRestriction:
                          type: boolean
                          default: false
                          description: If set to `true` the availability check will not be restricted by
                            the current date and time.
                        ignoreNoticeRestriction:
                          type: boolean
                          default: false
                          description: If set to `true` the availability check will not be restricted by
                            your account's notice period settings.
                        ignoreBlockRestriction:
                          type: boolean
                          default: false
                          description: If set to `true` the availability check will not be restricted by
                            your account's block period settings.
                        ignoreServiceSchedule:
                          type: boolean
                          default: false
                          description: If set to `true` the availability check will not be restricted by
                            the service's schedule.
                        increment:
                          type: integer
                          minimum: 1
                          maximum: 60
                          default: 15
                          description: The increment in minutes that will be used when calculating
                            availability pre reservation creation.
                        customSource:
                          type: string
                          maxLength: 255
                          default: api
                          description: Custom source that will be attached to the reservation to indicate
                            its origin.
                        accountId:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: ID of the account that this reservation belongs to.
                        serviceId:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: ID of the service that will be assigned to the booking that uses
                            this reservation.
                        start:
                          type: string
                          format: date-time
                          description: ISO 8601 datetime with timezone offset when this availability slot
                            starts (e.g. 2026-04-01T10:00:00+01:00 or
                            2026-04-01T09:00:00Z).
                        resourceId:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: ID of the resource that will be assigned to the booking that uses
                            this reservation.
                        resourceGroupIds:
                          type: array
                          items:
                            type: string
                            pattern: ^[a-f\d]{24}$
                            description: Unique identifier that identifies a document
                          description: One or more IDs of resource groups to restrict random resource
                            selection to.
                        timezone:
                          type: string
                          default: Europe/London
                          description: IANA timezone of the slot. The given start date and time will be
                            treated as being in this timezone.
                        expiresAfter:
                          type: integer
                          minimum: 1
                          description: Number of minutes after creation of this slot that it will expire.
                            This will default to the account reservation
                            expiration setting if not specified.
                        allowAdditionalSpaces:
                          type: boolean
                          description: If true, other reservations can be created on this reservation for
                            a new booking. If not set will use the service
                            setting or default to false
                        requiredSpaces:
                          type: integer
                          minimum: 1
                          default: 1
                          description: Number of spaces that this reservation requires.
                        maxSpaces:
                          type: integer
                          minimum: 1
                          description: Maximum number of spaces that the reservation allows.
                        parts:
                          type: array
                          items:
                            type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - free
                                  - block
                                description: Indicates if this part is marked as unavailable (block) or
                                  available (free).
                              label:
                                type: string
                                description: Label attached to this part.
                              duration:
                                type: integer
                                minimum: 1
                                description: Number of minutes that this part spans.
                            required:
                              - type
                              - duration
                            additionalProperties: false
                          minItems: 1
                          description: Parts that will be used to create the booking. If not specified
                            they will be taken from the service.
                      required:
                        - accountId
                        - serviceId
                        - start
                      additionalProperties: false
                  required:
                    - type
                    - attributes
                  additionalProperties: false
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - RecurringGroupReservation
                      description: Indicates this reservation is part of a recurring group.
                    attributes:
                      type: object
                      properties:
                        ignorePastRestriction:
                          type: boolean
                          default: false
                          description: If set to `true` the availability check will not be restricted by
                            the current date and time.
                        ignoreNoticeRestriction:
                          type: boolean
                          default: false
                          description: If set to `true` the availability check will not be restricted by
                            your account's notice period settings.
                        ignoreBlockRestriction:
                          type: boolean
                          default: false
                          description: If set to `true` the availability check will not be restricted by
                            your account's block period settings.
                        ignoreServiceSchedule:
                          type: boolean
                          default: false
                          description: If set to `true` the availability check will not be restricted by
                            the service's schedule.
                        recurringId:
                          type: string
                          description: ID that will be shared by all reservations in this group.
                        bookingIds:
                          type: array
                          items:
                            type: string
                            pattern: ^[a-f\d]{24}$
                            description: Unique identifier that identifies a document
                          minItems: 1
                          description: IDs of existing bookings that will be assigned to the reservation.
                        accountId:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: ID of the account that this reservation belongs to.
                        requiredSpaces:
                          type: integer
                          minimum: 1
                          default: 1
                          description: Number of spaces that this reservation requires.
                      required:
                        - recurringId
                        - bookingIds
                        - accountId
                      additionalProperties: false
                  required:
                    - type
                    - attributes
                  additionalProperties: false
      security: []
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - Reservation
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          accountId:
                            type: string
                            pattern: ^[a-f\d]{24}$
                            description: ID of the account that this reservation belongs to.
                          serviceId:
                            type: string
                            pattern: ^[a-f\d]{24}$
                            description: ID of the service that will be assigned to the booking that uses
                              this reservation.
                          start:
                            type: string
                            format: date-time
                            description: ISO 8601 datetime with timezone offset when this availability slot
                              starts (e.g. 2026-04-01T10:00:00+01:00 or
                              2026-04-01T09:00:00Z).
                          startBuffer:
                            type: string
                            format: date-time
                            description: ISO 8601 datetime with timezone offset when the buffer for this
                              reservation starts (e.g. 2026-04-01T10:00:00+01:00
                              or 2026-04-01T09:00:00Z).
                          endBuffer:
                            type: string
                            format: date-time
                            description: ISO 8601 datetime with timezone offset when the buffer for this
                              reservation ends (e.g. 2026-04-01T10:00:00+01:00
                              or 2026-04-01T09:00:00Z).
                          created:
                            type: string
                            format: date-time
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                          expires:
                            type: string
                            format: date-time
                            description: ISO 8601 datetime with timezone offset when when this reservation
                              expires (e.g. 2026-04-01T10:00:00+01:00 or
                              2026-04-01T09:00:00Z).
                          resourceId:
                            type: string
                            pattern: ^[a-f\d]{24}$
                            description: ID of the resource that will be assigned to the booking that uses
                              this reservation.
                          resourceGroupIds:
                            type: array
                            items:
                              type: string
                              pattern: ^[a-f\d]{24}$
                              description: Unique identifier that identifies a document
                            description: One or more IDs of resource groups to restrict random resource
                              selection to.
                          parts:
                            type: array
                            items:
                              type: object
                              properties:
                                start:
                                  type: string
                                  format: date-time
                                  description: The date and time that this availability slot starts on.
                                end:
                                  type: string
                                  format: date-time
                                  description: The date and time that this availability slot ends on.
                              required:
                                - start
                                - end
                              additionalProperties: false
                            minItems: 1
                            description: Parts that will be used to create the booking. If not specified
                              they will be taken from the service.
                          timezone:
                            type: string
                            default: Europe/London
                            description: IANA timezone of the slot. The given start date and time will be
                              treated as being in this timezone.
                          expiresAfter:
                            type: integer
                            minimum: 1
                            description: Number of minutes after creation of this slot that it will expire.
                              This will default to the account reservation
                              expiration setting if not specified.
                          allowAdditionalSpaces:
                            type: boolean
                            description: If true, other reservations can be created on this reservation for
                              a new booking. If not set will use the service
                              setting or default to false
                          requiredSpaces:
                            type: integer
                            minimum: 1
                            default: 1
                            description: Number of spaces that this reservation requires.
                          maxSpaces:
                            type: integer
                            minimum: 1
                            description: Maximum number of spaces that the reservation allows.
                        required:
                          - accountId
                          - serviceId
                          - start
                          - startBuffer
                          - endBuffer
                          - created
                          - updated
                          - expires
                        additionalProperties: false
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/resources/groups/{resourceGroupId}:
    get:
      summary: Get Resource Group By ID
      tags:
        - ResourceGroups
      description: Get an Appointedd resource group that you have access to by it's
        unique identifier.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: resourceGroupId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - ResourceGroup
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          name:
                            type: string
                            description: Human readable identifier for this resource group.
                        required:
                          - name
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/resources:
    post:
      summary: Create resource
      tags:
        - Resources
      description: Create a new resource
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - Resource
                  description: Unique name for all documents that belong to this type.
                attributes:
                  type: object
                  properties:
                    colour:
                      type: string
                      description: Hex code representing the colour of this resource.
                    name:
                      type: string
                      description: Human readable identifier for this resource.
                    email:
                      type: string
                      description: Email address associated with this resource.
                    firstName:
                      type: string
                      description: First name of the resource.
                    lastName:
                      type: string
                      description: Last name of the resource.
                    phone:
                      type: string
                      description: Phone number associated with this resource.
                    houseNo:
                      type: string
                      description: House number of the resource's address.
                    addressOne:
                      type: string
                      description: First line of the resource's address.
                    addressTwo:
                      type: string
                      description: Second line of the resource's address.
                    city:
                      type: string
                      description: City of the resource's address.
                    postcode:
                      type: string
                      description: Postcode of the resource's address.
                    description:
                      type: string
                      description: Description associated with this resource.
                    sendBookingConfirmationEmail:
                      type: boolean
                      description: Indicates if a booking confirmation email should be sent to the
                        customer when a booking is made with this resource.
                    sendBookingRequestEmail:
                      type: boolean
                      description: Indicates if a booking request email should be sent to the customer
                        when a booking request is made with this resource.
                    sendBookingCancellationEmail:
                      type: boolean
                      description: Indicates if a booking cancellation email should be sent to the
                        customer when a booking is cancelled with this resource.
                    additionalCommunicationEmails:
                      type: array
                      items:
                        type: string
                      description: Additional email addresses to receive communication emails for
                        bookings with this resource.
                  required:
                    - name
                  additionalProperties: false
                relationships:
                  type: object
                  properties:
                    account:
                      type: object
                      properties:
                        data:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - Account
                              description: Type of this resource.
                            id:
                              type: string
                              pattern: ^[a-f\d]{24}$
                              description: Unique identifier of this resource.
                          required:
                            - type
                            - id
                          additionalProperties: false
                      required:
                        - data
                      additionalProperties: false
                  required:
                    - account
                  additionalProperties: false
              required:
                - type
                - attributes
                - relationships
              additionalProperties: false
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - Resource
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          colour:
                            type: string
                            description: Hex code representing the colour of this resource.
                          name:
                            type: string
                            description: Human readable identifier for this resource.
                          email:
                            type: string
                            description: Email address associated with this resource.
                          firstName:
                            type: string
                            description: First name of the resource.
                          lastName:
                            type: string
                            description: Last name of the resource.
                          phone:
                            type: string
                            description: Phone number associated with this resource.
                          houseNo:
                            type: string
                            description: House number of the resource's address.
                          addressOne:
                            type: string
                            description: First line of the resource's address.
                          addressTwo:
                            type: string
                            description: Second line of the resource's address.
                          city:
                            type: string
                            description: City of the resource's address.
                          postcode:
                            type: string
                            description: Postcode of the resource's address.
                          description:
                            type: string
                            description: Description associated with this resource.
                          sendBookingConfirmationEmail:
                            type: boolean
                            description: Indicates if a booking confirmation email should be sent to the
                              customer when a booking is made with this
                              resource.
                          sendBookingRequestEmail:
                            type: boolean
                            description: Indicates if a booking request email should be sent to the customer
                              when a booking request is made with this resource.
                          sendBookingCancellationEmail:
                            type: boolean
                            description: Indicates if a booking cancellation email should be sent to the
                              customer when a booking is cancelled with this
                              resource.
                          additionalCommunicationEmails:
                            type: array
                            items:
                              type: string
                            description: Additional email addresses to receive communication emails for
                              bookings with this resource.
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 date and time that this resource was created at.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this resource was
                              last updated at.
                        required:
                          - name
                          - created
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          schedules:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Schedule
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          blueprint:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - ResourceBlueprint
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          blueprintAssociation:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - ResourceBlueprintAssociation
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "402":
          description: Payment is required to perform this action
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 402
                  error:
                    type: string
                    enum:
                      - Payment Required
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Payment is required to perform this action
    get:
      summary: Get All Resources
      tags:
        - Resources
      description: Get a paginated view of all Appointedd resources you have access to.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[accountIds]
          required: false
          description: Returns any resources that belong to any of the given account IDs.
        - schema:
            type: string
            minLength: 1
            maxLength: 2000
          in: query
          name: filter[name]
          required: false
          description: Returns any resources with the exact given name.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][schedules]
          required: false
          description: Whether to include schedules in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][blueprint]
          required: false
          description: Whether to include blueprint in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][blueprintAssociation]
          required: false
          description: Whether to include blueprintAssociation in the relationships.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - Resource
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            colour:
                              type: string
                              description: Hex code representing the colour of this resource.
                            name:
                              type: string
                              description: Human readable identifier for this resource.
                            email:
                              type: string
                              description: Email address associated with this resource.
                            firstName:
                              type: string
                              description: First name of the resource.
                            lastName:
                              type: string
                              description: Last name of the resource.
                            phone:
                              type: string
                              description: Phone number associated with this resource.
                            houseNo:
                              type: string
                              description: House number of the resource's address.
                            addressOne:
                              type: string
                              description: First line of the resource's address.
                            addressTwo:
                              type: string
                              description: Second line of the resource's address.
                            city:
                              type: string
                              description: City of the resource's address.
                            postcode:
                              type: string
                              description: Postcode of the resource's address.
                            description:
                              type: string
                              description: Description associated with this resource.
                            sendBookingConfirmationEmail:
                              type: boolean
                              description: Indicates if a booking confirmation email should be sent to the
                                customer when a booking is made with this
                                resource.
                            sendBookingRequestEmail:
                              type: boolean
                              description: Indicates if a booking request email should be sent to the customer
                                when a booking request is made with this
                                resource.
                            sendBookingCancellationEmail:
                              type: boolean
                              description: Indicates if a booking cancellation email should be sent to the
                                customer when a booking is cancelled with this
                                resource.
                            additionalCommunicationEmails:
                              type: array
                              items:
                                type: string
                              description: Additional email addresses to receive communication emails for
                                bookings with this resource.
                            created:
                              type: string
                              format: date-time
                              description: ISO 8601 date and time that this resource was created at.
                            updated:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 representation of the date and time that this resource was
                                last updated at.
                          required:
                            - name
                            - created
                            - updated
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            account:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            schedules:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Schedule
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                            blueprint:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - ResourceBlueprint
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            blueprintAssociation:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - ResourceBlueprintAssociation
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - account
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/resources/{resourceId}/schedules:
    post:
      summary: Create a Schedule for a specific resource
      tags:
        - Resources
      description: Create Resource Schedule
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - ExactSchedule
                    attributes:
                      type: object
                      properties:
                        available:
                          type: boolean
                          description: Indicates if the schedule is available or unavailable.
                        reason:
                          type: string
                          nullable: true
                          description: Reason / identifiable label for this schedule. e.g. Default Working
                            hours, Seasonal Opening Times etc
                        zone:
                          type: string
                          description: Timezone for this schedule.
                        start:
                          type: string
                          format: date-time
                          description: ISO 8601 representation of the start date and time of this
                            schedule.
                        end:
                          type: string
                          format: date-time
                          description: ISO 8601 representation of the end date and time of this schedule.
                      required:
                        - available
                        - zone
                        - start
                        - end
                      additionalProperties: false
                  required:
                    - type
                    - attributes
                  additionalProperties: false
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - RecurringSchedule
                    attributes:
                      type: object
                      properties:
                        available:
                          type: boolean
                          description: Indicates if the schedule is available or unavailable.
                        reason:
                          type: string
                          nullable: true
                          description: Reason / identifiable label for this schedule. e.g. Default Working
                            hours, Seasonal Opening Times etc
                        zone:
                          type: string
                          description: Timezone for this schedule.
                        start:
                          type: string
                          format: date-time
                          description: ISO 8601 representation of the start date and time of this
                            schedule.
                        end:
                          type: string
                          format: date-time
                          description: ISO 8601 representation of the end date and time of this schedule.
                        rrule:
                          type: string
                          description: Recurrence rule for this schedule.
                        exceptions:
                          type: array
                          items:
                            type: string
                            format: date-time
                          nullable: true
                          description: Array of ISO 8601 representations of the dates and times of
                            exceptions for this schedule e.g. when this schedule
                            will not be applicable.
                      required:
                        - available
                        - zone
                        - start
                        - end
                        - rrule
                      additionalProperties: false
                  required:
                    - type
                    - attributes
                  additionalProperties: false
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: resourceId
          required: true
          description: The Id of the Resource the schedule is for.
      responses:
        "201":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    anyOf:
                      - type: object
                        properties:
                          links:
                            type: object
                            properties:
                              self:
                                type: string
                                format: uri
                                description: URI to access this specific document
                            required:
                              - self
                            additionalProperties: false
                          type:
                            type: string
                            enum:
                              - ExactSchedule
                            description: Unique name for all documents that belong to this type.
                          id:
                            type: string
                            pattern: ^[a-f\d]{24}$
                            description: Unique identifier for this document.
                          attributes:
                            type: object
                            properties:
                              available:
                                type: boolean
                                description: Indicates if the schedule is available or unavailable.
                              reason:
                                type: string
                                nullable: true
                                description: Reason / identifiable label for this schedule. e.g. Default Working
                                  hours, Seasonal Opening Times etc
                              zone:
                                type: string
                                description: Timezone for this schedule.
                              start:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the start date and time of this
                                  schedule.
                              end:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the end date and time of this schedule.
                              created:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the date and time that this schedule was
                                  created at.
                              updated:
                                type: string
                                format: date-time
                                nullable: true
                                description: ISO 8601 representation of the date and time that this schedule was
                                  last updated at. If not set then this schedule
                                  has never been updated since it's creation.
                            required:
                              - available
                              - zone
                              - start
                              - end
                              - created
                              - updated
                            additionalProperties: false
                          relationships:
                            type: object
                            properties:
                              account:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Account
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              resource:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              service:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Service
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                            required:
                              - account
                            additionalProperties: false
                            description: Object where each member represents a relationship from this
                              document to any other documents.
                          meta:
                            type: object
                            properties:
                              warnings:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    code:
                                      type: string
                                    message:
                                      type: string
                                    path:
                                      type: array
                                      items:
                                        type: string
                                  required:
                                    - code
                                    - message
                                  additionalProperties: false
                                description: If set, an array of one or more non-critical issues related to this
                                  document.
                            additionalProperties: false
                            description: Object containing any additional metadata for this document.
                        required:
                          - type
                          - id
                          - attributes
                          - relationships
                        additionalProperties: false
                      - type: object
                        properties:
                          links:
                            type: object
                            properties:
                              self:
                                type: string
                                format: uri
                                description: URI to access this specific document
                            required:
                              - self
                            additionalProperties: false
                          type:
                            type: string
                            enum:
                              - RecurringSchedule
                            description: Unique name for all documents that belong to this type.
                          id:
                            type: string
                            pattern: ^[a-f\d]{24}$
                            description: Unique identifier for this document.
                          attributes:
                            type: object
                            properties:
                              available:
                                type: boolean
                                description: Indicates if the schedule is available or unavailable.
                              reason:
                                type: string
                                nullable: true
                                description: Reason / identifiable label for this schedule. e.g. Default Working
                                  hours, Seasonal Opening Times etc
                              zone:
                                type: string
                                description: Timezone for this schedule.
                              start:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the start date and time of this
                                  schedule.
                              end:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the end date and time of this schedule.
                              created:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the date and time that this schedule was
                                  created at.
                              updated:
                                type: string
                                format: date-time
                                nullable: true
                                description: ISO 8601 representation of the date and time that this schedule was
                                  last updated at. If not set then this schedule
                                  has never been updated since it's creation.
                              rrule:
                                type: string
                                description: Recurrence rule for this schedule.
                              exceptions:
                                type: array
                                items:
                                  type: string
                                  format: date-time
                                nullable: true
                                description: Array of ISO 8601 representations of the dates and times of
                                  exceptions for this schedule e.g. when this
                                  schedule will not be applicable.
                            required:
                              - available
                              - zone
                              - start
                              - end
                              - created
                              - updated
                              - rrule
                            additionalProperties: false
                          relationships:
                            type: object
                            properties:
                              account:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Account
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              resource:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              service:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Service
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                            required:
                              - account
                            additionalProperties: false
                            description: Object where each member represents a relationship from this
                              document to any other documents.
                          meta:
                            type: object
                            properties:
                              warnings:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    code:
                                      type: string
                                    message:
                                      type: string
                                    path:
                                      type: array
                                      items:
                                        type: string
                                  required:
                                    - code
                                    - message
                                  additionalProperties: false
                                description: If set, an array of one or more non-critical issues related to this
                                  document.
                            additionalProperties: false
                            description: Object containing any additional metadata for this document.
                        required:
                          - type
                          - id
                          - attributes
                          - relationships
                        additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
    get:
      summary: Get All Schedules For The Resource
      tags:
        - Resources
      description: Get a paginated view of all schedules for the resource.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: filter[available]
          required: false
          description: Returns any available or non available schedules.
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[start][after]
          required: false
          description: Returns any schedules that start after the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[start][before]
          required: false
          description: Returns any schedules that start before the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[end][after]
          required: false
          description: Returns any schedules that end after the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[end][before]
          required: false
          description: Returns any schedules that end before the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[created][after]
          required: false
          description: Returns any schedules that were created after the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[created][before]
          required: false
          description: Returns any schedules that were created before the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[updated][after]
          required: false
          description: Returns any schedules that were updated after the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[updated][before]
          required: false
          description: Returns any schedules that were updated before the given date and
            time (inclusive).
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: resourceId
          required: true
          description: The Id of the resource the schedule is for.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      anyOf:
                        - type: object
                          properties:
                            links:
                              type: object
                              properties:
                                self:
                                  type: string
                                  format: uri
                                  description: URI to access this specific document
                              required:
                                - self
                              additionalProperties: false
                            type:
                              type: string
                              enum:
                                - ExactSchedule
                              description: Unique name for all documents that belong to this type.
                            id:
                              type: string
                              pattern: ^[a-f\d]{24}$
                              description: Unique identifier for this document.
                            attributes:
                              type: object
                              properties:
                                available:
                                  type: boolean
                                  description: Indicates if the schedule is available or unavailable.
                                reason:
                                  type: string
                                  nullable: true
                                  description: Reason / identifiable label for this schedule. e.g. Default Working
                                    hours, Seasonal Opening Times etc
                                zone:
                                  type: string
                                  description: Timezone for this schedule.
                                start:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the start date and time of this
                                    schedule.
                                end:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the end date and time of this schedule.
                                created:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the date and time that this schedule was
                                    created at.
                                updated:
                                  type: string
                                  format: date-time
                                  nullable: true
                                  description: ISO 8601 representation of the date and time that this schedule was
                                    last updated at. If not set then this
                                    schedule has never been updated since it's
                                    creation.
                              required:
                                - available
                                - zone
                                - start
                                - end
                                - created
                                - updated
                              additionalProperties: false
                            relationships:
                              type: object
                              properties:
                                account:
                                  type: object
                                  properties:
                                    links:
                                      type: object
                                      properties:
                                        related:
                                          type: string
                                          format: uri
                                          nullable: true
                                          description: URI for accessing the object linked in this relationship. If the
                                            relationship does not exist this
                                            will be set to `null`.
                                      required:
                                        - related
                                      additionalProperties: false
                                      description: URI links for this relationship.
                                    data:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Account
                                          description: Type of this resource.
                                        id:
                                          type: string
                                          pattern: ^[a-f\d]{24}$
                                          description: Unique identifier of this resource.
                                      required:
                                        - type
                                        - id
                                      additionalProperties: false
                                      nullable: true
                                      description: Resource linkage to the object in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                    meta:
                                      type: object
                                      properties: {}
                                      additionalProperties: false
                                      description: Object that may include non-standard meta-information about this
                                        relationship.
                                  required:
                                    - links
                                    - data
                                    - meta
                                  additionalProperties: false
                                resource:
                                  type: object
                                  properties:
                                    links:
                                      type: object
                                      properties:
                                        related:
                                          type: string
                                          format: uri
                                          nullable: true
                                          description: URI for accessing the object linked in this relationship. If the
                                            relationship does not exist this
                                            will be set to `null`.
                                      required:
                                        - related
                                      additionalProperties: false
                                      description: URI links for this relationship.
                                    data:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Resource
                                          description: Type of this resource.
                                        id:
                                          type: string
                                          pattern: ^[a-f\d]{24}$
                                          description: Unique identifier of this resource.
                                      required:
                                        - type
                                        - id
                                      additionalProperties: false
                                      nullable: true
                                      description: Resource linkage to the object in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                    meta:
                                      type: object
                                      properties: {}
                                      additionalProperties: false
                                      description: Object that may include non-standard meta-information about this
                                        relationship.
                                  required:
                                    - links
                                    - data
                                    - meta
                                  additionalProperties: false
                                service:
                                  type: object
                                  properties:
                                    links:
                                      type: object
                                      properties:
                                        related:
                                          type: string
                                          format: uri
                                          nullable: true
                                          description: URI for accessing the object linked in this relationship. If the
                                            relationship does not exist this
                                            will be set to `null`.
                                      required:
                                        - related
                                      additionalProperties: false
                                      description: URI links for this relationship.
                                    data:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Service
                                          description: Type of this resource.
                                        id:
                                          type: string
                                          pattern: ^[a-f\d]{24}$
                                          description: Unique identifier of this resource.
                                      required:
                                        - type
                                        - id
                                      additionalProperties: false
                                      nullable: true
                                      description: Resource linkage to the object in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                    meta:
                                      type: object
                                      properties: {}
                                      additionalProperties: false
                                      description: Object that may include non-standard meta-information about this
                                        relationship.
                                  required:
                                    - links
                                    - data
                                    - meta
                                  additionalProperties: false
                              required:
                                - account
                              additionalProperties: false
                              description: Object where each member represents a relationship from this
                                document to any other documents.
                            meta:
                              type: object
                              properties:
                                warnings:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      code:
                                        type: string
                                      message:
                                        type: string
                                      path:
                                        type: array
                                        items:
                                          type: string
                                    required:
                                      - code
                                      - message
                                    additionalProperties: false
                                  description: If set, an array of one or more non-critical issues related to this
                                    document.
                              additionalProperties: false
                              description: Object containing any additional metadata for this document.
                          required:
                            - type
                            - id
                            - attributes
                            - relationships
                          additionalProperties: false
                        - type: object
                          properties:
                            links:
                              type: object
                              properties:
                                self:
                                  type: string
                                  format: uri
                                  description: URI to access this specific document
                              required:
                                - self
                              additionalProperties: false
                            type:
                              type: string
                              enum:
                                - RecurringSchedule
                              description: Unique name for all documents that belong to this type.
                            id:
                              type: string
                              pattern: ^[a-f\d]{24}$
                              description: Unique identifier for this document.
                            attributes:
                              type: object
                              properties:
                                available:
                                  type: boolean
                                  description: Indicates if the schedule is available or unavailable.
                                reason:
                                  type: string
                                  nullable: true
                                  description: Reason / identifiable label for this schedule. e.g. Default Working
                                    hours, Seasonal Opening Times etc
                                zone:
                                  type: string
                                  description: Timezone for this schedule.
                                start:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the start date and time of this
                                    schedule.
                                end:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the end date and time of this schedule.
                                created:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the date and time that this schedule was
                                    created at.
                                updated:
                                  type: string
                                  format: date-time
                                  nullable: true
                                  description: ISO 8601 representation of the date and time that this schedule was
                                    last updated at. If not set then this
                                    schedule has never been updated since it's
                                    creation.
                                rrule:
                                  type: string
                                  description: Recurrence rule for this schedule.
                                exceptions:
                                  type: array
                                  items:
                                    type: string
                                    format: date-time
                                  nullable: true
                                  description: Array of ISO 8601 representations of the dates and times of
                                    exceptions for this schedule e.g. when this
                                    schedule will not be applicable.
                              required:
                                - available
                                - zone
                                - start
                                - end
                                - created
                                - updated
                                - rrule
                              additionalProperties: false
                            relationships:
                              type: object
                              properties:
                                account:
                                  type: object
                                  properties:
                                    links:
                                      type: object
                                      properties:
                                        related:
                                          type: string
                                          format: uri
                                          nullable: true
                                          description: URI for accessing the object linked in this relationship. If the
                                            relationship does not exist this
                                            will be set to `null`.
                                      required:
                                        - related
                                      additionalProperties: false
                                      description: URI links for this relationship.
                                    data:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Account
                                          description: Type of this resource.
                                        id:
                                          type: string
                                          pattern: ^[a-f\d]{24}$
                                          description: Unique identifier of this resource.
                                      required:
                                        - type
                                        - id
                                      additionalProperties: false
                                      nullable: true
                                      description: Resource linkage to the object in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                    meta:
                                      type: object
                                      properties: {}
                                      additionalProperties: false
                                      description: Object that may include non-standard meta-information about this
                                        relationship.
                                  required:
                                    - links
                                    - data
                                    - meta
                                  additionalProperties: false
                                resource:
                                  type: object
                                  properties:
                                    links:
                                      type: object
                                      properties:
                                        related:
                                          type: string
                                          format: uri
                                          nullable: true
                                          description: URI for accessing the object linked in this relationship. If the
                                            relationship does not exist this
                                            will be set to `null`.
                                      required:
                                        - related
                                      additionalProperties: false
                                      description: URI links for this relationship.
                                    data:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Resource
                                          description: Type of this resource.
                                        id:
                                          type: string
                                          pattern: ^[a-f\d]{24}$
                                          description: Unique identifier of this resource.
                                      required:
                                        - type
                                        - id
                                      additionalProperties: false
                                      nullable: true
                                      description: Resource linkage to the object in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                    meta:
                                      type: object
                                      properties: {}
                                      additionalProperties: false
                                      description: Object that may include non-standard meta-information about this
                                        relationship.
                                  required:
                                    - links
                                    - data
                                    - meta
                                  additionalProperties: false
                                service:
                                  type: object
                                  properties:
                                    links:
                                      type: object
                                      properties:
                                        related:
                                          type: string
                                          format: uri
                                          nullable: true
                                          description: URI for accessing the object linked in this relationship. If the
                                            relationship does not exist this
                                            will be set to `null`.
                                      required:
                                        - related
                                      additionalProperties: false
                                      description: URI links for this relationship.
                                    data:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Service
                                          description: Type of this resource.
                                        id:
                                          type: string
                                          pattern: ^[a-f\d]{24}$
                                          description: Unique identifier of this resource.
                                      required:
                                        - type
                                        - id
                                      additionalProperties: false
                                      nullable: true
                                      description: Resource linkage to the object in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                    meta:
                                      type: object
                                      properties: {}
                                      additionalProperties: false
                                      description: Object that may include non-standard meta-information about this
                                        relationship.
                                  required:
                                    - links
                                    - data
                                    - meta
                                  additionalProperties: false
                              required:
                                - account
                              additionalProperties: false
                              description: Object where each member represents a relationship from this
                                document to any other documents.
                            meta:
                              type: object
                              properties:
                                warnings:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      code:
                                        type: string
                                      message:
                                        type: string
                                      path:
                                        type: array
                                        items:
                                          type: string
                                    required:
                                      - code
                                      - message
                                    additionalProperties: false
                                  description: If set, an array of one or more non-critical issues related to this
                                    document.
                              additionalProperties: false
                              description: Object containing any additional metadata for this document.
                          required:
                            - type
                            - id
                            - attributes
                            - relationships
                          additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/resources/{resourceId}/schedules/{scheduleId}:
    delete:
      summary: Delete Resource Schedule By ID
      tags:
        - Resources
      description: Delete a resource schedule by it's unique identifier.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: resourceId
          required: true
          description: The Id of the resource the schedule is for.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: scheduleId
          required: true
          description: The Id of the schedule.
      responses:
        "204":
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties: {}
                additionalProperties: false
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
    get:
      summary: Get Resource Schedule By ID
      tags:
        - Resources
      description: Get a resource schedule by it's unique identifier.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: resourceId
          required: true
          description: The Id of the resource the schedule is for.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: scheduleId
          required: true
          description: The Id of the schedule.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    anyOf:
                      - type: object
                        properties:
                          links:
                            type: object
                            properties:
                              self:
                                type: string
                                format: uri
                                description: URI to access this specific document
                            required:
                              - self
                            additionalProperties: false
                          type:
                            type: string
                            enum:
                              - ExactSchedule
                            description: Unique name for all documents that belong to this type.
                          id:
                            type: string
                            pattern: ^[a-f\d]{24}$
                            description: Unique identifier for this document.
                          attributes:
                            type: object
                            properties:
                              available:
                                type: boolean
                                description: Indicates if the schedule is available or unavailable.
                              reason:
                                type: string
                                nullable: true
                                description: Reason / identifiable label for this schedule. e.g. Default Working
                                  hours, Seasonal Opening Times etc
                              zone:
                                type: string
                                description: Timezone for this schedule.
                              start:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the start date and time of this
                                  schedule.
                              end:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the end date and time of this schedule.
                              created:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the date and time that this schedule was
                                  created at.
                              updated:
                                type: string
                                format: date-time
                                nullable: true
                                description: ISO 8601 representation of the date and time that this schedule was
                                  last updated at. If not set then this schedule
                                  has never been updated since it's creation.
                            required:
                              - available
                              - zone
                              - start
                              - end
                              - created
                              - updated
                            additionalProperties: false
                          relationships:
                            type: object
                            properties:
                              account:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Account
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              resource:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              service:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Service
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                            required:
                              - account
                            additionalProperties: false
                            description: Object where each member represents a relationship from this
                              document to any other documents.
                          meta:
                            type: object
                            properties:
                              warnings:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    code:
                                      type: string
                                    message:
                                      type: string
                                    path:
                                      type: array
                                      items:
                                        type: string
                                  required:
                                    - code
                                    - message
                                  additionalProperties: false
                                description: If set, an array of one or more non-critical issues related to this
                                  document.
                            additionalProperties: false
                            description: Object containing any additional metadata for this document.
                        required:
                          - type
                          - id
                          - attributes
                          - relationships
                        additionalProperties: false
                      - type: object
                        properties:
                          links:
                            type: object
                            properties:
                              self:
                                type: string
                                format: uri
                                description: URI to access this specific document
                            required:
                              - self
                            additionalProperties: false
                          type:
                            type: string
                            enum:
                              - RecurringSchedule
                            description: Unique name for all documents that belong to this type.
                          id:
                            type: string
                            pattern: ^[a-f\d]{24}$
                            description: Unique identifier for this document.
                          attributes:
                            type: object
                            properties:
                              available:
                                type: boolean
                                description: Indicates if the schedule is available or unavailable.
                              reason:
                                type: string
                                nullable: true
                                description: Reason / identifiable label for this schedule. e.g. Default Working
                                  hours, Seasonal Opening Times etc
                              zone:
                                type: string
                                description: Timezone for this schedule.
                              start:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the start date and time of this
                                  schedule.
                              end:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the end date and time of this schedule.
                              created:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the date and time that this schedule was
                                  created at.
                              updated:
                                type: string
                                format: date-time
                                nullable: true
                                description: ISO 8601 representation of the date and time that this schedule was
                                  last updated at. If not set then this schedule
                                  has never been updated since it's creation.
                              rrule:
                                type: string
                                description: Recurrence rule for this schedule.
                              exceptions:
                                type: array
                                items:
                                  type: string
                                  format: date-time
                                nullable: true
                                description: Array of ISO 8601 representations of the dates and times of
                                  exceptions for this schedule e.g. when this
                                  schedule will not be applicable.
                            required:
                              - available
                              - zone
                              - start
                              - end
                              - created
                              - updated
                              - rrule
                            additionalProperties: false
                          relationships:
                            type: object
                            properties:
                              account:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Account
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              resource:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              service:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Service
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                            required:
                              - account
                            additionalProperties: false
                            description: Object where each member represents a relationship from this
                              document to any other documents.
                          meta:
                            type: object
                            properties:
                              warnings:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    code:
                                      type: string
                                    message:
                                      type: string
                                    path:
                                      type: array
                                      items:
                                        type: string
                                  required:
                                    - code
                                    - message
                                  additionalProperties: false
                                description: If set, an array of one or more non-critical issues related to this
                                  document.
                            additionalProperties: false
                            description: Object containing any additional metadata for this document.
                        required:
                          - type
                          - id
                          - attributes
                          - relationships
                        additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/resources/{resourceId}:
    get:
      summary: Get Resource By ID
      tags:
        - Resources
      description: Get an Appointedd resource that you have access to by it's unique
        identifier.
      parameters:
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][schedules]
          required: false
          description: Whether to include schedules in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][blueprint]
          required: false
          description: Whether to include blueprint in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][blueprintAssociation]
          required: false
          description: Whether to include blueprintAssociation in the relationships.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: resourceId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - Resource
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          colour:
                            type: string
                            description: Hex code representing the colour of this resource.
                          name:
                            type: string
                            description: Human readable identifier for this resource.
                          email:
                            type: string
                            description: Email address associated with this resource.
                          firstName:
                            type: string
                            description: First name of the resource.
                          lastName:
                            type: string
                            description: Last name of the resource.
                          phone:
                            type: string
                            description: Phone number associated with this resource.
                          houseNo:
                            type: string
                            description: House number of the resource's address.
                          addressOne:
                            type: string
                            description: First line of the resource's address.
                          addressTwo:
                            type: string
                            description: Second line of the resource's address.
                          city:
                            type: string
                            description: City of the resource's address.
                          postcode:
                            type: string
                            description: Postcode of the resource's address.
                          description:
                            type: string
                            description: Description associated with this resource.
                          sendBookingConfirmationEmail:
                            type: boolean
                            description: Indicates if a booking confirmation email should be sent to the
                              customer when a booking is made with this
                              resource.
                          sendBookingRequestEmail:
                            type: boolean
                            description: Indicates if a booking request email should be sent to the customer
                              when a booking request is made with this resource.
                          sendBookingCancellationEmail:
                            type: boolean
                            description: Indicates if a booking cancellation email should be sent to the
                              customer when a booking is cancelled with this
                              resource.
                          additionalCommunicationEmails:
                            type: array
                            items:
                              type: string
                            description: Additional email addresses to receive communication emails for
                              bookings with this resource.
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 date and time that this resource was created at.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this resource was
                              last updated at.
                        required:
                          - name
                          - created
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          schedules:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Schedule
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          blueprint:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - ResourceBlueprint
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          blueprintAssociation:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - ResourceBlueprintAssociation
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/saml/{samlId}:
    get:
      summary: Get SAML configuration By ID
      tags:
        - SAML
      description: Get a Saml configuration that you have access to by it's unique
        identifier.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: samlId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - Saml
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          domain:
                            type: string
                            description: Domain associated to the SAML configuration.
                          defaultRole:
                            type: string
                            enum:
                              - OWNER
                              - ADMIN
                              - USER
                            description: Default role assigned to users provisioned via this SAML domain.
                          passwordSignInEnabled:
                            type: boolean
                            description: Whether users with this email domain can sign in using a password
                              in addition to SSO.
                        required:
                          - domain
                          - defaultRole
                          - passwordSignInEnabled
                        additionalProperties: false
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/saml/{samlId}/permissions:
    post:
      summary: Create SAML User Permission
      tags:
        - SAML
      description: Create a permission for a SAML user that is a member of a SAML
        domain configuration.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - SamlPermission
                  description: Unique name for all documents that belong to this type.
                attributes:
                  type: object
                  properties:
                    email:
                      type: string
                      description: Email address of the user that is associated to this SAML
                        permission.
                    role:
                      type: string
                      enum:
                        - Administrator
                        - Standard
                        - Restricted
                      description: Role on the account that this SAML permission will grant.
                    allowScheduleModification:
                      type: boolean
                      description: Indicates if the user associated to this permission can modify
                        schedules regardless of their role.
                    allowCustomerManagement:
                      type: boolean
                      description: Indicates if the user associated to this permission can manage
                        customers regardless of their role.
                    hideCalendarSync:
                      type: boolean
                      description: Indicates if the user associated to this permission has the ability
                        to view the calendar sync screens.
                  required:
                    - email
                  additionalProperties: false
                relationships:
                  type: object
                  properties:
                    accounts:
                      type: object
                      properties:
                        data:
                          type: array
                          items:
                            type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - Account
                                description: Type of this resource.
                              id:
                                type: string
                                pattern: ^[a-f\d]{24}$
                                description: Unique identifier of this resource.
                            required:
                              - type
                              - id
                            additionalProperties: false
                          minItems: 1
                          description: One or more accounts to create this SAML permission for.
                      required:
                        - data
                      additionalProperties: false
                    resources:
                      type: object
                      properties:
                        data:
                          type: array
                          items:
                            type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - Resource
                              id:
                                type: string
                                pattern: ^[a-f\d]{24}$
                                description: Unique identifier that identifies a document
                            required:
                              - type
                              - id
                            additionalProperties: false
                      required:
                        - data
                      additionalProperties: false
                  required:
                    - accounts
                  additionalProperties: false
              required:
                - type
                - attributes
                - relationships
              additionalProperties: false
        required: true
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: samlId
          required: true
      responses:
        "200":
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - SamlPermission
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            email:
                              type: string
                              description: Email address of the user that is associated to this SAML
                                permission.
                            role:
                              type: string
                              enum:
                                - Administrator
                                - Standard
                                - Restricted
                              description: Role on the account that this SAML permission will grant.
                            allowScheduleModification:
                              type: boolean
                              description: Indicates if the user associated to this permission can modify
                                schedules regardless of their role.
                            allowCustomerManagement:
                              type: boolean
                              description: Indicates if the user associated to this permission can manage
                                customers regardless of their role.
                            hideCalendarSync:
                              type: boolean
                              description: Indicates if the user associated to this permission has the ability
                                to view the calendar sync screens.
                            created:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the data and time that this SAML
                                permission was created at.
                            updated:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 representation of the date and time that this SAML
                                permission was last updated at. If not set then
                                this SAML has never been updated since it's
                                creation.
                          required:
                            - email
                            - role
                            - allowScheduleModification
                            - allowCustomerManagement
                            - hideCalendarSync
                            - created
                            - updated
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            account:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            resources:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - account
                            - resources
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                required:
                  - data
                additionalProperties: false
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
    get:
      summary: Get All Saml Permissions
      tags:
        - SAML
      description: Get a paginated view of all Appointedd Saml permissions you have
        access to for a specific saml configuration.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[accountIds]
          required: false
          description: Returns any saml permissions that belong to any of the given
            account IDs.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: samlId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - SamlPermission
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            email:
                              type: string
                              description: Email address of the user that is associated to this SAML
                                permission.
                            role:
                              type: string
                              enum:
                                - Administrator
                                - Standard
                                - Restricted
                              description: Role on the account that this SAML permission will grant.
                            allowScheduleModification:
                              type: boolean
                              description: Indicates if the user associated to this permission can modify
                                schedules regardless of their role.
                            allowCustomerManagement:
                              type: boolean
                              description: Indicates if the user associated to this permission can manage
                                customers regardless of their role.
                            hideCalendarSync:
                              type: boolean
                              description: Indicates if the user associated to this permission has the ability
                                to view the calendar sync screens.
                            created:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the data and time that this SAML
                                permission was created at.
                            updated:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 representation of the date and time that this SAML
                                permission was last updated at. If not set then
                                this SAML has never been updated since it's
                                creation.
                          required:
                            - email
                            - role
                            - allowScheduleModification
                            - allowCustomerManagement
                            - hideCalendarSync
                            - created
                            - updated
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            account:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            resources:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - account
                            - resources
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/saml/{samlId}/permissions/{permissionId}:
    delete:
      summary: Delete SAML User Permission
      tags:
        - SAML
      description: Delete a permission for a SAML user that is a member of a SAML
        domain configuration.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: samlId
          required: true
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: permissionId
          required: true
      responses:
        "204":
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties: {}
                additionalProperties: false
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
    get:
      summary: Get SAML User Permission By ID
      tags:
        - SAML
      description: Get a Saml users permission that you have access to by it's unique
        identifier.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: samlId
          required: true
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: permissionId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - SamlPermission
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          email:
                            type: string
                            description: Email address of the user that is associated to this SAML
                              permission.
                          role:
                            type: string
                            enum:
                              - Administrator
                              - Standard
                              - Restricted
                            description: Role on the account that this SAML permission will grant.
                          allowScheduleModification:
                            type: boolean
                            description: Indicates if the user associated to this permission can modify
                              schedules regardless of their role.
                          allowCustomerManagement:
                            type: boolean
                            description: Indicates if the user associated to this permission can manage
                              customers regardless of their role.
                          hideCalendarSync:
                            type: boolean
                            description: Indicates if the user associated to this permission has the ability
                              to view the calendar sync screens.
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the data and time that this SAML
                              permission was created at.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this SAML
                              permission was last updated at. If not set then
                              this SAML has never been updated since it's
                              creation.
                        required:
                          - email
                          - role
                          - allowScheduleModification
                          - allowCustomerManagement
                          - hideCalendarSync
                          - created
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          resources:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Resource
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                          - resources
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
    patch:
      summary: Update SAML User Permission
      tags:
        - SAML
      description: Update a permission for a SAML user that is a member of a SAML
        domain configuration.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - SamlPermission
                  description: Unique name for all documents that belong to this type.
                attributes:
                  type: object
                  properties:
                    email:
                      type: string
                      description: Email address of the user that is associated to this SAML
                        permission.
                    role:
                      type: string
                      enum:
                        - Administrator
                        - Standard
                        - Restricted
                      description: Role on the account that this SAML permission will grant.
                    allowScheduleModification:
                      type: boolean
                      description: Indicates if the user associated to this permission can modify
                        schedules regardless of their role.
                    allowCustomerManagement:
                      type: boolean
                      description: Indicates if the user associated to this permission can manage
                        customers regardless of their role.
                    hideCalendarSync:
                      type: boolean
                      description: Indicates if the user associated to this permission has the ability
                        to view the calendar sync screens.
                  additionalProperties: false
                relationships:
                  type: object
                  properties:
                    account:
                      type: object
                      properties:
                        data:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - Account
                              description: Type of this resource.
                            id:
                              type: string
                              pattern: ^[a-f\d]{24}$
                              description: Unique identifier of this resource.
                          required:
                            - type
                            - id
                          additionalProperties: false
                      required:
                        - data
                      additionalProperties: false
                    resources:
                      type: object
                      properties:
                        add:
                          type: array
                          items:
                            type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - Resource
                              id:
                                type: string
                                pattern: ^[a-f\d]{24}$
                                description: Unique identifier that identifies a document
                            required:
                              - type
                              - id
                            additionalProperties: false
                        remove:
                          type: array
                          items:
                            type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - Resource
                              id:
                                type: string
                                pattern: ^[a-f\d]{24}$
                                description: Unique identifier that identifies a document
                            required:
                              - type
                              - id
                            additionalProperties: false
                      additionalProperties: false
                      description: Define resources to be added and/or removed from this SAML
                        permission
                  additionalProperties: false
              required:
                - type
              additionalProperties: false
        required: true
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: samlId
          required: true
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: permissionId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - SamlPermission
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          email:
                            type: string
                            description: Email address of the user that is associated to this SAML
                              permission.
                          role:
                            type: string
                            enum:
                              - Administrator
                              - Standard
                              - Restricted
                            description: Role on the account that this SAML permission will grant.
                          allowScheduleModification:
                            type: boolean
                            description: Indicates if the user associated to this permission can modify
                              schedules regardless of their role.
                          allowCustomerManagement:
                            type: boolean
                            description: Indicates if the user associated to this permission can manage
                              customers regardless of their role.
                          hideCalendarSync:
                            type: boolean
                            description: Indicates if the user associated to this permission has the ability
                              to view the calendar sync screens.
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the data and time that this SAML
                              permission was created at.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this SAML
                              permission was last updated at. If not set then
                              this SAML has never been updated since it's
                              creation.
                        required:
                          - email
                          - role
                          - allowScheduleModification
                          - allowCustomerManagement
                          - hideCalendarSync
                          - created
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          resources:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Resource
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                          - resources
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/saml/{samlId}/permissions/{permissionId}/resources:
    get:
      summary: Get Saml Permission Resources
      tags:
        - SAML
        - Resources
      description: Get a paginated view of all Appointedd resources associated to a
        specific saml permission.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[accountIds]
          required: false
          description: Returns any resources that belong to any of the given account IDs.
        - schema:
            type: string
            minLength: 1
            maxLength: 2000
          in: query
          name: filter[name]
          required: false
          description: Returns any resources with the exact given name.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][schedules]
          required: false
          description: Whether to include schedules in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][blueprint]
          required: false
          description: Whether to include blueprint in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][blueprintAssociation]
          required: false
          description: Whether to include blueprintAssociation in the relationships.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: samlId
          required: true
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: permissionId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - Resource
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            colour:
                              type: string
                              description: Hex code representing the colour of this resource.
                            name:
                              type: string
                              description: Human readable identifier for this resource.
                            email:
                              type: string
                              description: Email address associated with this resource.
                            firstName:
                              type: string
                              description: First name of the resource.
                            lastName:
                              type: string
                              description: Last name of the resource.
                            phone:
                              type: string
                              description: Phone number associated with this resource.
                            houseNo:
                              type: string
                              description: House number of the resource's address.
                            addressOne:
                              type: string
                              description: First line of the resource's address.
                            addressTwo:
                              type: string
                              description: Second line of the resource's address.
                            city:
                              type: string
                              description: City of the resource's address.
                            postcode:
                              type: string
                              description: Postcode of the resource's address.
                            description:
                              type: string
                              description: Description associated with this resource.
                            sendBookingConfirmationEmail:
                              type: boolean
                              description: Indicates if a booking confirmation email should be sent to the
                                customer when a booking is made with this
                                resource.
                            sendBookingRequestEmail:
                              type: boolean
                              description: Indicates if a booking request email should be sent to the customer
                                when a booking request is made with this
                                resource.
                            sendBookingCancellationEmail:
                              type: boolean
                              description: Indicates if a booking cancellation email should be sent to the
                                customer when a booking is cancelled with this
                                resource.
                            additionalCommunicationEmails:
                              type: array
                              items:
                                type: string
                              description: Additional email addresses to receive communication emails for
                                bookings with this resource.
                            created:
                              type: string
                              format: date-time
                              description: ISO 8601 date and time that this resource was created at.
                            updated:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 representation of the date and time that this resource was
                                last updated at.
                          required:
                            - name
                            - created
                            - updated
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            account:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            schedules:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Schedule
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                            blueprint:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - ResourceBlueprint
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            blueprintAssociation:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - ResourceBlueprintAssociation
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - account
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/schedules:
    get:
      summary: Get All Schedules
      tags:
        - Schedules
      description: Get a paginated view of all Appointedd schedules you have access to.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: filter[available]
          required: false
          description: Returns any available or non available schedules.
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[start][after]
          required: false
          description: Returns any schedules that start after the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[start][before]
          required: false
          description: Returns any schedules that start before the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[end][after]
          required: false
          description: Returns any schedules that end after the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[end][before]
          required: false
          description: Returns any schedules that end before the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[created][after]
          required: false
          description: Returns any schedules that were created after the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[created][before]
          required: false
          description: Returns any schedules that were created before the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[updated][after]
          required: false
          description: Returns any schedules that were updated after the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[updated][before]
          required: false
          description: Returns any schedules that were updated before the given date and
            time (inclusive).
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      anyOf:
                        - type: object
                          properties:
                            links:
                              type: object
                              properties:
                                self:
                                  type: string
                                  format: uri
                                  description: URI to access this specific document
                              required:
                                - self
                              additionalProperties: false
                            type:
                              type: string
                              enum:
                                - ExactSchedule
                              description: Unique name for all documents that belong to this type.
                            id:
                              type: string
                              pattern: ^[a-f\d]{24}$
                              description: Unique identifier for this document.
                            attributes:
                              type: object
                              properties:
                                available:
                                  type: boolean
                                  description: Indicates if the schedule is available or unavailable.
                                reason:
                                  type: string
                                  nullable: true
                                  description: Reason / identifiable label for this schedule. e.g. Default Working
                                    hours, Seasonal Opening Times etc
                                zone:
                                  type: string
                                  description: Timezone for this schedule.
                                start:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the start date and time of this
                                    schedule.
                                end:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the end date and time of this schedule.
                                created:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the date and time that this schedule was
                                    created at.
                                updated:
                                  type: string
                                  format: date-time
                                  nullable: true
                                  description: ISO 8601 representation of the date and time that this schedule was
                                    last updated at. If not set then this
                                    schedule has never been updated since it's
                                    creation.
                              required:
                                - available
                                - zone
                                - start
                                - end
                                - created
                                - updated
                              additionalProperties: false
                            relationships:
                              type: object
                              properties:
                                account:
                                  type: object
                                  properties:
                                    links:
                                      type: object
                                      properties:
                                        related:
                                          type: string
                                          format: uri
                                          nullable: true
                                          description: URI for accessing the object linked in this relationship. If the
                                            relationship does not exist this
                                            will be set to `null`.
                                      required:
                                        - related
                                      additionalProperties: false
                                      description: URI links for this relationship.
                                    data:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Account
                                          description: Type of this resource.
                                        id:
                                          type: string
                                          pattern: ^[a-f\d]{24}$
                                          description: Unique identifier of this resource.
                                      required:
                                        - type
                                        - id
                                      additionalProperties: false
                                      nullable: true
                                      description: Resource linkage to the object in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                    meta:
                                      type: object
                                      properties: {}
                                      additionalProperties: false
                                      description: Object that may include non-standard meta-information about this
                                        relationship.
                                  required:
                                    - links
                                    - data
                                    - meta
                                  additionalProperties: false
                                resource:
                                  type: object
                                  properties:
                                    links:
                                      type: object
                                      properties:
                                        related:
                                          type: string
                                          format: uri
                                          nullable: true
                                          description: URI for accessing the object linked in this relationship. If the
                                            relationship does not exist this
                                            will be set to `null`.
                                      required:
                                        - related
                                      additionalProperties: false
                                      description: URI links for this relationship.
                                    data:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Resource
                                          description: Type of this resource.
                                        id:
                                          type: string
                                          pattern: ^[a-f\d]{24}$
                                          description: Unique identifier of this resource.
                                      required:
                                        - type
                                        - id
                                      additionalProperties: false
                                      nullable: true
                                      description: Resource linkage to the object in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                    meta:
                                      type: object
                                      properties: {}
                                      additionalProperties: false
                                      description: Object that may include non-standard meta-information about this
                                        relationship.
                                  required:
                                    - links
                                    - data
                                    - meta
                                  additionalProperties: false
                                service:
                                  type: object
                                  properties:
                                    links:
                                      type: object
                                      properties:
                                        related:
                                          type: string
                                          format: uri
                                          nullable: true
                                          description: URI for accessing the object linked in this relationship. If the
                                            relationship does not exist this
                                            will be set to `null`.
                                      required:
                                        - related
                                      additionalProperties: false
                                      description: URI links for this relationship.
                                    data:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Service
                                          description: Type of this resource.
                                        id:
                                          type: string
                                          pattern: ^[a-f\d]{24}$
                                          description: Unique identifier of this resource.
                                      required:
                                        - type
                                        - id
                                      additionalProperties: false
                                      nullable: true
                                      description: Resource linkage to the object in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                    meta:
                                      type: object
                                      properties: {}
                                      additionalProperties: false
                                      description: Object that may include non-standard meta-information about this
                                        relationship.
                                  required:
                                    - links
                                    - data
                                    - meta
                                  additionalProperties: false
                              required:
                                - account
                              additionalProperties: false
                              description: Object where each member represents a relationship from this
                                document to any other documents.
                            meta:
                              type: object
                              properties:
                                warnings:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      code:
                                        type: string
                                      message:
                                        type: string
                                      path:
                                        type: array
                                        items:
                                          type: string
                                    required:
                                      - code
                                      - message
                                    additionalProperties: false
                                  description: If set, an array of one or more non-critical issues related to this
                                    document.
                              additionalProperties: false
                              description: Object containing any additional metadata for this document.
                          required:
                            - type
                            - id
                            - attributes
                            - relationships
                          additionalProperties: false
                        - type: object
                          properties:
                            links:
                              type: object
                              properties:
                                self:
                                  type: string
                                  format: uri
                                  description: URI to access this specific document
                              required:
                                - self
                              additionalProperties: false
                            type:
                              type: string
                              enum:
                                - RecurringSchedule
                              description: Unique name for all documents that belong to this type.
                            id:
                              type: string
                              pattern: ^[a-f\d]{24}$
                              description: Unique identifier for this document.
                            attributes:
                              type: object
                              properties:
                                available:
                                  type: boolean
                                  description: Indicates if the schedule is available or unavailable.
                                reason:
                                  type: string
                                  nullable: true
                                  description: Reason / identifiable label for this schedule. e.g. Default Working
                                    hours, Seasonal Opening Times etc
                                zone:
                                  type: string
                                  description: Timezone for this schedule.
                                start:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the start date and time of this
                                    schedule.
                                end:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the end date and time of this schedule.
                                created:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the date and time that this schedule was
                                    created at.
                                updated:
                                  type: string
                                  format: date-time
                                  nullable: true
                                  description: ISO 8601 representation of the date and time that this schedule was
                                    last updated at. If not set then this
                                    schedule has never been updated since it's
                                    creation.
                                rrule:
                                  type: string
                                  description: Recurrence rule for this schedule.
                                exceptions:
                                  type: array
                                  items:
                                    type: string
                                    format: date-time
                                  nullable: true
                                  description: Array of ISO 8601 representations of the dates and times of
                                    exceptions for this schedule e.g. when this
                                    schedule will not be applicable.
                              required:
                                - available
                                - zone
                                - start
                                - end
                                - created
                                - updated
                                - rrule
                              additionalProperties: false
                            relationships:
                              type: object
                              properties:
                                account:
                                  type: object
                                  properties:
                                    links:
                                      type: object
                                      properties:
                                        related:
                                          type: string
                                          format: uri
                                          nullable: true
                                          description: URI for accessing the object linked in this relationship. If the
                                            relationship does not exist this
                                            will be set to `null`.
                                      required:
                                        - related
                                      additionalProperties: false
                                      description: URI links for this relationship.
                                    data:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Account
                                          description: Type of this resource.
                                        id:
                                          type: string
                                          pattern: ^[a-f\d]{24}$
                                          description: Unique identifier of this resource.
                                      required:
                                        - type
                                        - id
                                      additionalProperties: false
                                      nullable: true
                                      description: Resource linkage to the object in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                    meta:
                                      type: object
                                      properties: {}
                                      additionalProperties: false
                                      description: Object that may include non-standard meta-information about this
                                        relationship.
                                  required:
                                    - links
                                    - data
                                    - meta
                                  additionalProperties: false
                                resource:
                                  type: object
                                  properties:
                                    links:
                                      type: object
                                      properties:
                                        related:
                                          type: string
                                          format: uri
                                          nullable: true
                                          description: URI for accessing the object linked in this relationship. If the
                                            relationship does not exist this
                                            will be set to `null`.
                                      required:
                                        - related
                                      additionalProperties: false
                                      description: URI links for this relationship.
                                    data:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Resource
                                          description: Type of this resource.
                                        id:
                                          type: string
                                          pattern: ^[a-f\d]{24}$
                                          description: Unique identifier of this resource.
                                      required:
                                        - type
                                        - id
                                      additionalProperties: false
                                      nullable: true
                                      description: Resource linkage to the object in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                    meta:
                                      type: object
                                      properties: {}
                                      additionalProperties: false
                                      description: Object that may include non-standard meta-information about this
                                        relationship.
                                  required:
                                    - links
                                    - data
                                    - meta
                                  additionalProperties: false
                                service:
                                  type: object
                                  properties:
                                    links:
                                      type: object
                                      properties:
                                        related:
                                          type: string
                                          format: uri
                                          nullable: true
                                          description: URI for accessing the object linked in this relationship. If the
                                            relationship does not exist this
                                            will be set to `null`.
                                      required:
                                        - related
                                      additionalProperties: false
                                      description: URI links for this relationship.
                                    data:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Service
                                          description: Type of this resource.
                                        id:
                                          type: string
                                          pattern: ^[a-f\d]{24}$
                                          description: Unique identifier of this resource.
                                      required:
                                        - type
                                        - id
                                      additionalProperties: false
                                      nullable: true
                                      description: Resource linkage to the object in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                    meta:
                                      type: object
                                      properties: {}
                                      additionalProperties: false
                                      description: Object that may include non-standard meta-information about this
                                        relationship.
                                  required:
                                    - links
                                    - data
                                    - meta
                                  additionalProperties: false
                              required:
                                - account
                              additionalProperties: false
                              description: Object where each member represents a relationship from this
                                document to any other documents.
                            meta:
                              type: object
                              properties:
                                warnings:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      code:
                                        type: string
                                      message:
                                        type: string
                                      path:
                                        type: array
                                        items:
                                          type: string
                                    required:
                                      - code
                                      - message
                                    additionalProperties: false
                                  description: If set, an array of one or more non-critical issues related to this
                                    document.
                              additionalProperties: false
                              description: Object containing any additional metadata for this document.
                          required:
                            - type
                            - id
                            - attributes
                            - relationships
                          additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/schedules/{scheduleId}:
    patch:
      summary: Update a specific schedule.
      tags:
        - Schedules
      description: Update a Schedule
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - ExactSchedule
                    attributes:
                      type: object
                      properties:
                        reason:
                          type: string
                          nullable: true
                          description: Reason / identifiable label for this schedule. e.g. Default Working
                            hours, Seasonal Opening Times etc
                        zone:
                          type: string
                          description: Timezone for this schedule.
                        start:
                          type: string
                          format: date-time
                          description: ISO 8601 representation of the start date and time of this
                            schedule.
                        end:
                          type: string
                          format: date-time
                          description: ISO 8601 representation of the end date and time of this schedule.
                      additionalProperties: false
                  required:
                    - type
                    - attributes
                  additionalProperties: false
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - RecurringSchedule
                    attributes:
                      type: object
                      properties:
                        reason:
                          type: string
                          nullable: true
                          description: Reason / identifiable label for this schedule. e.g. Default Working
                            hours, Seasonal Opening Times etc
                        zone:
                          type: string
                          description: Timezone for this schedule.
                        start:
                          type: string
                          format: date-time
                          description: ISO 8601 representation of the start date and time of this
                            schedule.
                        end:
                          type: string
                          format: date-time
                          description: ISO 8601 representation of the end date and time of this schedule.
                        rrule:
                          type: string
                          description: Recurrence rule for this schedule.
                        exceptions:
                          type: array
                          items:
                            type: string
                            format: date-time
                          nullable: true
                          description: Array of ISO 8601 representations of the dates and times of
                            exceptions for this schedule e.g. when this schedule
                            will not be applicable.
                      additionalProperties: false
                  required:
                    - type
                    - attributes
                  additionalProperties: false
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: scheduleId
          required: true
          description: The Id of the schedule to update.
      responses:
        "201":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    anyOf:
                      - type: object
                        properties:
                          links:
                            type: object
                            properties:
                              self:
                                type: string
                                format: uri
                                description: URI to access this specific document
                            required:
                              - self
                            additionalProperties: false
                          type:
                            type: string
                            enum:
                              - ExactSchedule
                            description: Unique name for all documents that belong to this type.
                          id:
                            type: string
                            pattern: ^[a-f\d]{24}$
                            description: Unique identifier for this document.
                          attributes:
                            type: object
                            properties:
                              available:
                                type: boolean
                                description: Indicates if the schedule is available or unavailable.
                              reason:
                                type: string
                                nullable: true
                                description: Reason / identifiable label for this schedule. e.g. Default Working
                                  hours, Seasonal Opening Times etc
                              zone:
                                type: string
                                description: Timezone for this schedule.
                              start:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the start date and time of this
                                  schedule.
                              end:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the end date and time of this schedule.
                              created:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the date and time that this schedule was
                                  created at.
                              updated:
                                type: string
                                format: date-time
                                nullable: true
                                description: ISO 8601 representation of the date and time that this schedule was
                                  last updated at. If not set then this schedule
                                  has never been updated since it's creation.
                            required:
                              - available
                              - zone
                              - start
                              - end
                              - created
                              - updated
                            additionalProperties: false
                          relationships:
                            type: object
                            properties:
                              account:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Account
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              resource:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              service:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Service
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                            required:
                              - account
                            additionalProperties: false
                            description: Object where each member represents a relationship from this
                              document to any other documents.
                          meta:
                            type: object
                            properties:
                              warnings:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    code:
                                      type: string
                                    message:
                                      type: string
                                    path:
                                      type: array
                                      items:
                                        type: string
                                  required:
                                    - code
                                    - message
                                  additionalProperties: false
                                description: If set, an array of one or more non-critical issues related to this
                                  document.
                            additionalProperties: false
                            description: Object containing any additional metadata for this document.
                        required:
                          - type
                          - id
                          - attributes
                          - relationships
                        additionalProperties: false
                      - type: object
                        properties:
                          links:
                            type: object
                            properties:
                              self:
                                type: string
                                format: uri
                                description: URI to access this specific document
                            required:
                              - self
                            additionalProperties: false
                          type:
                            type: string
                            enum:
                              - RecurringSchedule
                            description: Unique name for all documents that belong to this type.
                          id:
                            type: string
                            pattern: ^[a-f\d]{24}$
                            description: Unique identifier for this document.
                          attributes:
                            type: object
                            properties:
                              available:
                                type: boolean
                                description: Indicates if the schedule is available or unavailable.
                              reason:
                                type: string
                                nullable: true
                                description: Reason / identifiable label for this schedule. e.g. Default Working
                                  hours, Seasonal Opening Times etc
                              zone:
                                type: string
                                description: Timezone for this schedule.
                              start:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the start date and time of this
                                  schedule.
                              end:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the end date and time of this schedule.
                              created:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the date and time that this schedule was
                                  created at.
                              updated:
                                type: string
                                format: date-time
                                nullable: true
                                description: ISO 8601 representation of the date and time that this schedule was
                                  last updated at. If not set then this schedule
                                  has never been updated since it's creation.
                              rrule:
                                type: string
                                description: Recurrence rule for this schedule.
                              exceptions:
                                type: array
                                items:
                                  type: string
                                  format: date-time
                                nullable: true
                                description: Array of ISO 8601 representations of the dates and times of
                                  exceptions for this schedule e.g. when this
                                  schedule will not be applicable.
                            required:
                              - available
                              - zone
                              - start
                              - end
                              - created
                              - updated
                              - rrule
                            additionalProperties: false
                          relationships:
                            type: object
                            properties:
                              account:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Account
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              resource:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              service:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Service
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                            required:
                              - account
                            additionalProperties: false
                            description: Object where each member represents a relationship from this
                              document to any other documents.
                          meta:
                            type: object
                            properties:
                              warnings:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    code:
                                      type: string
                                    message:
                                      type: string
                                    path:
                                      type: array
                                      items:
                                        type: string
                                  required:
                                    - code
                                    - message
                                  additionalProperties: false
                                description: If set, an array of one or more non-critical issues related to this
                                  document.
                            additionalProperties: false
                            description: Object containing any additional metadata for this document.
                        required:
                          - type
                          - id
                          - attributes
                          - relationships
                        additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/services/categories:
    post:
      summary: Create Service Category
      tags:
        - ServiceCategories
      description: Create a new service category
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - ServiceCategory
                  description: Unique name for all documents that belong to this type.
                attributes:
                  type: object
                  properties:
                    name:
                      type: string
                      description: Human readable identifier for this service category.
                  required:
                    - name
                  additionalProperties: false
                relationships:
                  type: object
                  properties:
                    account:
                      type: object
                      properties:
                        data:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - Account
                              description: Type of this resource.
                            id:
                              type: string
                              pattern: ^[a-f\d]{24}$
                              description: Unique identifier of this resource.
                          required:
                            - type
                            - id
                          additionalProperties: false
                      required:
                        - data
                      additionalProperties: false
                  required:
                    - account
                  additionalProperties: false
              required:
                - type
                - attributes
                - relationships
              additionalProperties: false
        required: true
      security: []
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - ServiceCategory
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          name:
                            type: string
                            description: Human readable identifier for this service category.
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time that this service
                              category was created at.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this service
                              category was last updated at. If not set then this
                              service category has never been updated since it's
                              creation.
                        required:
                          - name
                          - created
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
    get:
      summary: Get All Service Categories
      tags:
        - ServiceCategories
      description: Get a paginated view of all Appointedd service categories you have
        access to.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[accountIds]
          required: false
          description: Returns any service categories that belong to any of the given
            account IDs.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - ServiceCategory
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            name:
                              type: string
                              description: Human readable identifier for this service category.
                            created:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time that this service
                                category was created at.
                            updated:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 representation of the date and time that this service
                                category was last updated at. If not set then
                                this service category has never been updated
                                since it's creation.
                          required:
                            - name
                            - created
                            - updated
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            account:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - account
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/services/categories/{serviceCategoryId}:
    get:
      summary: Get Service Category By ID
      tags:
        - ServiceCategories
      description: Get a specific service category by it's unique identifier
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: serviceCategoryId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - ServiceCategory
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          name:
                            type: string
                            description: Human readable identifier for this service category.
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time that this service
                              category was created at.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this service
                              category was last updated at. If not set then this
                              service category has never been updated since it's
                              creation.
                        required:
                          - name
                          - created
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/services:
    post:
      summary: Create Service
      tags:
        - Services
      description: Create a new service
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - Service
                  description: Unique name for all documents that belong to this type.
                attributes:
                  type: object
                  properties:
                    name:
                      type: string
                      description: Human readable identifier for this service.
                    description:
                      type: string
                      nullable: true
                      description: description for this service.
                    serviceType:
                      type: string
                      enum:
                        - Standard
                        - MultiTier
                        - MultiPart
                        - Event
                      description: The type of service. Dictates service type specific functionality.
                    durations:
                      type: array
                      items:
                        type: object
                        properties:
                          minutes:
                            type: number
                            minimum: 1
                            maximum: 43200
                            description: How long the duration lasts in minutes. This value is ignored when
                              the serviceType is set to 'MultiPart'.
                          isDefaultDuration:
                            type: boolean
                            description: The default duration selected during the booking flow.
                          price:
                            anyOf:
                              - type: string
                                enum:
                                  - POA
                              - type: number
                                minimum: 0
                            description: The price of this duration. If POA, indicates that the price is
                              determined outwith the booking flow.
                          oldPrice:
                            type: number
                            minimum: 0
                            nullable: true
                            description: The old price of this service, if provided will display the current
                              price as an offer.
                        required:
                          - minutes
                          - isDefaultDuration
                          - price
                          - oldPrice
                        additionalProperties: false
                      description: A list of possible durations on this service.
                    bookingPaymentOption:
                      type: string
                      enum:
                        - Full
                        - Deposit
                        - None
                      description: Determines if this service needs to be paid for, and if so how it
                        will be paid.
                    bookingVisibilityType:
                      type: string
                      enum:
                        - Bookable
                        - Request
                        - Unavailable
                        - Invisible
                      description: Determines the visibility of the service on customer facing booking
                        tools.
                    allowExternalParticipants:
                      type: boolean
                      description: If set to true, customers are allowed to book externally onto an
                        existing event of this service.
                    resourceAllocationType:
                      type: string
                      enum:
                        - Any
                        - All
                        - Group
                      description: Indicates what resource or resource groups need to be available in
                        order for this service to be available for booking.
                    occupancy:
                      type: number
                      minimum: 1
                      maximum: 500
                      description: The maximum number of participants or spaces that can be present on
                        an event using this service.
                    maxOccupancyPerBooking:
                      type: number
                      minimum: 1
                      maximum: 500
                      description: The maximum number of participants or spaces that can be applied to
                        a single booking participant. Cannot be a higher value
                        than the occupancy.
                    tiers:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                            description: The customer facing label of this tier.
                          description:
                            type: string
                            nullable: true
                            description: The description associated to this tier.
                          pricingType:
                            type: string
                            enum:
                              - Single
                              - Multiple
                            description: Indicates if this tier has a single price or multiple price points.
                          pricePoints:
                            type: array
                            items:
                              type: object
                              properties:
                                name:
                                  type: string
                                  nullable: true
                                  description: The customer facing label of this price point.
                                spacesPerQuantity:
                                  type: number
                                  minimum: 1
                                  description: The number of spaces that will be taken up on a booking for every
                                    quantity of this price point.
                                pricePerQuantity:
                                  type: number
                                  description: The price per quantity of this price point being applied to a
                                    booking.
                              required:
                                - spacesPerQuantity
                                - pricePerQuantity
                              additionalProperties: false
                        required:
                          - name
                          - pricingType
                          - pricePoints
                        additionalProperties: false
                      description: A list of possible tiers on this service. Only available for
                        services of serviceType MultiTier.
                    parts:
                      type: array
                      items:
                        type: object
                        properties:
                          label:
                            type: string
                            description: An internal label used to identify the part.
                          partType:
                            type: string
                            enum:
                              - Free
                              - Block
                            description: Determine if this part blocks time or is free to be booked.
                          durationInMinutes:
                            type: number
                            minimum: 0
                            maximum: 43200
                            description: The length of time the part will be in minutes.
                        required:
                          - label
                          - partType
                          - durationInMinutes
                        additionalProperties: false
                      description: A list of possible parts on this service. Only available for
                        services of serviceType MultiPart.
                    eventTicketsEnabled:
                      type: boolean
                      description: If set to true, newly created customer bookings with serviceType
                        `Event` will auto generate QR code tickets that are
                        included in customer email correspondence.
                    image:
                      type: string
                      format: uri
                      nullable: true
                      description: URL of an image associated with this service.
                    buffers:
                      type: object
                      properties:
                        before:
                          type: number
                          minimum: 0
                          description: Buffer time before the service in minutes
                        after:
                          type: number
                          minimum: 0
                          description: Buffer time after the service in minutes
                      required:
                        - before
                        - after
                      additionalProperties: false
                      description: Buffer times before and after service appointments
                    location:
                      type: string
                      nullable: true
                      description: Free-text location description for this service
                    videoConferencingEnabled:
                      type: boolean
                      description: If set to true, video conferencing (Teams/Zoom) is enabled for this
                        service
                    availabilityNoticePeriodMinutes:
                      type: number
                      minimum: 0
                      nullable: true
                      description: Minimum notice period in minutes required for online bookings. If
                        null, falls back to organization setting
                    rescheduleEnabled:
                      type: boolean
                      description: If set to true, customers are allowed to reschedule bookings for
                        this service
                    rescheduleResourceSelectionEnabled:
                      type: boolean
                      description: If set to true, customers can select a different resource when
                        rescheduling
                    rescheduleNoticePeriodMinutes:
                      type: number
                      minimum: 0
                      description: Minimum notice period in minutes required for rescheduling
                    bookingDepositAmount:
                      type: number
                      minimum: 5
                      maximum: 90
                      nullable: true
                      description: Deposit amount as a percentage (5-90). Only relevant when
                        bookingPaymentOption is set to 'Deposit'
                    bookingPaymentIsOptional:
                      type: boolean
                      description: If set to true, payment is optional for this service. Only relevant
                        when bookingPaymentOption is 'Full' or 'Deposit'
                  required:
                    - name
                    - serviceType
                    - durations
                    - bookingPaymentOption
                    - bookingVisibilityType
                    - resourceAllocationType
                    - occupancy
                    - maxOccupancyPerBooking
                  additionalProperties: false
                relationships:
                  type: object
                  properties:
                    account:
                      type: object
                      properties:
                        data:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - Account
                              description: Type of this resource.
                            id:
                              type: string
                              pattern: ^[a-f\d]{24}$
                              description: Unique identifier of this resource.
                          required:
                            - type
                            - id
                          additionalProperties: false
                      required:
                        - data
                      additionalProperties: false
                    serviceCategory:
                      type: object
                      properties:
                        data:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - ServiceCategory
                              description: Type of this resource.
                            id:
                              type: string
                              pattern: ^[a-f\d]{24}$
                              description: Unique identifier of this resource.
                          required:
                            - type
                            - id
                          additionalProperties: false
                      required:
                        - data
                      additionalProperties: false
                    resources:
                      type: object
                      properties:
                        data:
                          type: array
                          items:
                            type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - Resource
                              id:
                                type: string
                                pattern: ^[a-f\d]{24}$
                                description: Unique identifier that identifies a document
                            required:
                              - type
                              - id
                            additionalProperties: false
                      required:
                        - data
                      additionalProperties: false
                      description: Becomes mandatory when resourceAllocationType is set to All or Any.
                    resourceGroups:
                      type: object
                      properties:
                        data:
                          type: array
                          items:
                            type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - ResourceGroup
                              id:
                                type: string
                                pattern: ^[a-f\d]{24}$
                                description: Unique identifier that identifies a document
                            required:
                              - type
                              - id
                            additionalProperties: false
                      required:
                        - data
                      additionalProperties: false
                      description: Becomes mandatory when resourceAllocationType is set to Group.
                  required:
                    - account
                    - serviceCategory
                  additionalProperties: false
              required:
                - type
                - attributes
                - relationships
              additionalProperties: false
        required: true
      security: []
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - Service
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          name:
                            type: string
                            description: Human readable identifier for this service.
                          description:
                            type: string
                            nullable: true
                            description: description for this service.
                          serviceType:
                            type: string
                            enum:
                              - Standard
                              - MultiTier
                              - MultiPart
                              - Event
                            description: The type of service. Dictates service type specific functionality.
                          durations:
                            type: array
                            items:
                              type: object
                              properties:
                                minutes:
                                  type: number
                                  minimum: 1
                                  maximum: 43200
                                  description: How long the duration lasts in minutes. This value is ignored when
                                    the serviceType is set to 'MultiPart'.
                                isDefaultDuration:
                                  type: boolean
                                  description: The default duration selected during the booking flow.
                                price:
                                  anyOf:
                                    - type: string
                                      enum:
                                        - POA
                                    - type: number
                                      minimum: 0
                                  description: The price of this duration. If POA, indicates that the price is
                                    determined outwith the booking flow.
                                oldPrice:
                                  type: number
                                  minimum: 0
                                  nullable: true
                                  description: The old price of this service, if provided will display the current
                                    price as an offer.
                              required:
                                - minutes
                                - isDefaultDuration
                                - price
                                - oldPrice
                              additionalProperties: false
                            description: A list of possible durations on this service.
                          bookingPaymentOption:
                            type: string
                            enum:
                              - Full
                              - Deposit
                              - None
                            description: Determines if this service needs to be paid for, and if so how it
                              will be paid.
                          bookingVisibilityType:
                            type: string
                            enum:
                              - Bookable
                              - Request
                              - Unavailable
                              - Invisible
                            description: Determines the visibility of the service on customer facing booking
                              tools.
                          allowExternalParticipants:
                            type: boolean
                            description: If set to true, customers are allowed to book externally onto an
                              existing event of this service.
                          resourceAllocationType:
                            type: string
                            enum:
                              - Any
                              - All
                              - Group
                            description: Indicates what resource or resource groups need to be available in
                              order for this service to be available for
                              booking.
                          occupancy:
                            type: number
                            minimum: 1
                            maximum: 500
                            description: The maximum number of participants or spaces that can be present on
                              an event using this service.
                          maxOccupancyPerBooking:
                            type: number
                            minimum: 1
                            maximum: 500
                            description: The maximum number of participants or spaces that can be applied to
                              a single booking participant. Cannot be a higher
                              value than the occupancy.
                          tiers:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  description: The internal reference used to identify this tier.
                                name:
                                  type: string
                                  description: The customer facing label of this tier.
                                description:
                                  type: string
                                  nullable: true
                                  description: The description associated to this tier.
                                pricingType:
                                  type: string
                                  enum:
                                    - Single
                                    - Multiple
                                  description: Indicates if this tier has a single price or multiple price points.
                                pricePoints:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                        description: The internal reference used to identify this price point.
                                      name:
                                        type: string
                                        nullable: true
                                        description: The customer facing label of this price point.
                                      spacesPerQuantity:
                                        type: number
                                        minimum: 1
                                        description: The number of spaces that will be taken up on a booking for every
                                          quantity of this price point.
                                      pricePerQuantity:
                                        type: number
                                        description: The price per quantity of this price point being applied to a
                                          booking.
                                    required:
                                      - id
                                      - spacesPerQuantity
                                      - pricePerQuantity
                                    additionalProperties: false
                                  description: An array of price points options associated to this tier.
                              required:
                                - id
                                - name
                                - pricingType
                                - pricePoints
                              additionalProperties: false
                            nullable: true
                            description: A list of possible tiers on this service when the serviceType is
                              'MultiTier'.
                          parts:
                            type: array
                            items:
                              type: object
                              properties:
                                label:
                                  type: string
                                  description: An internal label used to identify the part.
                                partType:
                                  type: string
                                  enum:
                                    - Free
                                    - Block
                                  description: Determine if this part blocks time or is free to be booked.
                                durationInMinutes:
                                  type: number
                                  minimum: 0
                                  maximum: 43200
                                  description: The length of time the part will be in minutes.
                              required:
                                - label
                                - partType
                                - durationInMinutes
                              additionalProperties: false
                            nullable: true
                            description: A list of possible parts on this service when the serviceType is
                              'MultiPart'.
                          eventTicketsEnabled:
                            type: boolean
                            description: If set to true, newly created customer bookings with serviceType
                              `Event` will auto generate QR code tickets that
                              are included in customer email correspondence.
                          image:
                            type: string
                            format: uri
                            nullable: true
                            description: URL of an image associated with this service.
                          buffers:
                            type: object
                            properties:
                              before:
                                type: number
                                minimum: 0
                                description: Buffer time before the service in minutes
                              after:
                                type: number
                                minimum: 0
                                description: Buffer time after the service in minutes
                            required:
                              - before
                              - after
                            additionalProperties: false
                            description: Buffer times before and after service appointments
                          location:
                            type: string
                            nullable: true
                            description: Free-text location description for this service
                          videoConferencingEnabled:
                            type: boolean
                            description: If set to true, video conferencing (Teams/Zoom) is enabled for this
                              service
                          availabilityNoticePeriodMinutes:
                            type: number
                            minimum: 0
                            nullable: true
                            description: Minimum notice period in minutes required for online bookings. If
                              null, falls back to organization setting
                          rescheduleEnabled:
                            type: boolean
                            description: If set to true, customers are allowed to reschedule bookings for
                              this service
                          rescheduleResourceSelectionEnabled:
                            type: boolean
                            description: If set to true, customers can select a different resource when
                              rescheduling
                          rescheduleNoticePeriodMinutes:
                            type: number
                            minimum: 0
                            description: Minimum notice period in minutes required for rescheduling
                          bookingDepositAmount:
                            type: number
                            minimum: 5
                            maximum: 90
                            nullable: true
                            description: Deposit amount as a percentage (5-90). Only relevant when
                              bookingPaymentOption is set to 'Deposit'
                          bookingPaymentIsOptional:
                            type: boolean
                            description: If set to true, payment is optional for this service. Only relevant
                              when bookingPaymentOption is 'Full' or 'Deposit'
                        required:
                          - name
                          - serviceType
                          - durations
                          - bookingPaymentOption
                          - bookingVisibilityType
                          - allowExternalParticipants
                          - resourceAllocationType
                          - occupancy
                          - maxOccupancyPerBooking
                          - tiers
                          - parts
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          serviceCategory:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - ServiceCategory
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          resources:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Resource
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          resourceGroups:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - ResourceGroup
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          blueprint:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - ServiceBlueprint
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          blueprintAssociation:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - ServiceBlueprintAssociation
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                          - serviceCategory
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
    get:
      summary: Get All Services
      tags:
        - Services
      description: Get a paginated view of all Appointedd services you have access to.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[accountIds]
          required: false
          description: Returns any services that belong to any of the given account IDs.
        - schema:
            type: string
            minLength: 1
            maxLength: 2000
          in: query
          name: filter[name]
          required: false
          description: Returns any services with the exact given name.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][resources]
          required: false
          description: Whether to include resources in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][resourceGroups]
          required: false
          description: Whether to include resourceGroups in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][blueprint]
          required: false
          description: Whether to include blueprint in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][blueprintAssociation]
          required: false
          description: Whether to include blueprintAssociation in the relationships.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - Service
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            name:
                              type: string
                              description: Human readable identifier for this service.
                            description:
                              type: string
                              nullable: true
                              description: description for this service.
                            serviceType:
                              type: string
                              enum:
                                - Standard
                                - MultiTier
                                - MultiPart
                                - Event
                              description: The type of service. Dictates service type specific functionality.
                            durations:
                              type: array
                              items:
                                type: object
                                properties:
                                  minutes:
                                    type: number
                                    minimum: 1
                                    maximum: 43200
                                    description: How long the duration lasts in minutes. This value is ignored when
                                      the serviceType is set to 'MultiPart'.
                                  isDefaultDuration:
                                    type: boolean
                                    description: The default duration selected during the booking flow.
                                  price:
                                    anyOf:
                                      - type: string
                                        enum:
                                          - POA
                                      - type: number
                                        minimum: 0
                                    description: The price of this duration. If POA, indicates that the price is
                                      determined outwith the booking flow.
                                  oldPrice:
                                    type: number
                                    minimum: 0
                                    nullable: true
                                    description: The old price of this service, if provided will display the current
                                      price as an offer.
                                required:
                                  - minutes
                                  - isDefaultDuration
                                  - price
                                  - oldPrice
                                additionalProperties: false
                              description: A list of possible durations on this service.
                            bookingPaymentOption:
                              type: string
                              enum:
                                - Full
                                - Deposit
                                - None
                              description: Determines if this service needs to be paid for, and if so how it
                                will be paid.
                            bookingVisibilityType:
                              type: string
                              enum:
                                - Bookable
                                - Request
                                - Unavailable
                                - Invisible
                              description: Determines the visibility of the service on customer facing booking
                                tools.
                            allowExternalParticipants:
                              type: boolean
                              description: If set to true, customers are allowed to book externally onto an
                                existing event of this service.
                            resourceAllocationType:
                              type: string
                              enum:
                                - Any
                                - All
                                - Group
                              description: Indicates what resource or resource groups need to be available in
                                order for this service to be available for
                                booking.
                            occupancy:
                              type: number
                              minimum: 1
                              maximum: 500
                              description: The maximum number of participants or spaces that can be present on
                                an event using this service.
                            maxOccupancyPerBooking:
                              type: number
                              minimum: 1
                              maximum: 500
                              description: The maximum number of participants or spaces that can be applied to
                                a single booking participant. Cannot be a higher
                                value than the occupancy.
                            tiers:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    description: The internal reference used to identify this tier.
                                  name:
                                    type: string
                                    description: The customer facing label of this tier.
                                  description:
                                    type: string
                                    nullable: true
                                    description: The description associated to this tier.
                                  pricingType:
                                    type: string
                                    enum:
                                      - Single
                                      - Multiple
                                    description: Indicates if this tier has a single price or multiple price points.
                                  pricePoints:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        id:
                                          type: string
                                          description: The internal reference used to identify this price point.
                                        name:
                                          type: string
                                          nullable: true
                                          description: The customer facing label of this price point.
                                        spacesPerQuantity:
                                          type: number
                                          minimum: 1
                                          description: The number of spaces that will be taken up on a booking for every
                                            quantity of this price point.
                                        pricePerQuantity:
                                          type: number
                                          description: The price per quantity of this price point being applied to a
                                            booking.
                                      required:
                                        - id
                                        - spacesPerQuantity
                                        - pricePerQuantity
                                      additionalProperties: false
                                    description: An array of price points options associated to this tier.
                                required:
                                  - id
                                  - name
                                  - pricingType
                                  - pricePoints
                                additionalProperties: false
                              nullable: true
                              description: A list of possible tiers on this service when the serviceType is
                                'MultiTier'.
                            parts:
                              type: array
                              items:
                                type: object
                                properties:
                                  label:
                                    type: string
                                    description: An internal label used to identify the part.
                                  partType:
                                    type: string
                                    enum:
                                      - Free
                                      - Block
                                    description: Determine if this part blocks time or is free to be booked.
                                  durationInMinutes:
                                    type: number
                                    minimum: 0
                                    maximum: 43200
                                    description: The length of time the part will be in minutes.
                                required:
                                  - label
                                  - partType
                                  - durationInMinutes
                                additionalProperties: false
                              nullable: true
                              description: A list of possible parts on this service when the serviceType is
                                'MultiPart'.
                            eventTicketsEnabled:
                              type: boolean
                              description: If set to true, newly created customer bookings with serviceType
                                `Event` will auto generate QR code tickets that
                                are included in customer email correspondence.
                            image:
                              type: string
                              format: uri
                              nullable: true
                              description: URL of an image associated with this service.
                            buffers:
                              type: object
                              properties:
                                before:
                                  type: number
                                  minimum: 0
                                  description: Buffer time before the service in minutes
                                after:
                                  type: number
                                  minimum: 0
                                  description: Buffer time after the service in minutes
                              required:
                                - before
                                - after
                              additionalProperties: false
                              description: Buffer times before and after service appointments
                            location:
                              type: string
                              nullable: true
                              description: Free-text location description for this service
                            videoConferencingEnabled:
                              type: boolean
                              description: If set to true, video conferencing (Teams/Zoom) is enabled for this
                                service
                            availabilityNoticePeriodMinutes:
                              type: number
                              minimum: 0
                              nullable: true
                              description: Minimum notice period in minutes required for online bookings. If
                                null, falls back to organization setting
                            rescheduleEnabled:
                              type: boolean
                              description: If set to true, customers are allowed to reschedule bookings for
                                this service
                            rescheduleResourceSelectionEnabled:
                              type: boolean
                              description: If set to true, customers can select a different resource when
                                rescheduling
                            rescheduleNoticePeriodMinutes:
                              type: number
                              minimum: 0
                              description: Minimum notice period in minutes required for rescheduling
                            bookingDepositAmount:
                              type: number
                              minimum: 5
                              maximum: 90
                              nullable: true
                              description: Deposit amount as a percentage (5-90). Only relevant when
                                bookingPaymentOption is set to 'Deposit'
                            bookingPaymentIsOptional:
                              type: boolean
                              description: If set to true, payment is optional for this service. Only relevant
                                when bookingPaymentOption is 'Full' or 'Deposit'
                          required:
                            - name
                            - serviceType
                            - durations
                            - bookingPaymentOption
                            - bookingVisibilityType
                            - allowExternalParticipants
                            - resourceAllocationType
                            - occupancy
                            - maxOccupancyPerBooking
                            - tiers
                            - parts
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            account:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            serviceCategory:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - ServiceCategory
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            resources:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                            resourceGroups:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - ResourceGroup
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                            blueprint:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - ServiceBlueprint
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            blueprintAssociation:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - ServiceBlueprintAssociation
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - account
                            - serviceCategory
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/services/{serviceId}/schedules:
    post:
      summary: Create a Schedule for a specific service
      tags:
        - Services
      description: Create Service Schedule
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - ExactSchedule
                    attributes:
                      type: object
                      properties:
                        available:
                          type: boolean
                          description: Indicates if the schedule is available or unavailable.
                        reason:
                          type: string
                          nullable: true
                          description: Reason / identifiable label for this schedule. e.g. Default Working
                            hours, Seasonal Opening Times etc
                        zone:
                          type: string
                          description: Timezone for this schedule.
                        start:
                          type: string
                          format: date-time
                          description: ISO 8601 representation of the start date and time of this
                            schedule.
                        end:
                          type: string
                          format: date-time
                          description: ISO 8601 representation of the end date and time of this schedule.
                      required:
                        - available
                        - zone
                        - start
                        - end
                      additionalProperties: false
                  required:
                    - type
                    - attributes
                  additionalProperties: false
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - RecurringSchedule
                    attributes:
                      type: object
                      properties:
                        available:
                          type: boolean
                          description: Indicates if the schedule is available or unavailable.
                        reason:
                          type: string
                          nullable: true
                          description: Reason / identifiable label for this schedule. e.g. Default Working
                            hours, Seasonal Opening Times etc
                        zone:
                          type: string
                          description: Timezone for this schedule.
                        start:
                          type: string
                          format: date-time
                          description: ISO 8601 representation of the start date and time of this
                            schedule.
                        end:
                          type: string
                          format: date-time
                          description: ISO 8601 representation of the end date and time of this schedule.
                        rrule:
                          type: string
                          description: Recurrence rule for this schedule.
                        exceptions:
                          type: array
                          items:
                            type: string
                            format: date-time
                          nullable: true
                          description: Array of ISO 8601 representations of the dates and times of
                            exceptions for this schedule e.g. when this schedule
                            will not be applicable.
                      required:
                        - available
                        - zone
                        - start
                        - end
                        - rrule
                      additionalProperties: false
                  required:
                    - type
                    - attributes
                  additionalProperties: false
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: serviceId
          required: true
          description: The Id of the Service the schedule is for.
      responses:
        "201":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    anyOf:
                      - type: object
                        properties:
                          links:
                            type: object
                            properties:
                              self:
                                type: string
                                format: uri
                                description: URI to access this specific document
                            required:
                              - self
                            additionalProperties: false
                          type:
                            type: string
                            enum:
                              - ExactSchedule
                            description: Unique name for all documents that belong to this type.
                          id:
                            type: string
                            pattern: ^[a-f\d]{24}$
                            description: Unique identifier for this document.
                          attributes:
                            type: object
                            properties:
                              available:
                                type: boolean
                                description: Indicates if the schedule is available or unavailable.
                              reason:
                                type: string
                                nullable: true
                                description: Reason / identifiable label for this schedule. e.g. Default Working
                                  hours, Seasonal Opening Times etc
                              zone:
                                type: string
                                description: Timezone for this schedule.
                              start:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the start date and time of this
                                  schedule.
                              end:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the end date and time of this schedule.
                              created:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the date and time that this schedule was
                                  created at.
                              updated:
                                type: string
                                format: date-time
                                nullable: true
                                description: ISO 8601 representation of the date and time that this schedule was
                                  last updated at. If not set then this schedule
                                  has never been updated since it's creation.
                            required:
                              - available
                              - zone
                              - start
                              - end
                              - created
                              - updated
                            additionalProperties: false
                          relationships:
                            type: object
                            properties:
                              account:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Account
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              resource:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              service:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Service
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                            required:
                              - account
                            additionalProperties: false
                            description: Object where each member represents a relationship from this
                              document to any other documents.
                          meta:
                            type: object
                            properties:
                              warnings:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    code:
                                      type: string
                                    message:
                                      type: string
                                    path:
                                      type: array
                                      items:
                                        type: string
                                  required:
                                    - code
                                    - message
                                  additionalProperties: false
                                description: If set, an array of one or more non-critical issues related to this
                                  document.
                            additionalProperties: false
                            description: Object containing any additional metadata for this document.
                        required:
                          - type
                          - id
                          - attributes
                          - relationships
                        additionalProperties: false
                      - type: object
                        properties:
                          links:
                            type: object
                            properties:
                              self:
                                type: string
                                format: uri
                                description: URI to access this specific document
                            required:
                              - self
                            additionalProperties: false
                          type:
                            type: string
                            enum:
                              - RecurringSchedule
                            description: Unique name for all documents that belong to this type.
                          id:
                            type: string
                            pattern: ^[a-f\d]{24}$
                            description: Unique identifier for this document.
                          attributes:
                            type: object
                            properties:
                              available:
                                type: boolean
                                description: Indicates if the schedule is available or unavailable.
                              reason:
                                type: string
                                nullable: true
                                description: Reason / identifiable label for this schedule. e.g. Default Working
                                  hours, Seasonal Opening Times etc
                              zone:
                                type: string
                                description: Timezone for this schedule.
                              start:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the start date and time of this
                                  schedule.
                              end:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the end date and time of this schedule.
                              created:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the date and time that this schedule was
                                  created at.
                              updated:
                                type: string
                                format: date-time
                                nullable: true
                                description: ISO 8601 representation of the date and time that this schedule was
                                  last updated at. If not set then this schedule
                                  has never been updated since it's creation.
                              rrule:
                                type: string
                                description: Recurrence rule for this schedule.
                              exceptions:
                                type: array
                                items:
                                  type: string
                                  format: date-time
                                nullable: true
                                description: Array of ISO 8601 representations of the dates and times of
                                  exceptions for this schedule e.g. when this
                                  schedule will not be applicable.
                            required:
                              - available
                              - zone
                              - start
                              - end
                              - created
                              - updated
                              - rrule
                            additionalProperties: false
                          relationships:
                            type: object
                            properties:
                              account:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Account
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              resource:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              service:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Service
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                            required:
                              - account
                            additionalProperties: false
                            description: Object where each member represents a relationship from this
                              document to any other documents.
                          meta:
                            type: object
                            properties:
                              warnings:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    code:
                                      type: string
                                    message:
                                      type: string
                                    path:
                                      type: array
                                      items:
                                        type: string
                                  required:
                                    - code
                                    - message
                                  additionalProperties: false
                                description: If set, an array of one or more non-critical issues related to this
                                  document.
                            additionalProperties: false
                            description: Object containing any additional metadata for this document.
                        required:
                          - type
                          - id
                          - attributes
                          - relationships
                        additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
    get:
      summary: Get All Schedules For The Service
      tags:
        - Services
      description: Get a paginated view of all schedules for the service.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: filter[available]
          required: false
          description: Returns any available or non available schedules.
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[start][after]
          required: false
          description: Returns any schedules that start after the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[start][before]
          required: false
          description: Returns any schedules that start before the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[end][after]
          required: false
          description: Returns any schedules that end after the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[end][before]
          required: false
          description: Returns any schedules that end before the given date and time
            (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[created][after]
          required: false
          description: Returns any schedules that were created after the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[created][before]
          required: false
          description: Returns any schedules that were created before the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[updated][after]
          required: false
          description: Returns any schedules that were updated after the given date and
            time (inclusive).
        - schema:
            type: string
            format: date-time
          in: query
          name: filter[updated][before]
          required: false
          description: Returns any schedules that were updated before the given date and
            time (inclusive).
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: serviceId
          required: true
          description: The Id of the service the schedule is for.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      anyOf:
                        - type: object
                          properties:
                            links:
                              type: object
                              properties:
                                self:
                                  type: string
                                  format: uri
                                  description: URI to access this specific document
                              required:
                                - self
                              additionalProperties: false
                            type:
                              type: string
                              enum:
                                - ExactSchedule
                              description: Unique name for all documents that belong to this type.
                            id:
                              type: string
                              pattern: ^[a-f\d]{24}$
                              description: Unique identifier for this document.
                            attributes:
                              type: object
                              properties:
                                available:
                                  type: boolean
                                  description: Indicates if the schedule is available or unavailable.
                                reason:
                                  type: string
                                  nullable: true
                                  description: Reason / identifiable label for this schedule. e.g. Default Working
                                    hours, Seasonal Opening Times etc
                                zone:
                                  type: string
                                  description: Timezone for this schedule.
                                start:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the start date and time of this
                                    schedule.
                                end:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the end date and time of this schedule.
                                created:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the date and time that this schedule was
                                    created at.
                                updated:
                                  type: string
                                  format: date-time
                                  nullable: true
                                  description: ISO 8601 representation of the date and time that this schedule was
                                    last updated at. If not set then this
                                    schedule has never been updated since it's
                                    creation.
                              required:
                                - available
                                - zone
                                - start
                                - end
                                - created
                                - updated
                              additionalProperties: false
                            relationships:
                              type: object
                              properties:
                                account:
                                  type: object
                                  properties:
                                    links:
                                      type: object
                                      properties:
                                        related:
                                          type: string
                                          format: uri
                                          nullable: true
                                          description: URI for accessing the object linked in this relationship. If the
                                            relationship does not exist this
                                            will be set to `null`.
                                      required:
                                        - related
                                      additionalProperties: false
                                      description: URI links for this relationship.
                                    data:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Account
                                          description: Type of this resource.
                                        id:
                                          type: string
                                          pattern: ^[a-f\d]{24}$
                                          description: Unique identifier of this resource.
                                      required:
                                        - type
                                        - id
                                      additionalProperties: false
                                      nullable: true
                                      description: Resource linkage to the object in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                    meta:
                                      type: object
                                      properties: {}
                                      additionalProperties: false
                                      description: Object that may include non-standard meta-information about this
                                        relationship.
                                  required:
                                    - links
                                    - data
                                    - meta
                                  additionalProperties: false
                                resource:
                                  type: object
                                  properties:
                                    links:
                                      type: object
                                      properties:
                                        related:
                                          type: string
                                          format: uri
                                          nullable: true
                                          description: URI for accessing the object linked in this relationship. If the
                                            relationship does not exist this
                                            will be set to `null`.
                                      required:
                                        - related
                                      additionalProperties: false
                                      description: URI links for this relationship.
                                    data:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Resource
                                          description: Type of this resource.
                                        id:
                                          type: string
                                          pattern: ^[a-f\d]{24}$
                                          description: Unique identifier of this resource.
                                      required:
                                        - type
                                        - id
                                      additionalProperties: false
                                      nullable: true
                                      description: Resource linkage to the object in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                    meta:
                                      type: object
                                      properties: {}
                                      additionalProperties: false
                                      description: Object that may include non-standard meta-information about this
                                        relationship.
                                  required:
                                    - links
                                    - data
                                    - meta
                                  additionalProperties: false
                                service:
                                  type: object
                                  properties:
                                    links:
                                      type: object
                                      properties:
                                        related:
                                          type: string
                                          format: uri
                                          nullable: true
                                          description: URI for accessing the object linked in this relationship. If the
                                            relationship does not exist this
                                            will be set to `null`.
                                      required:
                                        - related
                                      additionalProperties: false
                                      description: URI links for this relationship.
                                    data:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Service
                                          description: Type of this resource.
                                        id:
                                          type: string
                                          pattern: ^[a-f\d]{24}$
                                          description: Unique identifier of this resource.
                                      required:
                                        - type
                                        - id
                                      additionalProperties: false
                                      nullable: true
                                      description: Resource linkage to the object in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                    meta:
                                      type: object
                                      properties: {}
                                      additionalProperties: false
                                      description: Object that may include non-standard meta-information about this
                                        relationship.
                                  required:
                                    - links
                                    - data
                                    - meta
                                  additionalProperties: false
                              required:
                                - account
                              additionalProperties: false
                              description: Object where each member represents a relationship from this
                                document to any other documents.
                            meta:
                              type: object
                              properties:
                                warnings:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      code:
                                        type: string
                                      message:
                                        type: string
                                      path:
                                        type: array
                                        items:
                                          type: string
                                    required:
                                      - code
                                      - message
                                    additionalProperties: false
                                  description: If set, an array of one or more non-critical issues related to this
                                    document.
                              additionalProperties: false
                              description: Object containing any additional metadata for this document.
                          required:
                            - type
                            - id
                            - attributes
                            - relationships
                          additionalProperties: false
                        - type: object
                          properties:
                            links:
                              type: object
                              properties:
                                self:
                                  type: string
                                  format: uri
                                  description: URI to access this specific document
                              required:
                                - self
                              additionalProperties: false
                            type:
                              type: string
                              enum:
                                - RecurringSchedule
                              description: Unique name for all documents that belong to this type.
                            id:
                              type: string
                              pattern: ^[a-f\d]{24}$
                              description: Unique identifier for this document.
                            attributes:
                              type: object
                              properties:
                                available:
                                  type: boolean
                                  description: Indicates if the schedule is available or unavailable.
                                reason:
                                  type: string
                                  nullable: true
                                  description: Reason / identifiable label for this schedule. e.g. Default Working
                                    hours, Seasonal Opening Times etc
                                zone:
                                  type: string
                                  description: Timezone for this schedule.
                                start:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the start date and time of this
                                    schedule.
                                end:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the end date and time of this schedule.
                                created:
                                  type: string
                                  format: date-time
                                  description: ISO 8601 representation of the date and time that this schedule was
                                    created at.
                                updated:
                                  type: string
                                  format: date-time
                                  nullable: true
                                  description: ISO 8601 representation of the date and time that this schedule was
                                    last updated at. If not set then this
                                    schedule has never been updated since it's
                                    creation.
                                rrule:
                                  type: string
                                  description: Recurrence rule for this schedule.
                                exceptions:
                                  type: array
                                  items:
                                    type: string
                                    format: date-time
                                  nullable: true
                                  description: Array of ISO 8601 representations of the dates and times of
                                    exceptions for this schedule e.g. when this
                                    schedule will not be applicable.
                              required:
                                - available
                                - zone
                                - start
                                - end
                                - created
                                - updated
                                - rrule
                              additionalProperties: false
                            relationships:
                              type: object
                              properties:
                                account:
                                  type: object
                                  properties:
                                    links:
                                      type: object
                                      properties:
                                        related:
                                          type: string
                                          format: uri
                                          nullable: true
                                          description: URI for accessing the object linked in this relationship. If the
                                            relationship does not exist this
                                            will be set to `null`.
                                      required:
                                        - related
                                      additionalProperties: false
                                      description: URI links for this relationship.
                                    data:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Account
                                          description: Type of this resource.
                                        id:
                                          type: string
                                          pattern: ^[a-f\d]{24}$
                                          description: Unique identifier of this resource.
                                      required:
                                        - type
                                        - id
                                      additionalProperties: false
                                      nullable: true
                                      description: Resource linkage to the object in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                    meta:
                                      type: object
                                      properties: {}
                                      additionalProperties: false
                                      description: Object that may include non-standard meta-information about this
                                        relationship.
                                  required:
                                    - links
                                    - data
                                    - meta
                                  additionalProperties: false
                                resource:
                                  type: object
                                  properties:
                                    links:
                                      type: object
                                      properties:
                                        related:
                                          type: string
                                          format: uri
                                          nullable: true
                                          description: URI for accessing the object linked in this relationship. If the
                                            relationship does not exist this
                                            will be set to `null`.
                                      required:
                                        - related
                                      additionalProperties: false
                                      description: URI links for this relationship.
                                    data:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Resource
                                          description: Type of this resource.
                                        id:
                                          type: string
                                          pattern: ^[a-f\d]{24}$
                                          description: Unique identifier of this resource.
                                      required:
                                        - type
                                        - id
                                      additionalProperties: false
                                      nullable: true
                                      description: Resource linkage to the object in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                    meta:
                                      type: object
                                      properties: {}
                                      additionalProperties: false
                                      description: Object that may include non-standard meta-information about this
                                        relationship.
                                  required:
                                    - links
                                    - data
                                    - meta
                                  additionalProperties: false
                                service:
                                  type: object
                                  properties:
                                    links:
                                      type: object
                                      properties:
                                        related:
                                          type: string
                                          format: uri
                                          nullable: true
                                          description: URI for accessing the object linked in this relationship. If the
                                            relationship does not exist this
                                            will be set to `null`.
                                      required:
                                        - related
                                      additionalProperties: false
                                      description: URI links for this relationship.
                                    data:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Service
                                          description: Type of this resource.
                                        id:
                                          type: string
                                          pattern: ^[a-f\d]{24}$
                                          description: Unique identifier of this resource.
                                      required:
                                        - type
                                        - id
                                      additionalProperties: false
                                      nullable: true
                                      description: Resource linkage to the object in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                    meta:
                                      type: object
                                      properties: {}
                                      additionalProperties: false
                                      description: Object that may include non-standard meta-information about this
                                        relationship.
                                  required:
                                    - links
                                    - data
                                    - meta
                                  additionalProperties: false
                              required:
                                - account
                              additionalProperties: false
                              description: Object where each member represents a relationship from this
                                document to any other documents.
                            meta:
                              type: object
                              properties:
                                warnings:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      code:
                                        type: string
                                      message:
                                        type: string
                                      path:
                                        type: array
                                        items:
                                          type: string
                                    required:
                                      - code
                                      - message
                                    additionalProperties: false
                                  description: If set, an array of one or more non-critical issues related to this
                                    document.
                              additionalProperties: false
                              description: Object containing any additional metadata for this document.
                          required:
                            - type
                            - id
                            - attributes
                            - relationships
                          additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/services/{serviceId}/schedules/{scheduleId}:
    delete:
      summary: Delete Service Schedule By ID
      tags:
        - Services
      description: Delete a service schedule by it's unique identifier.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: scheduleId
          required: true
          description: The Id of the schedule.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: serviceId
          required: true
          description: The Id of the service the schedule is for.
      responses:
        "204":
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties: {}
                additionalProperties: false
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
    get:
      summary: Get Service Schedule By ID
      tags:
        - Services
      description: Get a service schedule by it's unique identifier.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: scheduleId
          required: true
          description: The Id of the schedule.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: serviceId
          required: true
          description: The Id of the service the schedule is for.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    anyOf:
                      - type: object
                        properties:
                          links:
                            type: object
                            properties:
                              self:
                                type: string
                                format: uri
                                description: URI to access this specific document
                            required:
                              - self
                            additionalProperties: false
                          type:
                            type: string
                            enum:
                              - ExactSchedule
                            description: Unique name for all documents that belong to this type.
                          id:
                            type: string
                            pattern: ^[a-f\d]{24}$
                            description: Unique identifier for this document.
                          attributes:
                            type: object
                            properties:
                              available:
                                type: boolean
                                description: Indicates if the schedule is available or unavailable.
                              reason:
                                type: string
                                nullable: true
                                description: Reason / identifiable label for this schedule. e.g. Default Working
                                  hours, Seasonal Opening Times etc
                              zone:
                                type: string
                                description: Timezone for this schedule.
                              start:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the start date and time of this
                                  schedule.
                              end:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the end date and time of this schedule.
                              created:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the date and time that this schedule was
                                  created at.
                              updated:
                                type: string
                                format: date-time
                                nullable: true
                                description: ISO 8601 representation of the date and time that this schedule was
                                  last updated at. If not set then this schedule
                                  has never been updated since it's creation.
                            required:
                              - available
                              - zone
                              - start
                              - end
                              - created
                              - updated
                            additionalProperties: false
                          relationships:
                            type: object
                            properties:
                              account:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Account
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              resource:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              service:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Service
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                            required:
                              - account
                            additionalProperties: false
                            description: Object where each member represents a relationship from this
                              document to any other documents.
                          meta:
                            type: object
                            properties:
                              warnings:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    code:
                                      type: string
                                    message:
                                      type: string
                                    path:
                                      type: array
                                      items:
                                        type: string
                                  required:
                                    - code
                                    - message
                                  additionalProperties: false
                                description: If set, an array of one or more non-critical issues related to this
                                  document.
                            additionalProperties: false
                            description: Object containing any additional metadata for this document.
                        required:
                          - type
                          - id
                          - attributes
                          - relationships
                        additionalProperties: false
                      - type: object
                        properties:
                          links:
                            type: object
                            properties:
                              self:
                                type: string
                                format: uri
                                description: URI to access this specific document
                            required:
                              - self
                            additionalProperties: false
                          type:
                            type: string
                            enum:
                              - RecurringSchedule
                            description: Unique name for all documents that belong to this type.
                          id:
                            type: string
                            pattern: ^[a-f\d]{24}$
                            description: Unique identifier for this document.
                          attributes:
                            type: object
                            properties:
                              available:
                                type: boolean
                                description: Indicates if the schedule is available or unavailable.
                              reason:
                                type: string
                                nullable: true
                                description: Reason / identifiable label for this schedule. e.g. Default Working
                                  hours, Seasonal Opening Times etc
                              zone:
                                type: string
                                description: Timezone for this schedule.
                              start:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the start date and time of this
                                  schedule.
                              end:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the end date and time of this schedule.
                              created:
                                type: string
                                format: date-time
                                description: ISO 8601 representation of the date and time that this schedule was
                                  created at.
                              updated:
                                type: string
                                format: date-time
                                nullable: true
                                description: ISO 8601 representation of the date and time that this schedule was
                                  last updated at. If not set then this schedule
                                  has never been updated since it's creation.
                              rrule:
                                type: string
                                description: Recurrence rule for this schedule.
                              exceptions:
                                type: array
                                items:
                                  type: string
                                  format: date-time
                                nullable: true
                                description: Array of ISO 8601 representations of the dates and times of
                                  exceptions for this schedule e.g. when this
                                  schedule will not be applicable.
                            required:
                              - available
                              - zone
                              - start
                              - end
                              - created
                              - updated
                              - rrule
                            additionalProperties: false
                          relationships:
                            type: object
                            properties:
                              account:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Account
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              resource:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Resource
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                              service:
                                type: object
                                properties:
                                  links:
                                    type: object
                                    properties:
                                      related:
                                        type: string
                                        format: uri
                                        nullable: true
                                        description: URI for accessing the object linked in this relationship. If the
                                          relationship does not exist this will
                                          be set to `null`.
                                    required:
                                      - related
                                    additionalProperties: false
                                    description: URI links for this relationship.
                                  data:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Service
                                        description: Type of this resource.
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier of this resource.
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    nullable: true
                                    description: Resource linkage to the object in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                  meta:
                                    type: object
                                    properties: {}
                                    additionalProperties: false
                                    description: Object that may include non-standard meta-information about this
                                      relationship.
                                required:
                                  - links
                                  - data
                                  - meta
                                additionalProperties: false
                            required:
                              - account
                            additionalProperties: false
                            description: Object where each member represents a relationship from this
                              document to any other documents.
                          meta:
                            type: object
                            properties:
                              warnings:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    code:
                                      type: string
                                    message:
                                      type: string
                                    path:
                                      type: array
                                      items:
                                        type: string
                                  required:
                                    - code
                                    - message
                                  additionalProperties: false
                                description: If set, an array of one or more non-critical issues related to this
                                  document.
                            additionalProperties: false
                            description: Object containing any additional metadata for this document.
                        required:
                          - type
                          - id
                          - attributes
                          - relationships
                        additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/services/{serviceId}/resources:
    get:
      summary: Get Service Resources
      tags:
        - Services
        - Resources
      description: Get a paginated view of all Appointedd resources associated to a
        specific service.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[accountIds]
          required: false
          description: Returns any resources that belong to any of the given account IDs.
        - schema:
            type: string
            minLength: 1
            maxLength: 2000
          in: query
          name: filter[name]
          required: false
          description: Returns any resources with the exact given name.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][schedules]
          required: false
          description: Whether to include schedules in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][blueprint]
          required: false
          description: Whether to include blueprint in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][blueprintAssociation]
          required: false
          description: Whether to include blueprintAssociation in the relationships.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: serviceId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - Resource
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            colour:
                              type: string
                              description: Hex code representing the colour of this resource.
                            name:
                              type: string
                              description: Human readable identifier for this resource.
                            email:
                              type: string
                              description: Email address associated with this resource.
                            firstName:
                              type: string
                              description: First name of the resource.
                            lastName:
                              type: string
                              description: Last name of the resource.
                            phone:
                              type: string
                              description: Phone number associated with this resource.
                            houseNo:
                              type: string
                              description: House number of the resource's address.
                            addressOne:
                              type: string
                              description: First line of the resource's address.
                            addressTwo:
                              type: string
                              description: Second line of the resource's address.
                            city:
                              type: string
                              description: City of the resource's address.
                            postcode:
                              type: string
                              description: Postcode of the resource's address.
                            description:
                              type: string
                              description: Description associated with this resource.
                            sendBookingConfirmationEmail:
                              type: boolean
                              description: Indicates if a booking confirmation email should be sent to the
                                customer when a booking is made with this
                                resource.
                            sendBookingRequestEmail:
                              type: boolean
                              description: Indicates if a booking request email should be sent to the customer
                                when a booking request is made with this
                                resource.
                            sendBookingCancellationEmail:
                              type: boolean
                              description: Indicates if a booking cancellation email should be sent to the
                                customer when a booking is cancelled with this
                                resource.
                            additionalCommunicationEmails:
                              type: array
                              items:
                                type: string
                              description: Additional email addresses to receive communication emails for
                                bookings with this resource.
                            created:
                              type: string
                              format: date-time
                              description: ISO 8601 date and time that this resource was created at.
                            updated:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 representation of the date and time that this resource was
                                last updated at.
                          required:
                            - name
                            - created
                            - updated
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            account:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            schedules:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      description: URI for accessing a page containing documents belonging to this
                                        relationship with attribute data
                                        included.
                                    next:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the next page (relative to this page) for this
                                        relationship. If this is the last page
                                        this will be set to `null` to indicate
                                        there are no pages after this page.
                                    prev:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the previous page (relative to this page) for
                                        this relationship. If this is the first
                                        page this will be set to `null` to
                                        indicate there are no pages before this
                                        page.
                                  required:
                                    - related
                                    - next
                                    - prev
                                  additionalProperties: false
                                  description: Links for this relationship page.
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Schedule
                                      id:
                                        type: string
                                        pattern: ^[a-f\d]{24}$
                                        description: Unique identifier that identifies a document
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                meta:
                                  type: object
                                  properties:
                                    total:
                                      type: number
                                      minimum: 0
                                      description: Total number of documents across all pages in this relationship.
                                  required:
                                    - total
                                  additionalProperties: false
                              required:
                                - data
                                - meta
                              additionalProperties: false
                            blueprint:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - ResourceBlueprint
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            blueprintAssociation:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - ResourceBlueprintAssociation
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - account
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/services/{serviceId}:
    get:
      summary: Get Service by id
      tags:
        - Services
      description: Get a single Appointedd service.
      parameters:
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][resources]
          required: false
          description: Whether to include resources in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][resourceGroups]
          required: false
          description: Whether to include resourceGroups in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][blueprint]
          required: false
          description: Whether to include blueprint in the relationships.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: includes[relationship][blueprintAssociation]
          required: false
          description: Whether to include blueprintAssociation in the relationships.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: serviceId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - Service
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          name:
                            type: string
                            description: Human readable identifier for this service.
                          description:
                            type: string
                            nullable: true
                            description: description for this service.
                          serviceType:
                            type: string
                            enum:
                              - Standard
                              - MultiTier
                              - MultiPart
                              - Event
                            description: The type of service. Dictates service type specific functionality.
                          durations:
                            type: array
                            items:
                              type: object
                              properties:
                                minutes:
                                  type: number
                                  minimum: 1
                                  maximum: 43200
                                  description: How long the duration lasts in minutes. This value is ignored when
                                    the serviceType is set to 'MultiPart'.
                                isDefaultDuration:
                                  type: boolean
                                  description: The default duration selected during the booking flow.
                                price:
                                  anyOf:
                                    - type: string
                                      enum:
                                        - POA
                                    - type: number
                                      minimum: 0
                                  description: The price of this duration. If POA, indicates that the price is
                                    determined outwith the booking flow.
                                oldPrice:
                                  type: number
                                  minimum: 0
                                  nullable: true
                                  description: The old price of this service, if provided will display the current
                                    price as an offer.
                              required:
                                - minutes
                                - isDefaultDuration
                                - price
                                - oldPrice
                              additionalProperties: false
                            description: A list of possible durations on this service.
                          bookingPaymentOption:
                            type: string
                            enum:
                              - Full
                              - Deposit
                              - None
                            description: Determines if this service needs to be paid for, and if so how it
                              will be paid.
                          bookingVisibilityType:
                            type: string
                            enum:
                              - Bookable
                              - Request
                              - Unavailable
                              - Invisible
                            description: Determines the visibility of the service on customer facing booking
                              tools.
                          allowExternalParticipants:
                            type: boolean
                            description: If set to true, customers are allowed to book externally onto an
                              existing event of this service.
                          resourceAllocationType:
                            type: string
                            enum:
                              - Any
                              - All
                              - Group
                            description: Indicates what resource or resource groups need to be available in
                              order for this service to be available for
                              booking.
                          occupancy:
                            type: number
                            minimum: 1
                            maximum: 500
                            description: The maximum number of participants or spaces that can be present on
                              an event using this service.
                          maxOccupancyPerBooking:
                            type: number
                            minimum: 1
                            maximum: 500
                            description: The maximum number of participants or spaces that can be applied to
                              a single booking participant. Cannot be a higher
                              value than the occupancy.
                          tiers:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  description: The internal reference used to identify this tier.
                                name:
                                  type: string
                                  description: The customer facing label of this tier.
                                description:
                                  type: string
                                  nullable: true
                                  description: The description associated to this tier.
                                pricingType:
                                  type: string
                                  enum:
                                    - Single
                                    - Multiple
                                  description: Indicates if this tier has a single price or multiple price points.
                                pricePoints:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                        description: The internal reference used to identify this price point.
                                      name:
                                        type: string
                                        nullable: true
                                        description: The customer facing label of this price point.
                                      spacesPerQuantity:
                                        type: number
                                        minimum: 1
                                        description: The number of spaces that will be taken up on a booking for every
                                          quantity of this price point.
                                      pricePerQuantity:
                                        type: number
                                        description: The price per quantity of this price point being applied to a
                                          booking.
                                    required:
                                      - id
                                      - spacesPerQuantity
                                      - pricePerQuantity
                                    additionalProperties: false
                                  description: An array of price points options associated to this tier.
                              required:
                                - id
                                - name
                                - pricingType
                                - pricePoints
                              additionalProperties: false
                            nullable: true
                            description: A list of possible tiers on this service when the serviceType is
                              'MultiTier'.
                          parts:
                            type: array
                            items:
                              type: object
                              properties:
                                label:
                                  type: string
                                  description: An internal label used to identify the part.
                                partType:
                                  type: string
                                  enum:
                                    - Free
                                    - Block
                                  description: Determine if this part blocks time or is free to be booked.
                                durationInMinutes:
                                  type: number
                                  minimum: 0
                                  maximum: 43200
                                  description: The length of time the part will be in minutes.
                              required:
                                - label
                                - partType
                                - durationInMinutes
                              additionalProperties: false
                            nullable: true
                            description: A list of possible parts on this service when the serviceType is
                              'MultiPart'.
                          eventTicketsEnabled:
                            type: boolean
                            description: If set to true, newly created customer bookings with serviceType
                              `Event` will auto generate QR code tickets that
                              are included in customer email correspondence.
                          image:
                            type: string
                            format: uri
                            nullable: true
                            description: URL of an image associated with this service.
                          buffers:
                            type: object
                            properties:
                              before:
                                type: number
                                minimum: 0
                                description: Buffer time before the service in minutes
                              after:
                                type: number
                                minimum: 0
                                description: Buffer time after the service in minutes
                            required:
                              - before
                              - after
                            additionalProperties: false
                            description: Buffer times before and after service appointments
                          location:
                            type: string
                            nullable: true
                            description: Free-text location description for this service
                          videoConferencingEnabled:
                            type: boolean
                            description: If set to true, video conferencing (Teams/Zoom) is enabled for this
                              service
                          availabilityNoticePeriodMinutes:
                            type: number
                            minimum: 0
                            nullable: true
                            description: Minimum notice period in minutes required for online bookings. If
                              null, falls back to organization setting
                          rescheduleEnabled:
                            type: boolean
                            description: If set to true, customers are allowed to reschedule bookings for
                              this service
                          rescheduleResourceSelectionEnabled:
                            type: boolean
                            description: If set to true, customers can select a different resource when
                              rescheduling
                          rescheduleNoticePeriodMinutes:
                            type: number
                            minimum: 0
                            description: Minimum notice period in minutes required for rescheduling
                          bookingDepositAmount:
                            type: number
                            minimum: 5
                            maximum: 90
                            nullable: true
                            description: Deposit amount as a percentage (5-90). Only relevant when
                              bookingPaymentOption is set to 'Deposit'
                          bookingPaymentIsOptional:
                            type: boolean
                            description: If set to true, payment is optional for this service. Only relevant
                              when bookingPaymentOption is 'Full' or 'Deposit'
                        required:
                          - name
                          - serviceType
                          - durations
                          - bookingPaymentOption
                          - bookingVisibilityType
                          - allowExternalParticipants
                          - resourceAllocationType
                          - occupancy
                          - maxOccupancyPerBooking
                          - tiers
                          - parts
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          serviceCategory:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - ServiceCategory
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          resources:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Resource
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          resourceGroups:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    description: URI for accessing a page containing documents belonging to this
                                      relationship with attribute data included.
                                  next:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the next page (relative to this page) for this
                                      relationship. If this is the last page
                                      this will be set to `null` to indicate
                                      there are no pages after this page.
                                  prev:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the previous page (relative to this page) for
                                      this relationship. If this is the first
                                      page this will be set to `null` to
                                      indicate there are no pages before this
                                      page.
                                required:
                                  - related
                                  - next
                                  - prev
                                additionalProperties: false
                                description: Links for this relationship page.
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - ResourceGroup
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier that identifies a document
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                              meta:
                                type: object
                                properties:
                                  total:
                                    type: number
                                    minimum: 0
                                    description: Total number of documents across all pages in this relationship.
                                required:
                                  - total
                                additionalProperties: false
                            required:
                              - data
                              - meta
                            additionalProperties: false
                          blueprint:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - ServiceBlueprint
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          blueprintAssociation:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - ServiceBlueprintAssociation
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                          - serviceCategory
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/services/{serviceId}/resources/groups:
    get:
      summary: Get Service Resource Groups
      tags:
        - Services
        - ResourceGroups
      description: Get a paginated view of all Appointedd resource groups associated
        to a specific service.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: array
            items:
              type: string
              pattern: ^[a-f\d]{24}$
          in: query
          name: filter[accountIds]
          required: false
          description: Returns any resource groups that belong to any of the given account
            IDs.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: serviceId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - ResourceGroup
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            name:
                              type: string
                              description: Human readable identifier for this resource group.
                          required:
                            - name
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            account:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - account
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/users:
    post:
      summary: Create User
      tags:
        - Users
      description: Create a new user
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - User
                  description: Unique name for all documents that belong to this type.
                attributes:
                  type: object
                  properties:
                    email:
                      type: string
                      description: Email address for this user.
                    firstname:
                      type: string
                      minLength: 1
                      description: First name of the new user.
                    lastname:
                      type: string
                      minLength: 1
                      description: Last name of the new user.
                    isMfaEnabled:
                      type: boolean
                      description: Whether MFA is required for this user.
                    isSamlSsoRequired:
                      type: boolean
                      description: Whether this user is required to authenticate via SAML SSO.
                  required:
                    - email
                    - firstname
                    - lastname
                  additionalProperties: false
                relationships:
                  type: object
                  properties:
                    accounts:
                      type: object
                      properties:
                        data:
                          type: array
                          items:
                            type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - Account
                              id:
                                type: string
                              permission:
                                type: string
                                enum:
                                  - administrator
                                  - standard
                                  - restricted
                              scopes:
                                type: array
                                items:
                                  type: string
                                  enum:
                                    - can_manage_resource_schedules
                                    - can_manage_customers
                                    - calendar_sync_hidden
                                description: Only applicable for users with the 'restricted' role, defines
                                  additional scopes that the user has on this
                                  account.
                              restrictedToResources:
                                type: array
                                items:
                                  type: string
                                description: Only applicable for users with the 'restricted' role, defines an
                                  optional list of resources that the user's
                                  access is restricted to. If not set, then the
                                  user has access to all resources on the
                                  account.
                            required:
                              - type
                              - id
                              - permission
                            additionalProperties: false
                          minItems: 1
                          description: All accounts the user is a member of, with permissions.
                      required:
                        - data
                      additionalProperties: false
                  required:
                    - accounts
                  additionalProperties: false
              required:
                - type
                - attributes
                - relationships
              additionalProperties: false
        required: true
      security: []
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - User
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          email:
                            type: string
                            description: Email address for this user.
                          firstname:
                            type: string
                            minLength: 1
                            description: First name of this user.
                          lastname:
                            type: string
                            minLength: 1
                            nullable: true
                            description: Last name of this user.
                          isMfaEnabled:
                            type: boolean
                            description: Indicates if the user has MFA enabled.
                          hasCompletedMfaSetup:
                            type: boolean
                            description: Indicates if the user has completed MFA setup.
                          isSamlSsoRequired:
                            type: boolean
                            description: Indicates if the user is required to authenticate via SAML SSO.
                          samlPendingConfiguration:
                            type: boolean
                            description: Indicates if the user was provisioned via SAML but has no role
                              mappings configured yet.
                          setupChecklistCompleted:
                            type: boolean
                            description: Indicates if the user has completed the setup checklist.
                          setupChecklistCompletedSteps:
                            type: array
                            items:
                              type: string
                              nullable: true
                            description: Array of setup checklist steps that the user has completed.
                          numberOfAccounts:
                            type: number
                            description: The number of accounts the user is a member of.
                          created:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the data and time that this user was
                              created at.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this user was
                              last updated at. If not set then this user has
                              never been updated since it's creation.
                        required:
                          - email
                          - firstname
                          - lastname
                          - numberOfAccounts
                          - created
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          saml:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Saml
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          accounts:
                            type: object
                            properties:
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                    id:
                                      type: string
                                    attributes:
                                      type: object
                                      properties:
                                        name:
                                          type: string
                                        role:
                                          type: string
                                          enum:
                                            - administrator
                                            - standard
                                            - restricted
                                        scopes:
                                          type: array
                                          items:
                                            type: string
                                            enum:
                                              - can_manage_resource_schedules
                                              - can_manage_customers
                                              - calendar_sync_hidden
                                          description: Only applicable for users with the 'restricted' role, defines
                                            additional scopes that the user has
                                            on this account.
                                        restrictedToResources:
                                          type: array
                                          items:
                                            type: string
                                          description: Only applicable for users with the 'restricted' role, defines an
                                            optional list of resources that the
                                            user's access is restricted to. If
                                            not set, then the user has access to
                                            all resources on the account.
                                      required:
                                        - name
                                        - role
                                      additionalProperties: false
                                  required:
                                    - type
                                    - id
                                    - attributes
                                  additionalProperties: false
                            required:
                              - data
                            additionalProperties: false
                        required:
                          - saml
                          - accounts
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "409":
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 409
                  error:
                    type: string
                    enum:
                      - Conflict
                  message:
                    type: string
                  metadata:
                    type: object
                    additionalProperties: {}
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Conflict
    get:
      summary: Get All Users
      tags:
        - Users
      description: Get a paginated view of all Appointedd users you have access to.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: array
            items:
              type: string
          in: query
          name: filter[accountIds]
          required: false
          description: Returns all users that belong to any of the given account IDs.
        - schema:
            type: string
          in: query
          name: filter[userQuery]
          required: false
          description: Search query for users (matches email, firstname, lastname).
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: filter[isMfaEnabled]
          required: false
          description: Filter users by MFA enabled status.
        - schema:
            anyOf:
              - type: string
                enum:
                  - "true"
              - type: string
                enum:
                  - "false"
          in: query
          name: filter[hasSamlConnection]
          required: false
          description: Filter users by SAML connection status.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - User
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            email:
                              type: string
                              description: Email address for this user.
                            firstname:
                              type: string
                              minLength: 1
                              description: First name of this user.
                            lastname:
                              type: string
                              minLength: 1
                              nullable: true
                              description: Last name of this user.
                            isMfaEnabled:
                              type: boolean
                              description: Indicates if the user has MFA enabled.
                            hasCompletedMfaSetup:
                              type: boolean
                              description: Indicates if the user has completed MFA setup.
                            isSamlSsoRequired:
                              type: boolean
                              description: Indicates if the user is required to authenticate via SAML SSO.
                            samlPendingConfiguration:
                              type: boolean
                              description: Indicates if the user was provisioned via SAML but has no role
                                mappings configured yet.
                            setupChecklistCompleted:
                              type: boolean
                              description: Indicates if the user has completed the setup checklist.
                            setupChecklistCompletedSteps:
                              type: array
                              items:
                                type: string
                                nullable: true
                              description: Array of setup checklist steps that the user has completed.
                            numberOfAccounts:
                              type: number
                              description: The number of accounts the user is a member of.
                            created:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 representation of the data and time that this user was
                                created at.
                            updated:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 representation of the date and time that this user was
                                last updated at. If not set then this user has
                                never been updated since it's creation.
                          required:
                            - email
                            - firstname
                            - lastname
                            - numberOfAccounts
                            - created
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            saml:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Saml
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                            accounts:
                              type: object
                              properties:
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Account
                                      id:
                                        type: string
                                      attributes:
                                        type: object
                                        properties:
                                          name:
                                            type: string
                                          role:
                                            type: string
                                            enum:
                                              - administrator
                                              - standard
                                              - restricted
                                          scopes:
                                            type: array
                                            items:
                                              type: string
                                              enum:
                                                - can_manage_resource_schedules
                                                - can_manage_customers
                                                - calendar_sync_hidden
                                            description: Only applicable for users with the 'restricted' role, defines
                                              additional scopes that the user
                                              has on this account.
                                          restrictedToResources:
                                            type: array
                                            items:
                                              type: string
                                            description: Only applicable for users with the 'restricted' role, defines an
                                              optional list of resources that
                                              the user's access is restricted
                                              to. If not set, then the user has
                                              access to all resources on the
                                              account.
                                        required:
                                          - name
                                          - role
                                        additionalProperties: false
                                    required:
                                      - type
                                      - id
                                      - attributes
                                    additionalProperties: false
                              required:
                                - data
                              additionalProperties: false
                          required:
                            - saml
                            - accounts
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
  /v2/users/{userId}/accounts/{accountId}:
    delete:
      summary: Remove Account Access
      tags:
        - Users
      description: Removes the user's access to a specific account by removing the
        account from the user's organisations and the user from the account's
        managers.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: userId
          required: true
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: accountId
          required: true
      security: []
      responses:
        "204":
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties: {}
                additionalProperties: false
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
        "404":
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                  error:
                    type: string
                  message:
                    type: string
                  requestId:
                    type: string
                required:
                  - statusCode
                  - error
                  - message
                additionalProperties: false
        "409":
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                  error:
                    type: string
                  message:
                    type: string
                  requestId:
                    type: string
                required:
                  - statusCode
                  - error
                  - message
                additionalProperties: false
  /v2/users/{userId}:
    delete:
      summary: Delete User By ID
      tags:
        - Users
      description: Delete a user using a valid user Id
      parameters:
        - schema:
            type: boolean
          in: query
          name: hardDelete
          required: false
          description: When true, permanently removes the user. Defaults to false (soft
            delete).
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: userId
          required: true
      security: []
      responses:
        "204":
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties: {}
                additionalProperties: false
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
    get:
      summary: Get User By ID
      tags:
        - Users
      description: Retrieve a user's details by their unique identifier.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: userId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - User
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          email:
                            type: string
                            description: Email address for this user.
                          firstname:
                            type: string
                            minLength: 1
                            description: First name of this user.
                          lastname:
                            type: string
                            minLength: 1
                            nullable: true
                            description: Last name of this user.
                          isMfaEnabled:
                            type: boolean
                            description: Indicates if the user has MFA enabled.
                          hasCompletedMfaSetup:
                            type: boolean
                            description: Indicates if the user has completed MFA setup.
                          isSamlSsoRequired:
                            type: boolean
                            description: Indicates if the user is required to authenticate via SAML SSO.
                          samlPendingConfiguration:
                            type: boolean
                            description: Indicates if the user was provisioned via SAML but has no role
                              mappings configured yet.
                          setupChecklistCompleted:
                            type: boolean
                            description: Indicates if the user has completed the setup checklist.
                          setupChecklistCompletedSteps:
                            type: array
                            items:
                              type: string
                              nullable: true
                            description: Array of setup checklist steps that the user has completed.
                          numberOfAccounts:
                            type: number
                            description: The number of accounts the user is a member of.
                          created:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the data and time that this user was
                              created at.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this user was
                              last updated at. If not set then this user has
                              never been updated since it's creation.
                        required:
                          - email
                          - firstname
                          - lastname
                          - numberOfAccounts
                          - created
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          saml:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Saml
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                          accounts:
                            type: object
                            properties:
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                    id:
                                      type: string
                                    attributes:
                                      type: object
                                      properties:
                                        name:
                                          type: string
                                        role:
                                          type: string
                                          enum:
                                            - administrator
                                            - standard
                                            - restricted
                                        scopes:
                                          type: array
                                          items:
                                            type: string
                                            enum:
                                              - can_manage_resource_schedules
                                              - can_manage_customers
                                              - calendar_sync_hidden
                                          description: Only applicable for users with the 'restricted' role, defines
                                            additional scopes that the user has
                                            on this account.
                                        restrictedToResources:
                                          type: array
                                          items:
                                            type: string
                                          description: Only applicable for users with the 'restricted' role, defines an
                                            optional list of resources that the
                                            user's access is restricted to. If
                                            not set, then the user has access to
                                            all resources on the account.
                                      required:
                                        - name
                                        - role
                                      additionalProperties: false
                                  required:
                                    - type
                                    - id
                                    - attributes
                                  additionalProperties: false
                            required:
                              - data
                            additionalProperties: false
                        required:
                          - saml
                          - accounts
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
    patch:
      summary: Edit User Profile
      tags:
        - Users
      description: Updates the user's profile details (firstname, lastname, email).
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - User
                  description: Unique name for all documents that belong to this type.
                attributes:
                  type: object
                  properties:
                    email:
                      type: string
                      description: Email address for this user.
                    firstname:
                      type: string
                      minLength: 1
                    lastname:
                      type: string
                      minLength: 1
                    isSamlSsoRequired:
                      type: boolean
                  additionalProperties: false
              required:
                - type
                - attributes
              additionalProperties: false
        required: true
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: userId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - User
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          email:
                            type: string
                            description: Email address for this user.
                          firstname:
                            type: string
                            minLength: 1
                            description: First name of this user.
                          lastname:
                            type: string
                            minLength: 1
                            nullable: true
                            description: Last name of this user.
                          isMfaEnabled:
                            type: boolean
                            description: Indicates if the user has MFA enabled.
                          hasCompletedMfaSetup:
                            type: boolean
                            description: Indicates if the user has completed MFA setup.
                          isSamlSsoRequired:
                            type: boolean
                            description: Indicates if the user is required to authenticate via SAML SSO.
                          samlPendingConfiguration:
                            type: boolean
                            description: Indicates if the user was provisioned via SAML but has no role
                              mappings configured yet.
                          setupChecklistCompleted:
                            type: boolean
                            description: Indicates if the user has completed the setup checklist.
                          setupChecklistCompletedSteps:
                            type: array
                            items:
                              type: string
                              nullable: true
                            description: Array of setup checklist steps that the user has completed.
                          numberOfAccounts:
                            type: number
                            description: The number of accounts the user is a member of.
                          created:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the data and time that this user was
                              created at.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this user was
                              last updated at. If not set then this user has
                              never been updated since it's creation.
                        required:
                          - email
                          - firstname
                          - lastname
                          - numberOfAccounts
                          - created
                        additionalProperties: false
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
  /v2/users/{userId}/mfa:
    patch:
      summary: Edit User MFA
      tags:
        - Users
      description: Updates MFA policy (isMfaEnabled) and setup status
        (hasCompletedMfaSetup) for a user.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - User
                  description: Unique name for all documents that belong to this type.
                attributes:
                  type: object
                  properties:
                    isMfaEnabled:
                      type: boolean
                    hasCompletedMfaSetup:
                      type: boolean
                      enum:
                        - true
                  additionalProperties: false
              required:
                - type
                - attributes
              additionalProperties: false
        required: true
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: userId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - User
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          email:
                            type: string
                            description: Email address for this user.
                          firstname:
                            type: string
                            minLength: 1
                            description: First name of this user.
                          lastname:
                            type: string
                            minLength: 1
                            nullable: true
                            description: Last name of this user.
                          isMfaEnabled:
                            type: boolean
                            description: Indicates if the user has MFA enabled.
                          hasCompletedMfaSetup:
                            type: boolean
                            description: Indicates if the user has completed MFA setup.
                          isSamlSsoRequired:
                            type: boolean
                            description: Indicates if the user is required to authenticate via SAML SSO.
                          samlPendingConfiguration:
                            type: boolean
                            description: Indicates if the user was provisioned via SAML but has no role
                              mappings configured yet.
                          setupChecklistCompleted:
                            type: boolean
                            description: Indicates if the user has completed the setup checklist.
                          setupChecklistCompletedSteps:
                            type: array
                            items:
                              type: string
                              nullable: true
                            description: Array of setup checklist steps that the user has completed.
                          numberOfAccounts:
                            type: number
                            description: The number of accounts the user is a member of.
                          created:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the data and time that this user was
                              created at.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time that this user was
                              last updated at. If not set then this user has
                              never been updated since it's creation.
                        required:
                          - email
                          - firstname
                          - lastname
                          - numberOfAccounts
                          - created
                        additionalProperties: false
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
  /v2/users/{userId}/accounts:
    post:
      summary: Add Account Access
      tags:
        - Users
      description: Associates the user with one or more accounts, including the role
        for each.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - User
                  description: Unique name for all documents that belong to this type.
                relationships:
                  type: object
                  properties:
                    accounts:
                      type: object
                      properties:
                        data:
                          type: array
                          items:
                            type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - Account
                              id:
                                type: string
                              permission:
                                type: string
                                enum:
                                  - administrator
                                  - standard
                                  - restricted
                              scopes:
                                type: array
                                items:
                                  type: string
                                  enum:
                                    - can_manage_resource_schedules
                                    - can_manage_customers
                                    - calendar_sync_hidden
                                description: Only applicable for users with the 'restricted' role, defines
                                  additional scopes that the user has on this
                                  account.
                              restrictedToResources:
                                type: array
                                items:
                                  type: string
                                description: Only applicable for users with the 'restricted' role, defines an
                                  optional list of resources that the user's
                                  access is restricted to. If not set, then the
                                  user has access to all resources on the
                                  account.
                            required:
                              - type
                              - id
                              - permission
                            additionalProperties: false
                          minItems: 1
                          description: All accounts the user is a member of, with permissions.
                      required:
                        - data
                      additionalProperties: false
                  required:
                    - accounts
                  additionalProperties: false
              required:
                - type
                - relationships
              additionalProperties: false
        required: true
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: userId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      id:
                        type: string
                      type:
                        type: string
                        enum:
                          - User
                      relationships:
                        type: object
                        properties:
                          accounts:
                            type: object
                            properties:
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                    id:
                                      type: string
                                    attributes:
                                      type: object
                                      properties:
                                        name:
                                          type: string
                                        role:
                                          type: string
                                          enum:
                                            - administrator
                                            - standard
                                            - restricted
                                        scopes:
                                          type: array
                                          items:
                                            type: string
                                            enum:
                                              - can_manage_resource_schedules
                                              - can_manage_customers
                                              - calendar_sync_hidden
                                          description: Only applicable for users with the 'restricted' role, defines
                                            additional scopes that the user has
                                            on this account.
                                        restrictedToResources:
                                          type: array
                                          items:
                                            type: string
                                          description: Only applicable for users with the 'restricted' role, defines an
                                            optional list of resources that the
                                            user's access is restricted to. If
                                            not set, then the user has access to
                                            all resources on the account.
                                      required:
                                        - name
                                        - role
                                      additionalProperties: false
                                  required:
                                    - type
                                    - id
                                    - attributes
                                  additionalProperties: false
                            required:
                              - data
                            additionalProperties: false
                        required:
                          - accounts
                        additionalProperties: false
                    required:
                      - links
                      - id
                      - type
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
  /v2/virtual-queues:
    post:
      summary: Create Virtual Queue
      tags:
        - VirtualQueues
      description: Create a new virtual queue configuration for an account.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - VirtualQueue
                  description: Unique name for all records that belong to this type.
                attributes:
                  type: object
                  properties:
                    name:
                      type: string
                      minLength: 1
                      description: Human readable name for this virtual queue.
                    logoUrl:
                      type: string
                      format: uri
                      nullable: true
                      description: URL of the company logo displayed in the queue experience.
                    primaryColour:
                      type: string
                      nullable: true
                      description: "Primary brand colour as a hex code (e.g. #2563EB)."
                    secondaryColour:
                      type: string
                      nullable: true
                      description: Secondary brand colour as a hex code.
                    fontUrl:
                      type: string
                      format: uri
                      nullable: true
                      description: Google Fonts CSS2 URL for the custom font. Leave blank to use the
                        default system font.
                    visibleCustomFields:
                      type: array
                      items:
                        type: string
                    delayEnabled:
                      type: boolean
                      description: Whether customers are allowed to delay their queue position from
                        the status page.
                    showPartySize:
                      type: boolean
                      description: Whether the party size selector is shown on the customer join form.
                  required:
                    - name
                  additionalProperties: false
                relationships:
                  type: object
                  properties:
                    account:
                      type: object
                      properties:
                        data:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - Account
                            id:
                              type: string
                              pattern: ^[a-f\d]{24}$
                              description: Unique identifier of the account.
                          required:
                            - type
                            - id
                          additionalProperties: false
                      required:
                        - data
                      additionalProperties: false
                  required:
                    - account
                  additionalProperties: false
              required:
                - type
                - attributes
                - relationships
              additionalProperties: false
        required: true
      responses:
        "201":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - VirtualQueue
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          name:
                            type: string
                            minLength: 1
                            description: Human readable name for this virtual queue.
                          logoUrl:
                            type: string
                            format: uri
                            nullable: true
                            description: URL of the company logo displayed in the queue experience.
                          primaryColour:
                            type: string
                            nullable: true
                            description: "Primary brand colour as a hex code (e.g. #2563EB)."
                          secondaryColour:
                            type: string
                            nullable: true
                            description: Secondary brand colour as a hex code.
                          fontUrl:
                            type: string
                            format: uri
                            nullable: true
                            description: Google Fonts CSS2 URL for the custom font. Leave blank to use the
                              default system font.
                          visibleCustomFields:
                            type: array
                            items:
                              type: string
                          delayEnabled:
                            type: boolean
                            description: Whether customers are allowed to delay their queue position from
                              the status page.
                          showPartySize:
                            type: boolean
                            description: Whether the party size selector is shown on the customer join form.
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time this virtual queue was
                              created.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time this virtual queue was
                              last updated. Null if never updated.
                        required:
                          - name
                          - logoUrl
                          - primaryColour
                          - secondaryColour
                          - fontUrl
                          - delayEnabled
                          - showPartySize
                          - created
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
    get:
      summary: Get all Virtual Queues
      tags:
        - VirtualQueues
      description: Get a paginated list of all virtual queue configurations accessible
        to the caller.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - VirtualQueue
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            name:
                              type: string
                              minLength: 1
                              description: Human readable name for this virtual queue.
                            logoUrl:
                              type: string
                              format: uri
                              nullable: true
                              description: URL of the company logo displayed in the queue experience.
                            primaryColour:
                              type: string
                              nullable: true
                              description: "Primary brand colour as a hex code (e.g. #2563EB)."
                            secondaryColour:
                              type: string
                              nullable: true
                              description: Secondary brand colour as a hex code.
                            fontUrl:
                              type: string
                              format: uri
                              nullable: true
                              description: Google Fonts CSS2 URL for the custom font. Leave blank to use the
                                default system font.
                            visibleCustomFields:
                              type: array
                              items:
                                type: string
                            delayEnabled:
                              type: boolean
                              description: Whether customers are allowed to delay their queue position from
                                the status page.
                            showPartySize:
                              type: boolean
                              description: Whether the party size selector is shown on the customer join form.
                            created:
                              type: string
                              format: date-time
                              description: ISO 8601 representation of the date and time this virtual queue was
                                created.
                            updated:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 representation of the date and time this virtual queue was
                                last updated. Null if never updated.
                          required:
                            - name
                            - logoUrl
                            - primaryColour
                            - secondaryColour
                            - fontUrl
                            - delayEnabled
                            - showPartySize
                            - created
                            - updated
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            account:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Account
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - account
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
  /v2/virtual-queues/{virtualQueueId}:
    delete:
      summary: Delete Virtual Queue
      tags:
        - VirtualQueues
      description: Delete a virtual queue configuration by its unique ID.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: virtualQueueId
          required: true
      responses:
        "204":
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties: {}
                additionalProperties: false
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
    get:
      summary: Get Virtual Queue by ID
      tags:
        - VirtualQueues
      description: Get a single virtual queue configuration by its unique ID.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: virtualQueueId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - VirtualQueue
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          name:
                            type: string
                            minLength: 1
                            description: Human readable name for this virtual queue.
                          logoUrl:
                            type: string
                            format: uri
                            nullable: true
                            description: URL of the company logo displayed in the queue experience.
                          primaryColour:
                            type: string
                            nullable: true
                            description: "Primary brand colour as a hex code (e.g. #2563EB)."
                          secondaryColour:
                            type: string
                            nullable: true
                            description: Secondary brand colour as a hex code.
                          fontUrl:
                            type: string
                            format: uri
                            nullable: true
                            description: Google Fonts CSS2 URL for the custom font. Leave blank to use the
                              default system font.
                          visibleCustomFields:
                            type: array
                            items:
                              type: string
                          delayEnabled:
                            type: boolean
                            description: Whether customers are allowed to delay their queue position from
                              the status page.
                          showPartySize:
                            type: boolean
                            description: Whether the party size selector is shown on the customer join form.
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time this virtual queue was
                              created.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time this virtual queue was
                              last updated. Null if never updated.
                        required:
                          - name
                          - logoUrl
                          - primaryColour
                          - secondaryColour
                          - fontUrl
                          - delayEnabled
                          - showPartySize
                          - created
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
    patch:
      summary: Update Virtual Queue
      tags:
        - VirtualQueues
      description: Update an existing virtual queue configuration by its unique ID.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - VirtualQueue
                  description: Unique name for all records that belong to this type.
                attributes:
                  type: object
                  properties:
                    name:
                      type: string
                      minLength: 1
                      description: Human readable name for this virtual queue.
                    logoUrl:
                      type: string
                      format: uri
                      nullable: true
                      description: URL of the company logo displayed in the queue experience.
                    primaryColour:
                      type: string
                      nullable: true
                      description: "Primary brand colour as a hex code (e.g. #2563EB)."
                    secondaryColour:
                      type: string
                      nullable: true
                      description: Secondary brand colour as a hex code.
                    fontUrl:
                      type: string
                      format: uri
                      nullable: true
                      description: Google Fonts CSS2 URL for the custom font. Leave blank to use the
                        default system font.
                    visibleCustomFields:
                      type: array
                      items:
                        type: string
                    delayEnabled:
                      type: boolean
                      description: Whether customers are allowed to delay their queue position from
                        the status page.
                    showPartySize:
                      type: boolean
                      description: Whether the party size selector is shown on the customer join form.
                  additionalProperties: false
              required:
                - type
              additionalProperties: false
        required: true
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: virtualQueueId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - VirtualQueue
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          name:
                            type: string
                            minLength: 1
                            description: Human readable name for this virtual queue.
                          logoUrl:
                            type: string
                            format: uri
                            nullable: true
                            description: URL of the company logo displayed in the queue experience.
                          primaryColour:
                            type: string
                            nullable: true
                            description: "Primary brand colour as a hex code (e.g. #2563EB)."
                          secondaryColour:
                            type: string
                            nullable: true
                            description: Secondary brand colour as a hex code.
                          fontUrl:
                            type: string
                            format: uri
                            nullable: true
                            description: Google Fonts CSS2 URL for the custom font. Leave blank to use the
                              default system font.
                          visibleCustomFields:
                            type: array
                            items:
                              type: string
                          delayEnabled:
                            type: boolean
                            description: Whether customers are allowed to delay their queue position from
                              the status page.
                          showPartySize:
                            type: boolean
                            description: Whether the party size selector is shown on the customer join form.
                          created:
                            type: string
                            format: date-time
                            description: ISO 8601 representation of the date and time this virtual queue was
                              created.
                          updated:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 representation of the date and time this virtual queue was
                              last updated. Null if never updated.
                        required:
                          - name
                          - logoUrl
                          - primaryColour
                          - secondaryColour
                          - fontUrl
                          - delayEnabled
                          - showPartySize
                          - created
                          - updated
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          account:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Account
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - account
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
  /v2/virtual-queues/{virtualQueueId}/customers:
    get:
      summary: Get Virtual Queue Customers
      tags:
        - VirtualQueues
      description: Returns per-customer data for all tickets in a virtual queue
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[after]
          required: false
          description: Unique identifier of the last document on the previous page when
            paginating forwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: query
          name: page[before]
          required: false
          description: Unique identifier of the first document on the next page when
            paginating backwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[first]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating forwards.
        - schema:
            type: number
            minimum: 1
            maximum: 1000
          in: query
          name: page[last]
          required: false
          description: Number of documents (between `1` - `1000`) to return per page when
            paginating backwards.
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: virtualQueueId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: URI for accessing this current page that matches your query.
                      next:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the next page (relative to this page) that
                          matches your query. If this is the last page this will
                          be set to `null` to indicate there are no pages after
                          this page.
                      prev:
                        type: string
                        format: uri
                        nullable: true
                        description: URI for accessing the previous page (relative to this page) that
                          matches your query. If this is the first page this
                          will be set to `null` to indicate there are no pages
                          before this page.
                    required:
                      - self
                      - next
                      - prev
                    additionalProperties: false
                    description: Links related to this page.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        ticketDisplayId:
                          type: string
                          description: Human-readable ticket identifier, e.g. Q-042.
                        status:
                          type: string
                          enum:
                            - waiting
                            - next-up
                            - in-progress
                            - served
                            - cancelled
                            - removed
                          description: Current ticket status.
                        firstName:
                          type: string
                          description: Customer first name.
                        lastName:
                          type: string
                          description: Customer last name.
                        email:
                          type: string
                          description: Customer email address.
                        phone:
                          type: string
                          description: Customer phone number.
                        partySize:
                          type: integer
                          minimum: 1
                          description: Number of people in the party.
                        customFieldAnswers:
                          type: object
                          additionalProperties:
                            anyOf:
                              - type: string
                              - type: number
                          description: Answers to custom fields configured on the queue.
                        joinedAt:
                          type: string
                          format: date-time
                          description: ISO 8601 timestamp when the customer joined.
                        servedAt:
                          type: string
                          format: date-time
                          nullable: true
                          description: ISO 8601 timestamp when serving began. Null if not yet served.
                        cancelledAt:
                          type: string
                          format: date-time
                          nullable: true
                          description: ISO 8601 timestamp when the customer cancelled. Null if not
                            cancelled.
                        removedAt:
                          type: string
                          format: date-time
                          nullable: true
                          description: ISO 8601 timestamp when the ticket was removed. Null if not
                            removed.
                        history:
                          type: array
                          items:
                            type: object
                            properties:
                              event:
                                type: string
                                enum:
                                  - joined
                                  - called
                                  - delayed
                                  - served
                                  - cancelled
                                  - no-show
                                  - staff-removed
                                description: The type of event that occurred.
                              timestamp:
                                type: string
                                format: date-time
                                description: ISO 8601 timestamp of when the event occurred.
                              metadata:
                                type: object
                                properties:
                                  delayMinutes:
                                    anyOf:
                                      - type: number
                                        enum:
                                          - 5
                                      - type: number
                                        enum:
                                          - 10
                                      - type: number
                                        enum:
                                          - 15
                                    description: "For delayed events: how many minutes the customer delayed."
                                additionalProperties: true
                                description: Additional event-specific data.
                            required:
                              - event
                              - timestamp
                            additionalProperties: false
                          description: Full event history for this ticket.
                      required:
                        - ticketDisplayId
                        - status
                        - firstName
                        - lastName
                        - email
                        - phone
                        - partySize
                        - joinedAt
                        - servedAt
                        - cancelledAt
                        - removedAt
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        minimum: 0
                        description: Total number of documents across all pages that match your query.
                    required:
                      - total
                    additionalProperties: false
                required:
                  - links
                  - data
                  - meta
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
  /v2/virtual-queues/{virtualQueueId}/metrics:
    get:
      summary: Get Virtual Queue Metrics
      tags:
        - VirtualQueues
      description: Returns aggregated performance metrics for a virtual queue.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: virtualQueueId
          required: true
      responses:
        "200":
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  totalJoined:
                    type: integer
                    minimum: 0
                    description: Total customers who joined the queue.
                  totalServed:
                    type: integer
                    minimum: 0
                    description: Total customers fully served and completed.
                  totalCancelled:
                    type: integer
                    minimum: 0
                    description: Total customers who removed themselves from the queue.
                  totalNoShows:
                    type: integer
                    minimum: 0
                    description: Total customers called forward who did not show up.
                  totalStaffRemoved:
                    type: integer
                    minimum: 0
                    description: Total customers removed from a waiting position by staff.
                  averageWaitMinutes:
                    type: integer
                    minimum: 0
                    nullable: true
                    description: Average wait time in minutes from joining to being called. Null if
                      no served tickets.
                  delays:
                    type: object
                    properties:
                      fiveMinutes:
                        type: integer
                        minimum: 0
                        description: Number of 5-minute delays taken.
                      tenMinutes:
                        type: integer
                        minimum: 0
                        description: Number of 10-minute delays taken.
                      fifteenMinutes:
                        type: integer
                        minimum: 0
                        description: Number of 15-minute delays taken.
                    required:
                      - fiveMinutes
                      - tenMinutes
                      - fifteenMinutes
                    additionalProperties: false
                    description: Breakdown of delays by duration.
                required:
                  - totalJoined
                  - totalServed
                  - totalCancelled
                  - totalNoShows
                  - totalStaffRemoved
                  - averageWaitMinutes
                  - delays
                additionalProperties: false
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
  /v2/virtual-queues/{virtualQueueId}/tickets/{ticketId}/complete:
    post:
      summary: Complete Virtual Queue Ticket
      tags:
        - VirtualQueues
      description: Move an in-progress ticket to served (completed).
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: virtualQueueId
          required: true
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: ticketId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - VirtualQueueTicket
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          ticketDisplayId:
                            type: string
                            description: Human-readable ticket identifier, e.g. Q-042.
                          firstName:
                            type: string
                            description: Customer first name.
                          lastName:
                            type: string
                            description: Customer last name.
                          phone:
                            type: string
                            description: Customer phone number.
                          serviceName:
                            type: string
                            nullable: true
                            description: Name of the service being queued for.
                          estimatedDuration:
                            type: integer
                            minimum: 0
                            nullable: true
                            description: Estimated service duration in minutes.
                          status:
                            type: string
                            enum:
                              - waiting
                              - next-up
                              - in-progress
                              - served
                              - cancelled
                              - removed
                            description: Current ticket status.
                          position:
                            type: integer
                            minimum: 0
                            description: Position in queue (0 = being served).
                          partySize:
                            type: integer
                            minimum: 1
                            description: Number of people in the party.
                          estimatedWaitMinutes:
                            type: integer
                            minimum: 0
                            nullable: true
                            description: Estimated wait time in minutes.
                          joinedAt:
                            type: string
                            format: date-time
                            description: ISO 8601 timestamp when the customer joined the queue.
                          servedAt:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 timestamp when serving began. Null if not yet served.
                          notifiedAt:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 timestamp of last notification. Null if not notified.
                          delayedUntil:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 timestamp until which the ticket is delayed. Null if not
                              delayed.
                          resourceId:
                            type: string
                            nullable: true
                            description: ID of the assigned resource. Null if unassigned.
                          resourceName:
                            type: string
                            nullable: true
                            description: Name of the assigned resource. Null if unassigned.
                        required:
                          - ticketDisplayId
                          - firstName
                          - lastName
                          - phone
                          - serviceName
                          - estimatedDuration
                          - status
                          - position
                          - partySize
                          - estimatedWaitMinutes
                          - joinedAt
                          - servedAt
                          - notifiedAt
                          - delayedUntil
                          - resourceId
                          - resourceName
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          virtualQueue:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - VirtualQueue
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - virtualQueue
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
  /v2/virtual-queues/{virtualQueueId}/tickets:
    get:
      summary: List Virtual Queue Tickets
      tags:
        - VirtualQueues
      description: List all active tickets in a virtual queue, ordered by position.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: virtualQueueId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        links:
                          type: object
                          properties:
                            self:
                              type: string
                              format: uri
                              description: URI to access this specific document
                          required:
                            - self
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - VirtualQueueTicket
                          description: Unique name for all documents that belong to this type.
                        id:
                          type: string
                          pattern: ^[a-f\d]{24}$
                          description: Unique identifier for this document.
                        attributes:
                          type: object
                          properties:
                            ticketDisplayId:
                              type: string
                              description: Human-readable ticket identifier, e.g. Q-042.
                            firstName:
                              type: string
                              description: Customer first name.
                            lastName:
                              type: string
                              description: Customer last name.
                            phone:
                              type: string
                              description: Customer phone number.
                            serviceName:
                              type: string
                              nullable: true
                              description: Name of the service being queued for.
                            estimatedDuration:
                              type: integer
                              minimum: 0
                              nullable: true
                              description: Estimated service duration in minutes.
                            status:
                              type: string
                              enum:
                                - waiting
                                - next-up
                                - in-progress
                                - served
                                - cancelled
                                - removed
                              description: Current ticket status.
                            position:
                              type: integer
                              minimum: 0
                              description: Position in queue (0 = being served).
                            partySize:
                              type: integer
                              minimum: 1
                              description: Number of people in the party.
                            estimatedWaitMinutes:
                              type: integer
                              minimum: 0
                              nullable: true
                              description: Estimated wait time in minutes.
                            joinedAt:
                              type: string
                              format: date-time
                              description: ISO 8601 timestamp when the customer joined the queue.
                            servedAt:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 timestamp when serving began. Null if not yet served.
                            notifiedAt:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 timestamp of last notification. Null if not notified.
                            delayedUntil:
                              type: string
                              format: date-time
                              nullable: true
                              description: ISO 8601 timestamp until which the ticket is delayed. Null if not
                                delayed.
                            resourceId:
                              type: string
                              nullable: true
                              description: ID of the assigned resource. Null if unassigned.
                            resourceName:
                              type: string
                              nullable: true
                              description: Name of the assigned resource. Null if unassigned.
                          required:
                            - ticketDisplayId
                            - firstName
                            - lastName
                            - phone
                            - serviceName
                            - estimatedDuration
                            - status
                            - position
                            - partySize
                            - estimatedWaitMinutes
                            - joinedAt
                            - servedAt
                            - notifiedAt
                            - delayedUntil
                            - resourceId
                            - resourceName
                          additionalProperties: false
                        relationships:
                          type: object
                          properties:
                            virtualQueue:
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      format: uri
                                      nullable: true
                                      description: URI for accessing the object linked in this relationship. If the
                                        relationship does not exist this will be
                                        set to `null`.
                                  required:
                                    - related
                                  additionalProperties: false
                                  description: URI links for this relationship.
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - VirtualQueue
                                      description: Type of this resource.
                                    id:
                                      type: string
                                      pattern: ^[a-f\d]{24}$
                                      description: Unique identifier of this resource.
                                  required:
                                    - type
                                    - id
                                  additionalProperties: false
                                  nullable: true
                                  description: Resource linkage to the object in this relationship. If the
                                    relationship does not exist this will be set
                                    to `null`.
                                meta:
                                  type: object
                                  properties: {}
                                  additionalProperties: false
                                  description: Object that may include non-standard meta-information about this
                                    relationship.
                              required:
                                - links
                                - data
                                - meta
                              additionalProperties: false
                          required:
                            - virtualQueue
                          additionalProperties: false
                          description: Object where each member represents a relationship from this
                            document to any other documents.
                        meta:
                          type: object
                          properties:
                            warnings:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                  message:
                                    type: string
                                  path:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - code
                                  - message
                                additionalProperties: false
                              description: If set, an array of one or more non-critical issues related to this
                                document.
                          additionalProperties: false
                          description: Object containing any additional metadata for this document.
                      required:
                        - type
                        - id
                        - attributes
                        - relationships
                      additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
  /v2/virtual-queues/{virtualQueueId}/tickets/{ticketId}:
    delete:
      summary: Remove Virtual Queue Ticket
      tags:
        - VirtualQueues
      description: Remove a ticket from the queue (admin-initiated removal).
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: virtualQueueId
          required: true
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: ticketId
          required: true
      responses:
        "204":
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties: {}
                additionalProperties: false
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
  /v2/virtual-queues/{virtualQueueId}/tickets/{ticketId}/serve:
    post:
      summary: Serve Virtual Queue Ticket
      tags:
        - VirtualQueues
      description: Move a waiting or next-up ticket to in-progress (currently serving).
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: virtualQueueId
          required: true
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: ticketId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - VirtualQueueTicket
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          ticketDisplayId:
                            type: string
                            description: Human-readable ticket identifier, e.g. Q-042.
                          firstName:
                            type: string
                            description: Customer first name.
                          lastName:
                            type: string
                            description: Customer last name.
                          phone:
                            type: string
                            description: Customer phone number.
                          serviceName:
                            type: string
                            nullable: true
                            description: Name of the service being queued for.
                          estimatedDuration:
                            type: integer
                            minimum: 0
                            nullable: true
                            description: Estimated service duration in minutes.
                          status:
                            type: string
                            enum:
                              - waiting
                              - next-up
                              - in-progress
                              - served
                              - cancelled
                              - removed
                            description: Current ticket status.
                          position:
                            type: integer
                            minimum: 0
                            description: Position in queue (0 = being served).
                          partySize:
                            type: integer
                            minimum: 1
                            description: Number of people in the party.
                          estimatedWaitMinutes:
                            type: integer
                            minimum: 0
                            nullable: true
                            description: Estimated wait time in minutes.
                          joinedAt:
                            type: string
                            format: date-time
                            description: ISO 8601 timestamp when the customer joined the queue.
                          servedAt:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 timestamp when serving began. Null if not yet served.
                          notifiedAt:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 timestamp of last notification. Null if not notified.
                          delayedUntil:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 timestamp until which the ticket is delayed. Null if not
                              delayed.
                          resourceId:
                            type: string
                            nullable: true
                            description: ID of the assigned resource. Null if unassigned.
                          resourceName:
                            type: string
                            nullable: true
                            description: Name of the assigned resource. Null if unassigned.
                        required:
                          - ticketDisplayId
                          - firstName
                          - lastName
                          - phone
                          - serviceName
                          - estimatedDuration
                          - status
                          - position
                          - partySize
                          - estimatedWaitMinutes
                          - joinedAt
                          - servedAt
                          - notifiedAt
                          - delayedUntil
                          - resourceId
                          - resourceName
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          virtualQueue:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - VirtualQueue
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - virtualQueue
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
        "409":
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 409
                  error:
                    type: string
                    enum:
                      - Conflict
                  message:
                    type: string
                  metadata:
                    type: object
                    additionalProperties: {}
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Conflict
  /v2/virtual-queues/{virtualQueueId}/tickets/{ticketId}/skip:
    post:
      summary: Skip Virtual Queue Ticket
      tags:
        - VirtualQueues
      description: Move a ticket down one position in the queue.
      parameters:
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: virtualQueueId
          required: true
        - schema:
            type: string
            pattern: ^[a-f\d]{24}$
          in: path
          name: ticketId
          required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          self:
                            type: string
                            format: uri
                            description: URI to access this specific document
                        required:
                          - self
                        additionalProperties: false
                      type:
                        type: string
                        enum:
                          - VirtualQueueTicket
                        description: Unique name for all documents that belong to this type.
                      id:
                        type: string
                        pattern: ^[a-f\d]{24}$
                        description: Unique identifier for this document.
                      attributes:
                        type: object
                        properties:
                          ticketDisplayId:
                            type: string
                            description: Human-readable ticket identifier, e.g. Q-042.
                          firstName:
                            type: string
                            description: Customer first name.
                          lastName:
                            type: string
                            description: Customer last name.
                          phone:
                            type: string
                            description: Customer phone number.
                          serviceName:
                            type: string
                            nullable: true
                            description: Name of the service being queued for.
                          estimatedDuration:
                            type: integer
                            minimum: 0
                            nullable: true
                            description: Estimated service duration in minutes.
                          status:
                            type: string
                            enum:
                              - waiting
                              - next-up
                              - in-progress
                              - served
                              - cancelled
                              - removed
                            description: Current ticket status.
                          position:
                            type: integer
                            minimum: 0
                            description: Position in queue (0 = being served).
                          partySize:
                            type: integer
                            minimum: 1
                            description: Number of people in the party.
                          estimatedWaitMinutes:
                            type: integer
                            minimum: 0
                            nullable: true
                            description: Estimated wait time in minutes.
                          joinedAt:
                            type: string
                            format: date-time
                            description: ISO 8601 timestamp when the customer joined the queue.
                          servedAt:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 timestamp when serving began. Null if not yet served.
                          notifiedAt:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 timestamp of last notification. Null if not notified.
                          delayedUntil:
                            type: string
                            format: date-time
                            nullable: true
                            description: ISO 8601 timestamp until which the ticket is delayed. Null if not
                              delayed.
                          resourceId:
                            type: string
                            nullable: true
                            description: ID of the assigned resource. Null if unassigned.
                          resourceName:
                            type: string
                            nullable: true
                            description: Name of the assigned resource. Null if unassigned.
                        required:
                          - ticketDisplayId
                          - firstName
                          - lastName
                          - phone
                          - serviceName
                          - estimatedDuration
                          - status
                          - position
                          - partySize
                          - estimatedWaitMinutes
                          - joinedAt
                          - servedAt
                          - notifiedAt
                          - delayedUntil
                          - resourceId
                          - resourceName
                        additionalProperties: false
                      relationships:
                        type: object
                        properties:
                          virtualQueue:
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    format: uri
                                    nullable: true
                                    description: URI for accessing the object linked in this relationship. If the
                                      relationship does not exist this will be
                                      set to `null`.
                                required:
                                  - related
                                additionalProperties: false
                                description: URI links for this relationship.
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - VirtualQueue
                                    description: Type of this resource.
                                  id:
                                    type: string
                                    pattern: ^[a-f\d]{24}$
                                    description: Unique identifier of this resource.
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                nullable: true
                                description: Resource linkage to the object in this relationship. If the
                                  relationship does not exist this will be set
                                  to `null`.
                              meta:
                                type: object
                                properties: {}
                                additionalProperties: false
                                description: Object that may include non-standard meta-information about this
                                  relationship.
                            required:
                              - links
                              - data
                              - meta
                            additionalProperties: false
                        required:
                          - virtualQueue
                        additionalProperties: false
                        description: Object where each member represents a relationship from this
                          document to any other documents.
                      meta:
                        type: object
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: array
                                  items:
                                    type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            description: If set, an array of one or more non-critical issues related to this
                              document.
                        additionalProperties: false
                        description: Object containing any additional metadata for this document.
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
                description: OK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                  message:
                    type: string
                    enum:
                      - You are not allowed to perform this action
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 403
                  error:
                    type: string
                    enum:
                      - Forbidden
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Forbidden
        "404":
          description: Not Found error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                    enum:
                      - Not Found
                  message:
                    type: string
                  requestId:
                    type: string
                    minLength: 1
                required:
                  - statusCode
                  - error
                  - message
                  - requestId
                additionalProperties: false
                description: Not Found error response
servers:
  - url: https://json-api.appointedd.com
    description: Appointedd JSON API
security:
  - OAuth2ClientCredentials: []
tags:
  - name: Auth
    description: Endpoints for managing authentication and authorisation
  - name: Accounts
    description: Endpoints for managing your Appointedd accounts
  - name: Customers
    description: Endpoints for managing your Appointedd customers
  - name: Bookings
    description: Endpoints for managing your Appointedd bookings
  - name: Resources
    description: Endpoints for managing your Appointedd resources
  - name: Services
    description: Endpoints for managing your Appointedd services
  - name: Activity Logs
    description: Endpoints for fetching logs around activity in your accounts
