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.
                        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:
                              - links
                              - 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:
                              - links
                              - 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:
                              - 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:
                              - links
                              - 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:
                              - links
                              - 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.
                        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:
                              - links
                              - 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:
                              - links
                              - 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:
                              - 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:
                              - links
                              - 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:
                              - links
                              - 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.
                          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:
                                - links
                                - 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:
                                - links
                                - 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:
                                - 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:
                                - links
                                - 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:
                                - links
                                - 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:
            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:
                            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:
                                - 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
                            - 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.
                            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:
                                - links
                                - 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.
                                  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.
                                  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.
                        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:
                              - links
                              - 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:
                              - links
                              - 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:
                              - 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:
                              - links
                              - 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:
                              - links
                              - 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).
      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:
                            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:
                                - 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
                            - 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:
                          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:
                              - 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
                          - 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.
                          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:
                              - links
                              - 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.
                    email:
                      type: string
                      nullable: true
                      description: Email address 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
                        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.
                  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.
                          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:
                              - links
                              - 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.
                            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:
                                - links
                                - 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.
                          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:
                              - links
                              - 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.
                    email:
                      type: string
                      nullable: true
                      description: Email address 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
                        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.
                  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.
                          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:
                              - links
                              - 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.
                        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:
                              - links
                              - 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:
                              - links
                              - 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:
                              - 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:
                              - links
                              - 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:
                              - links
                              - 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:
            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:
                            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:
                                - 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
                            - 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}/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/{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:
            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:
                            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:
                                - 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
                            - 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:
    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:
                                - 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
                            - 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:
                              - 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
                          - 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/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:
                    name:
                      type: string
                      description: Human readable identifier for 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:
                          name:
                            type: string
                            description: Human readable identifier for 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:
                              - 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.
      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:
                            name:
                              type: string
                              description: Human readable identifier for 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:
                                - 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:
            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:
                          name:
                            type: string
                            description: Human readable identifier for 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:
                              - 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.
                        required:
                          - domain
                        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:
                    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:
                        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:
                    - account
                  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: 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:
                              - links
                              - 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
    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:
                                - links
                                - 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:
                              - links
                              - 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:
                              - links
                              - 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:
            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:
                            name:
                              type: string
                              description: Human readable identifier for 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:
                                - 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: 1440
                            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.
                  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: 1440
                                  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.
                        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:
                              - links
                              - 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:
                              - 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.
      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: 1440
                                    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.
                          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:
                                - links
                                - 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:
                                - 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: serviceId
          required: true
          description: The Id of the service 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 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: serviceId
          required: true
          description: The Id of the service 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/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:
            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:
                            name:
                              type: string
                              description: Human readable identifier for 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:
                                - 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:
            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: 1440
                                  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.
                        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:
                              - links
                              - 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:
                              - 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.
                  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
                            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.
                          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
                                      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).
      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.
                            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
                                        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}:
    delete:
      summary: Delete User By ID
      tags:
        - Users
      description: Delete a user using a valid user Id
      parameters:
        - 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
    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.
                          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
                                      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) in
        the users collection.
      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
                  required:
                    - email
                    - firstname
                    - lastname
                  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.
                          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
                            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
                                      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
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
