CDK Global Service Booking API

The Service Booking API from CDK Global — 6 operation(s) for service booking.

Operations 10

POST /booking-sessions Create a bookingSession #
POST /booking-sessions/{bookingSessionId}/items Adds a requested service item to the Booking Session #
GET /booking-sessions/{bookingSessionId}/items Queries the service items of the Booking Session #
POST /booking-sessions/{bookingSessionId}/items/{itemId} Updates a requested service item to the Booking Session #
GET /booking-sessions/{bookingSessionId}/items/{itemId} Queries a requested service item by identifier #
DELETE /booking-sessions/{bookingSessionId}/items/{itemId} Removes a service item from the Booking Session #
GET /booking-sessions/{bookingSessionId}/available-stores Queries the store availability for appointments for booking #
GET /booking-sessions/{bookingSessionId}/available-stores/{storeId}/slots Queries the available appointment slots by store #
GET /booking-sessions/{bookingSessionId}/available-stores/{storeId}/slots/{slotId} Queries an available appointment slot #
POST /booking-sessions/{bookingSessionId}/available-stores/{storeId}/slots/{slotId} Books an appointment slot. This is the final step in the appointment booking process. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cdk-global-service-booking-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cdk-global-service-booking-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 45.0.0
  title: Booking Sessions Service Booking API
  description: "# Service Sessions - Service - Booking Sessions Spec\nThis spec describes an API implementation that allows a solution to book service sessions to a car dealership.\n\n# What does this API do?\nWith this spec, customers can use a solution to perform the following:\n\n* Create a booking session\n* Get the items in a booking session\n* Add items to the booking session\n* Remove items from a booking session\n* Query the service item by the identifier\n* Query the store\n* Query the store availability\n* Query the stores available session slots\n* Book the appointment     \n\n# Intended Audience\nThis spec gives API Providers the design for APIs that allow dealers to book sessions online at different stores.\nThis spec can give a design for a small API implementation or a large chain of dealerships that share a solution for booking service sessions. \n"
  contact:
    name: Developer Evangelists
    url: https://fortellis.io/contact-us
    email: support@fortellis.io
servers:
- url: https://api.fortellis.io/service/sessions/v4/
security:
- permission-model:
  - anonymous
tags:
- name: Service Booking
paths:
  /booking-sessions:
    post:
      summary: Create a bookingSession
      tags:
      - Service Booking
      description: Creates a Booking Session. This session encapsulates the process of establishing the vehicle to be serviced, what services will be performed, what customer transportation is requested, and which available appointment slots are available.
      operationId: createBookingSession
      responses:
        '201':
          $ref: '#/components/responses/Created'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
      parameters:
      - $ref: '#/components/parameters/header.Request-Id'
      - $ref: '#/components/parameters/header.Subscription-Id'
      - $ref: '#/components/parameters/header.Authorization'
      - $ref: '#/components/parameters/header.Content-Type'
      - $ref: '#/components/parameters/body.CreateBookingSessionPayload'
  /booking-sessions/{bookingSessionId}/items:
    post:
      summary: Adds a requested service item to the Booking Session
      tags:
      - Service Booking
      description: Adds a requested service item to the Booking Session
      operationId: addBookingSessionItem
      responses:
        '201':
          $ref: '#/components/responses/Created'
        '400':
          $ref: '#/components/responses/BadRequest'
      parameters:
      - $ref: '#/components/parameters/header.Request-Id'
      - $ref: '#/components/parameters/header.Subscription-Id'
      - $ref: '#/components/parameters/header.Authorization'
      - $ref: '#/components/parameters/header.Content-Type'
      - $ref: '#/components/parameters/path.bookingSessionId'
      - $ref: '#/components/parameters/body.AddItemPayload'
    get:
      summary: Queries the service items of the Booking Session
      tags:
      - Service Booking
      description: Queries the requested service items of the Booking Session
      operationId: queryBookingSessionItems
      parameters:
      - $ref: '#/components/parameters/header.Request-Id'
      - $ref: '#/components/parameters/header.Subscription-Id'
      - $ref: '#/components/parameters/header.Authorization'
      - $ref: '#/components/parameters/path.bookingSessionId'
      responses:
        '200':
          $ref: '#/components/responses/items'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '410':
          $ref: '#/components/responses/Gone'
  /booking-sessions/{bookingSessionId}/items/{itemId}:
    post:
      summary: Updates a requested service item to the Booking Session
      tags:
      - Service Booking
      description: Updates a requested service item to the Booking Session
      operationId: updateBookingSessionItem
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      parameters:
      - $ref: '#/components/parameters/header.Request-Id'
      - $ref: '#/components/parameters/header.Subscription-Id'
      - $ref: '#/components/parameters/header.Authorization'
      - $ref: '#/components/parameters/header.Content-Type'
      - $ref: '#/components/parameters/path.bookingSessionId'
      - $ref: '#/components/parameters/path.itemId'
      - $ref: '#/components/parameters/body.UpdateItemPayload'
    get:
      summary: Queries a requested service item by identifier
      tags:
      - Service Booking
      description: Queries a requested service item by identifier
      operationId: queryRequestedServiceItemById
      responses:
        '200':
          $ref: '#/components/responses/items'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '410':
          $ref: '#/components/responses/Gone'
      parameters:
      - $ref: '#/components/parameters/header.Request-Id'
      - $ref: '#/components/parameters/header.Subscription-Id'
      - $ref: '#/components/parameters/header.Authorization'
      - $ref: '#/components/parameters/path.bookingSessionId'
      - $ref: '#/components/parameters/path.itemId'
    delete:
      summary: Removes a service item from the Booking Session
      tags:
      - Service Booking
      description: Removes a service item from the Booking Session
      operationId: removeBookingSessionItem
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      parameters:
      - $ref: '#/components/parameters/header.Request-Id'
      - $ref: '#/components/parameters/header.Subscription-Id'
      - $ref: '#/components/parameters/header.Authorization'
      - $ref: '#/components/parameters/header.Content-Type'
      - $ref: '#/components/parameters/path.bookingSessionId'
      - $ref: '#/components/parameters/path.itemId'
  /booking-sessions/{bookingSessionId}/available-stores:
    get:
      summary: Queries the store availability for appointments for booking
      tags:
      - Service Booking
      description: Queries the store availability for appointments for booking
      operationId: queryBookingSessionStoreAvailability
      responses:
        '200':
          $ref: '#/components/responses/AvailableStore'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '410':
          $ref: '#/components/responses/Gone'
      parameters:
      - $ref: '#/components/parameters/header.Request-Id'
      - $ref: '#/components/parameters/header.Subscription-Id'
      - $ref: '#/components/parameters/header.Authorization'
      - $ref: '#/components/parameters/path.bookingSessionId'
  /booking-sessions/{bookingSessionId}/available-stores/{storeId}/slots:
    get:
      summary: Queries the available appointment slots by store
      tags:
      - Service Booking
      description: Queries the available appointment slots by store
      operationId: queryBookingSessionsAvailableStoreSlots
      responses:
        '200':
          $ref: '#/components/responses/Slot'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '410':
          $ref: '#/components/responses/Gone'
      parameters:
      - $ref: '#/components/parameters/header.Request-Id'
      - $ref: '#/components/parameters/header.Subscription-Id'
      - $ref: '#/components/parameters/header.Authorization'
      - $ref: '#/components/parameters/path.bookingSessionId'
      - $ref: '#/components/parameters/path.storeId'
  /booking-sessions/{bookingSessionId}/available-stores/{storeId}/slots/{slotId}:
    get:
      summary: Queries an available appointment slot
      tags:
      - Service Booking
      description: Queries an available appointment slot
      operationId: queryBookingSessionsAvailableSlot
      responses:
        '200':
          $ref: '#/components/responses/Slot'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '410':
          $ref: '#/components/responses/Gone'
      parameters:
      - $ref: '#/components/parameters/header.Request-Id'
      - $ref: '#/components/parameters/header.Subscription-Id'
      - $ref: '#/components/parameters/header.Authorization'
      - $ref: '#/components/parameters/path.bookingSessionId'
      - $ref: '#/components/parameters/path.storeId'
      - $ref: '#/components/parameters/path.slotId'
    post:
      summary: Books an appointment slot. This is the final step in the appointment booking process.
      tags:
      - Service Booking
      description: Books an appointment slot. This is the final step in the appointment booking process.
      operationId: bookAppointmentSlot
      responses:
        '201':
          $ref: '#/components/responses/Created'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '410':
          $ref: '#/components/responses/Gone'
      parameters:
      - $ref: '#/components/parameters/header.Request-Id'
      - $ref: '#/components/parameters/header.Subscription-Id'
      - $ref: '#/components/parameters/header.Authorization'
      - $ref: '#/components/parameters/header.Content-Type'
      - $ref: '#/components/parameters/path.bookingSessionId'
      - $ref: '#/components/parameters/path.storeId'
      - $ref: '#/components/parameters/path.slotId'
components:
  schemas:
    Slot:
      description: This field indicates the time slot that the store selects a time slot to offer the transportation.
      required:
      - slotId
      - storeId
      - dateTime
      - transportationOffer
      - links
      properties:
        slotId:
          type: string
          format: uuid
          description: The identifier of the slot
        storeId:
          type: string
          format: uuid
          description: The identifier of the store
        dateTime:
          type: string
          format: date-time
          description: The date and time of the slot
        transportationOffer:
          $ref: '#/components/schemas/TransportationOffer'
        links:
          $ref: '#/components/schemas/LinksObject'
      example:
        slotId: 85254b70-c4b0-4461-937f-34d3502796bd
        dateTime: '2019-10-11T09:30:00+00:00'
        storeId: 85254b70-c4b0-4461-937f-34d3502796bd
        transportationOffer:
          transportationOfferId: fd133724-3450-47c3-b4a4-f888dbf74e40
          description: Midsized loaner car
          cost:
            baseCost: 0.0
            currencyType: GBP
        links:
          bookingSessions:
            functions: Create a booking session.
            href: /booking-sessions
            methods:
              GET: false
              POST: true
              DELETE: false
          bookingSessionItems:
            functions: Create and query session items.
            href: /booking-sessions/{bookingSessionId}/items
            methods:
              GET: true
              POST: true
              DELETE: false
          bookingSessionItem:
            functions: Create and delete session items.
            href: /booking-sessions/{bookingSessionId}/items/{itemId}
            methods:
              GET: false
              POST: true
              DELETE: true
          bookingSessionAvailableStores:
            functions: Query the available stores.
            href: /booking-sessions/{bookingSessionId}/available-stores
            methods:
              GET: true
              POST: false
              DELETE: false
          bookingSessionAvailableStoreSlots:
            functions: Query slots that an available store has.
            href: /booking-sessions/{bookingSessionId}/available-stores/{storeId}/slots
            methods:
              GET: true
              POST: false
              DELETE: false
          bookingSessionAvailableStoreSlot:
            functions: Book and query a slot.
            href: /booking-sessions/{bookingSessionId}/available-stores/{storeId}/slots/{slotId}
            methods:
              GET: true
              POST: true
              DELETE: false
    Cost:
      description: This is the description of the cost.
      required:
      - baseCost
      - currencyType
      properties:
        baseCost:
          type: number
          description: The base cost
        currencyType:
          type: string
          description: The currency type of the cost
      example:
        baseCost: 53.42
        currencyType: US
    LinksObject:
      description: This is the common links object across all API calls.
      type: object
      properties:
        bookingSessions:
          type: object
          properties:
            functions:
              type: string
            href:
              type: string
            methods:
              type: object
              properties:
                POST:
                  type: boolean
                GET:
                  type: boolean
                DELETE:
                  type: boolean
        bookingSessionItems:
          type: object
          properties:
            functions:
              type: string
            href:
              type: string
            methods:
              type: object
              properties:
                POST:
                  type: boolean
                GET:
                  type: boolean
                DELETE:
                  type: boolean
        bookingSessionItem:
          type: object
          properties:
            functions:
              type: string
            href:
              type: string
            methods:
              type: object
              properties:
                POST:
                  type: boolean
                GET:
                  type: boolean
                DELETE:
                  type: boolean
        bookingSessionAvailableStores:
          type: object
          properties:
            functions:
              type: string
            href:
              type: string
            methods:
              type: object
              properties:
                POST:
                  type: boolean
                GET:
                  type: boolean
                DELETE:
                  type: boolean
        bookingSessionAvailableStoreSlots:
          type: object
          properties:
            functions:
              type: string
            href:
              type: string
            methods:
              type: object
              properties:
                POST:
                  type: boolean
                GET:
                  type: boolean
                DELETE:
                  type: boolean
        bookingSessionAvailableStoreSlot:
          type: object
          properties:
            functions:
              type: string
            href:
              type: string
            methods:
              type: object
              properties:
                POST:
                  type: boolean
                GET:
                  type: boolean
                DELETE:
                  type: boolean
      required:
      - bookingSessions
      - bookingSessionItems
      - bookingSessionItem
      - bookingSessionAvailableStores
      - bookingSessionAvailableStoreSlots
      - bookingSessionAvailableStoreSlot
      example:
        bookingSessions:
          functions: Create a booking session.
          href: /booking-sessions
          methods:
            GET: false
            POST: true
            DELETE: false
        bookingSessionItems:
          functions: Create and query session items.
          href: /booking-sessions/{bookingSessionId}/items
          methods:
            GET: true
            POST: true
            DELETE: false
        bookingSessionItem:
          functions: Create and delete session items.
          href: /booking-sessions/{bookingSessionId}/items/{itemId}
          methods:
            GET: false
            POST: true
            DELETE: true
        bookingSessionAvailableStores:
          functions: Query the available stores.
          href: /booking-sessions/{bookingSessionId}/available-stores
          methods:
            GET: true
            POST: false
            DELETE: false
        bookingSessionAvailableStoreSlots:
          functions: Query slots that an available store has.
          href: /booking-sessions/{bookingSessionId}/available-stores/{storeId}/slots
          methods:
            GET: true
            POST: false
            DELETE: false
        bookingSessionAvailableStoreSlot:
          functions: Book and query a slot.
          href: /booking-sessions/{bookingSessionId}/available-stores/{storeId}/slots/{slotId}
          methods:
            GET: true
            POST: true
            DELETE: false
    Ok:
      description: This describes a successful POST to update an item.
      required:
      - success
      - links
      properties:
        success:
          type: string
        links:
          $ref: '#/components/schemas/LinksObject'
      example:
        success: OK
        links:
          bookingSessions:
            functions: Create a booking session.
            href: /booking-sessions
            methods:
              GET: false
              POST: true
              DELETE: false
          bookingSessionItems:
            functions: Create and query session items.
            href: /booking-sessions/{bookingSessionId}/items
            methods:
              GET: true
              POST: true
              DELETE: false
          bookingSessionItem:
            functions: Create and delete session items.
            href: /booking-sessions/{bookingSessionId}/items/{itemId}
            methods:
              GET: false
              POST: true
              DELETE: true
          bookingSessionAvailableStores:
            functions: Query the available stores.
            href: /booking-sessions/{bookingSessionId}/available-stores
            methods:
              GET: true
              POST: false
              DELETE: false
          bookingSessionAvailableStoreSlots:
            functions: Query slots that an available store has.
            href: /booking-sessions/{bookingSessionId}/available-stores/{storeId}/slots
            methods:
              GET: true
              POST: false
              DELETE: false
          bookingSessionAvailableStoreSlot:
            functions: Book and query a slot.
            href: /booking-sessions/{bookingSessionId}/available-stores/{storeId}/slots/{slotId}
            methods:
              GET: true
              POST: true
              DELETE: false
    Error:
      description: This is the description of the error that you are getting.
      required:
      - code
      - message
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
      example:
        code: 400
        message: Bad Request
    CreateBookingSessionPayload:
      description: This is the booking session payload.
      required:
      - storeIdList
      - searchWindowStart
      - searchWindowEnd
      - links
      properties:
        vehicleSpecId:
          type: string
          description: The vehicle service model identifier
        vehicleTypeId:
          type: string
          format: uuid
          description: The identifier of the vehicle type
        customerId:
          type: string
          format: uuid
          description: The identifier of the customer
        storeIdList:
          type: array
          items:
            type: string
            format: uuid
          description: The identifiers of the stores to search
        searchWindowStart:
          type: string
          format: date-time
          description: The the start of the search window
        searchWindowEnd:
          type: string
          format: date-time
          description: The the end of the search window
        requestedTransportation:
          type: string
          enum:
          - WAITER
          - LOANER
          - RENTAL
          - VALET_PICKUP
          - SHUTTLE
          description: The requested customer transportation
      example:
      - appointmentId: 79667722-fcc4-4cd8-995b-75d566bbba1b
        storeId: 85254b70-c4b0-4461-937f-34d3502796bd
        vehicleSpecId: CHEV-CORVST-2017-US
        customerId: e3ad5443-72a7-4423-af2c-a5d7d510a39e
        advisorId: 282fc845-868d-4678-b06c-82a6794e6309
        accommodation:
          accommodationId: fd133724-3450-47c3-b4a4-f888dbf74e40
          accommodationRef: xchange.com/loaner-car/api/accommodation/v1
          description: A courtesy loaner car has been reserved for Ms. Jones
        dateTime: '2019-10-11T09:32:04+00:00'
        status: BOOKED
    AddItemPayload:
      description: This describes the item that was added to the payload.
      required:
      - text
      - comment
      - id
      - specificationId
      properties:
        text:
          type: string
          description: A text field.
        comment:
          type: string
          description: A comment field.
        id:
          type: string
          description: The service package Id.  Unique when coupled with vehicleSpecId
        specificationId:
          type: string
          description: The specific instance of the service package.
      example:
        text: Windshield Wiper Motor - Replace
        id: BY28
        comment: Customer requested service.
        specificationId: '21732242'
    TransportationOption:
      description: This indicates the option of transportation that the customer selected.
      required:
      - transportationOptionId
      - description
      properties:
        transportationOptionId:
          type: string
          format: uuid
          description: The identifier of the transportation option
        description:
          type: string
      example:
        transportationOptionId: 779913c9-bb93-46f0-8860-9c893128c62c
        description: Some description
    Item:
      description: This give the service package that the store would like to offer to the consumer.
      required:
      - itemId
      - text
      - comment
      - id
      - specificationId
      - links
      properties:
        itemId:
          type: string
          description: The unique identifier of the item
        text:
          type: string
          description: A text field.
        comment:
          type: string
          description: A comment field.
        id:
          type: string
          description: The service package Id.  Unique when coupled with vehicleSpecId
        specificationId:
          type: string
          description: The specific instance of the service package.
        links:
          $ref: '#/components/schemas/LinksObject'
      example:
        itemId: f74d81c1-fe33-4f1a-a5f6-ace24da670a8
        text: 30,000 mile service - 2014 Toyota Camry
        id: BY28
        comment: Customer requested service.
        specificationId: '21732242'
        links:
          bookingSessions:
            functions: Create a booking session.
            href: /booking-sessions
            methods:
              GET: false
              POST: true
              DELETE: false
          bookingSessionItems:
            functions: Create and query session items.
            href: /booking-sessions/{bookingSessionId}/items
            methods:
              GET: true
              POST: true
              DELETE: false
          bookingSessionItem:
            functions: Create and delete session items.
            href: /booking-sessions/{bookingSessionId}/items/{itemId}
            methods:
              GET: false
              POST: true
              DELETE: true
          bookingSessionAvailableStores:
            functions: Query the available stores.
            href: /booking-sessions/{bookingSessionId}/available-stores
            methods:
              GET: true
              POST: false
              DELETE: false
          bookingSessionAvailableStoreSlots:
            functions: Query slots that an available store has.
            href: /booking-sessions/{bookingSessionId}/available-stores/{storeId}/slots
            methods:
              GET: true
              POST: false
              DELETE: false
          bookingSessionAvailableStoreSlot:
            functions: Book and query a slot.
            href: /booking-sessions/{bookingSessionId}/available-stores/{storeId}/slots/{slotId}
            methods:
              GET: true
              POST: true
              DELETE: false
    TransportationOffer:
      description: This is the offer to provide transportation.
      required:
      - transportationOfferId
      - description
      - cost
      properties:
        transportationOfferId:
          type: string
          format: uuid
          description: The identifier of the transportation offer
        description:
          type: string
          description: The description transportation offer
        cost:
          $ref: '#/components/schemas/Cost'
      example:
        transportationOfferId: fd133724-3450-47c3-b4a4-f888dbf74e40
        description: Midsized loaner car
        cost:
          baseCost: 0.0
          currencyType: GBP
    BookingSession:
      description: This confirms the booking session when you have booked something.
      required:
      - bookingSessionId
      - storeIdList
      - vehicleSpecId
      - vehicleTypeId
      - customerId
      - searchWindowStart
      - searchWindowEnd
      - transportationOptions
      - selectedTransportationOptions
      - links
      properties:
        bookingSessionId:
          type: string
          description: The identifier of the booking session
        storeIdList:
          type: array
          items:
            type: string
          description: The identifiers of the stores to search
        vehicleSpecId:
          type: string
          description: The vehicle service model identifier
        vehicleTypeId:
          type: string
          description: The identifier of the vehicle type
        customerId:
          type: string
          description: The unique identifier of the customer
        searchWindowStart:
          type: string
          format: date-time
          description: The the start of the search window
        searchWindowEnd:
          type: string
          format: date-time
          description: The the end of the search window
        transportationOptions:
          type: array
          items:
            $ref: '#/components/schemas/TransportationOption'
          description: The available transportation options given the current filters
        selectedTransportationOptions:
          type: array
          items:
            type: string
          description: The identifiers of the selected available transportation options
        links:
          $ref: '#/components/schemas/LinksObject'
      example:
        bookingSessionId: 0fe1767a-0556-4661-9991-19dcfbb74421
        storeIdList:
        - 29e1d17e-1ccf-4992-8ee0-e28dd75a3f75
        vehicleSpecId: CHEV-CORVST-2017-US
        vehicleTypeId: d062d8d8-d2b4-4c28-8060-a2f6ed9c9257
        customerId: 73589670-4891-4204-aa61-1ffe7ceea50e
        searchWindowStart: '2018-02-20T08:00:00Z'
        searchWindowEnd: '2018-02-21T16:00:00Z'
        transportationOptions:
        - transportationOptionId: 45e41b0d-099e-46d6-9ebd-ea35a2cd9f19
          description: Customer waiting
        selectedTransportationOptions:
        - WAITER
        links:
          bookingSessions:
            functions: Create a booking session.
            href: /booking-sessions
            methods:
              GET: false
              POST: true
              DELETE: false
          bookingSessionItems:
            functions: Create and query session items.
            href: /booking-sessions/{bookingSessionId}/items
            methods:
              GET: true
              POST: true
              DELETE: false
          bookingSessionItem:
            functions: Create and delete session items.
            href: /booking-sessions/{bookingSessionId}/items/{itemId}
            methods:
              GET: false
              POST: true
              DELETE: true
          bookingSessionAvailableStores:
            functions: Query the available stores.
            href: /booking-sessions/{bookingSessionId}/available-stores
            methods:
              GET: true
              POST: false
              DELETE: false
          bookingSessionAvailableStoreSlots:
            functions: Query slots that an available store has.
            href: /booking-sessions/{bookingSessionId}/available-stores/{storeId}/slots
            methods:
              GET: true
              POST: false
              DELETE: false
          bookingSessionAvailableStoreSlot:
            functions: Book and query a slot.
            href: /booking-sessions/{bookingSessionId}/available-stores/{storeId}/slots/{slotId}
            methods:
              GET: true
              POST: true
              DELETE: false
    AvailableStore:
      description: This shows when the store has available slots.
      required:
      - storeId
      - slots
      - links
      properties:
        storeId:
          type: string
          format: uuid
          description: The identifier of the store
        slots:
          type: array
          items:
            $ref: '#/components/schemas/Slot'
          description: The available appointment slots
        links:
          $ref: '#/components/schemas/LinksObject'
      example:
        storeId: 01b1a2a6-257d-4b35-b4c2-ae08153033ca
        slots:
        - time
        - time
        - time
        links:
          bookingSessions:
            functions: Create a booking session.
            href: /booking-sessions
            methods:
              GET: false
              POST: true
              DELETE: false
          bookingSessionItems:
            functions: Create and query session items.
            href: /booking-sessions/{bookingSessionId}/items
            methods:
              GET: true
              POST: true
              DELETE: false
          bookingSessionItem:
            functions: Create and delete session items.
            href: /booking-sessions/{bookingSessionId}/items/{itemId}
            methods:
              GET: false
              POST: true
              DELETE: true
          bookingSessionAvailableStores:
            functions: Query the available stores.
            href: /booking-sessions/{bookingSessionId}/available-stores
            methods:
              GET: true
              POST: false
              DELETE: false
          bookingSessionAvailableStoreSlots:
            functions: Query slots that an available store has.
            href: /booking-sessions/{bookingSessionId}/available-stores/{storeId}/slots
            methods:
              GET: true
              POST: false
              DELETE: false
          bookingSessionAvailableStoreSlot:
            functions: Book and query a slot.
            href: /booking-sessions/{bookingSessionId}/available-stores/{storeId}/slots/{slotId}
            methods:
              GET: true
              POST: true
              DELETE: false
  parameters:
    body.UpdateItemPayload:
      name: UpdateItemPayload
      in: body
      description: The item update parameters
      schema:
        $ref: '#/components/schemas/AddItemPayload'
    path.bookingSessionId:
      name: bookingSessionId
      in: path
      description: The identifie

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cdk-global/refs/heads/main/openapi/cdk-global-service-booking-api-openapi.yml