> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vooma.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Movement

<Warning>
  <strong>Beta Feature:</strong> This functionality is currently in beta. You
  may experience changes or limited support as we continue to improve it.
</Warning>


## OpenAPI

````yaml POST /movements
openapi: 3.1.0
info:
  title: api
  version: 0.1.0
  contact: {}
servers:
  - url: https://api.vooma.ai/v0
    description: Vooma API
security: []
paths:
  /movements:
    post:
      tags:
        - Movements
      operationId: CreateMovement
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMovementInput'
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Movement'
      security:
        - bearer: []
components:
  schemas:
    CreateMovementInput:
      properties:
        movement:
          $ref: '#/components/schemas/MovementData'
      required:
        - movement
      type: object
    Movement:
      $ref: '#/components/schemas/WithId_MovementData_'
    MovementData:
      properties:
        tmsStatus:
          type: string
        attributes:
          $ref: '#/components/schemas/Attributes'
        tags:
          items:
            type: string
          type: array
        externalNotes:
          type: string
        internalNotes:
          type: string
        carrier:
          $ref: '#/components/schemas/AssignedCarrier'
        financials:
          $ref: '#/components/schemas/Financials'
        cargo:
          $ref: '#/components/schemas/Cargo'
        accessorials:
          items:
            $ref: '#/components/schemas/Accessorial'
          type: array
        equipmentOptions:
          items:
            $ref: '#/components/schemas/Equipment'
          type: array
        customer:
          $ref: '#/components/schemas/MayHaveID_CustomerData_'
        route:
          $ref: '#/components/schemas/MovementRoute'
        freightModeDetails:
          $ref: '#/components/schemas/FreightModeDetails'
        references:
          items:
            $ref: '#/components/schemas/Reference'
          type: array
        responsibleUser:
          $ref: '#/components/schemas/MayHaveID_UserData_'
        externalIds:
          items:
            $ref: '#/components/schemas/MovementExternalIdentifier'
          type: array
      required:
        - cargo
        - equipmentOptions
        - customer
        - route
        - references
        - externalIds
      type: object
    WithId_MovementData_:
      allOf:
        - properties:
            id:
              type: string
          required:
            - id
          type: object
        - $ref: '#/components/schemas/MovementData'
    Attributes:
      $ref: '#/components/schemas/V0Attributes.Attributes'
    AssignedCarrier:
      $ref: '#/components/schemas/V0Carrier.AssignedCarrier'
    Financials:
      $ref: '#/components/schemas/V0Financials.Financials'
    Cargo:
      $ref: '#/components/schemas/V0Cargo.Cargo'
    Accessorial:
      $ref: '#/components/schemas/V0Accessorial.Accessorial'
    Equipment:
      $ref: '#/components/schemas/V0Equipment.Equipment'
    MayHaveID_CustomerData_:
      allOf:
        - properties:
            id:
              type: string
          type: object
        - $ref: '#/components/schemas/CustomerData'
    MovementRoute:
      $ref: '#/components/schemas/V0Route.MovementRoute'
    FreightModeDetails:
      $ref: '#/components/schemas/V0Mode.FreightModeDetails'
    Reference:
      $ref: '#/components/schemas/V0Reference.Reference'
    MayHaveID_UserData_:
      allOf:
        - properties:
            id:
              type: string
          type: object
        - $ref: '#/components/schemas/UserData'
    MovementExternalIdentifier:
      properties:
        type:
          anyOf:
            - $ref: '#/components/schemas/MovementExternalIdentifierType'
            - type: string
        value:
          type: string
      required:
        - type
        - value
      type: object
      additionalProperties: false
    V0Attributes.Attributes:
      properties: {}
      additionalProperties:
        type: string
      type: object
    V0Carrier.AssignedCarrier:
      properties:
        assignedDispatch:
          $ref: '#/components/schemas/CarrierContact'
        assignedDriver:
          $ref: '#/components/schemas/CarrierContact'
        assignedEquipment:
          $ref: '#/components/schemas/CarrierEquipment'
        carrier:
          $ref: '#/components/schemas/Carrier'
      required:
        - carrier
      type: object
    V0Financials.Financials:
      properties:
        costNegotiationGuidance:
          $ref: '#/components/schemas/CostNegotiationGuidance'
        costs:
          $ref: '#/components/schemas/Costs'
        paymentTerms:
          $ref: '#/components/schemas/PaymentTerms'
      required:
        - costs
        - paymentTerms
      type: object
    V0Cargo.Cargo:
      properties:
        declaredValue:
          $ref: '#/components/schemas/Amount'
        dimensions:
          $ref: '#/components/schemas/Dimensions'
        totalWeight:
          $ref: '#/components/schemas/Weight'
        commodities:
          items:
            $ref: '#/components/schemas/Commodity'
          type: array
      required:
        - commodities
      type: object
    V0Accessorial.Accessorial:
      anyOf:
        - $ref: '#/components/schemas/Tarping'
        - $ref: '#/components/schemas/Liftgate'
        - $ref: '#/components/schemas/HeadacheRack'
        - $ref: '#/components/schemas/CoilRack'
        - $ref: '#/components/schemas/PipeStakes'
        - $ref: '#/components/schemas/Gps'
        - $ref: '#/components/schemas/OverDimension'
        - $ref: '#/components/schemas/BlindShipment'
        - $ref: '#/components/schemas/DriverAssistance'
        - $ref: '#/components/schemas/Scale'
        - $ref: '#/components/schemas/Straps'
        - $ref: '#/components/schemas/Team'
        - $ref: '#/components/schemas/Transloading'
        - $ref: '#/components/schemas/Ppe'
        - $ref: '#/components/schemas/ChainsAndBinders'
        - $ref: '#/components/schemas/Dunnage'
        - $ref: '#/components/schemas/FoodGrade'
        - $ref: '#/components/schemas/Twic'
        - $ref: '#/components/schemas/LimitedAccess'
        - $ref: '#/components/schemas/InsidePickup'
        - $ref: '#/components/schemas/InsideDelivery'
        - $ref: '#/components/schemas/Permit'
        - $ref: '#/components/schemas/Other'
    V0Equipment.Equipment:
      properties:
        type:
          anyOf:
            - $ref: '#/components/schemas/EquipmentType'
            - type: string
          description: Typically one of the EquipmentType enum values but subject to change
        equipmentLength:
          $ref: '#/components/schemas/Dimension'
        temperature:
          $ref: '#/components/schemas/Temperature'
        description:
          type: string
      required:
        - type
      type: object
      additionalProperties: false
    CustomerData:
      properties:
        contacts:
          items:
            $ref: '#/components/schemas/Contact'
          type: array
        name:
          type: string
        externalIds:
          items:
            $ref: '#/components/schemas/CustomerExternalIdentifier'
          type: array
      required:
        - name
        - externalIds
      type: object
    V0Route.MovementRoute:
      properties:
        stops:
          items:
            $ref: '#/components/schemas/MovementStop'
          type: array
        mileage:
          $ref: '#/components/schemas/Mileage'
      required:
        - stops
      type: object
    V0Mode.FreightModeDetails:
      properties:
        drayageSubtype:
          $ref: '#/components/schemas/DrayageSubtype'
        mode:
          $ref: '#/components/schemas/FreightMode'
      required:
        - mode
      type: object
    V0Reference.Reference:
      properties:
        type:
          anyOf:
            - $ref: '#/components/schemas/ReferenceType'
            - type: string
          description: |-
            Typically one of the ReferenceType enum values
            but subject to change
        value:
          type: string
      required:
        - type
        - value
      type: object
      additionalProperties: false
    UserData:
      $ref: '#/components/schemas/V0User.UserData'
    MovementExternalIdentifierType:
      enum:
        - CUSTOM
      type: string
    CarrierContact:
      properties:
        contact:
          $ref: '#/components/schemas/Contact'
        type:
          type: string
          enum:
            - DRIVER
            - DISPATCH
      required:
        - contact
        - type
      type: object
    CarrierEquipment:
      properties:
        trailerNumber:
          type: string
        truckNumber:
          type: string
        equipment:
          $ref: '#/components/schemas/Equipment'
      required:
        - equipment
      type: object
    Carrier:
      $ref: '#/components/schemas/MayHaveID_CarrierData_'
    CostNegotiationGuidance:
      properties:
        maxPrice:
          $ref: '#/components/schemas/Amount'
        startingPrice:
          $ref: '#/components/schemas/Amount'
      required:
        - maxPrice
        - startingPrice
      type: object
    Costs:
      properties:
        lineItems:
          items:
            $ref: '#/components/schemas/LineItem'
          type: array
      required:
        - lineItems
      type: object
    PaymentTerms:
      enum:
        - PREPAID
        - COLLECT
        - THIRD_PARTY
      type: string
    Amount:
      $ref: '#/components/schemas/V0Financials.Amount'
    Dimensions:
      $ref: '#/components/schemas/V0Dimensions.Dimensions'
    Weight:
      $ref: '#/components/schemas/V0Weight.Weight'
    Commodity:
      $ref: '#/components/schemas/V0Cargo.Commodity'
    Tarping:
      properties:
        size:
          $ref: '#/components/schemas/Dimension'
        type:
          type: string
          enum:
            - TARPING
          nullable: false
      required:
        - size
        - type
      type: object
    Liftgate:
      properties:
        type:
          type: string
          enum:
            - LIFTGATE
          nullable: false
      required:
        - type
      type: object
    HeadacheRack:
      properties:
        type:
          type: string
          enum:
            - HEADACHE_RACK
          nullable: false
      required:
        - type
      type: object
    CoilRack:
      properties:
        type:
          type: string
          enum:
            - COIL_RACK
          nullable: false
      required:
        - type
      type: object
    PipeStakes:
      properties:
        type:
          type: string
          enum:
            - PIPE_STAKES
          nullable: false
      required:
        - type
      type: object
    Gps:
      properties:
        type:
          type: string
          enum:
            - GPS
          nullable: false
      required:
        - type
      type: object
    OverDimension:
      properties:
        type:
          type: string
          enum:
            - OVER_DIMENSION
          nullable: false
      required:
        - type
      type: object
    BlindShipment:
      properties:
        type:
          type: string
          enum:
            - BLIND_SHIPMENT
          nullable: false
      required:
        - type
      type: object
    DriverAssistance:
      properties:
        type:
          type: string
          enum:
            - DRIVER_ASSISTANCE
          nullable: false
      required:
        - type
      type: object
    Scale:
      properties:
        type:
          type: string
          enum:
            - SCALE
          nullable: false
      required:
        - type
      type: object
    Straps:
      properties:
        numberRequired:
          type: number
          format: double
        type:
          type: string
          enum:
            - STRAPS
          nullable: false
      required:
        - type
      type: object
    Team:
      properties:
        type:
          type: string
          enum:
            - TEAM
          nullable: false
      required:
        - type
      type: object
    Transloading:
      properties:
        type:
          type: string
          enum:
            - TRANSLOADING
          nullable: false
      required:
        - type
      type: object
    Ppe:
      properties:
        type:
          type: string
          enum:
            - PPE
          nullable: false
      required:
        - type
      type: object
    ChainsAndBinders:
      properties:
        type:
          type: string
          enum:
            - CHAINS_AND_BINDERS
          nullable: false
      required:
        - type
      type: object
    Dunnage:
      properties:
        type:
          type: string
          enum:
            - DUNNAGE
          nullable: false
      required:
        - type
      type: object
    FoodGrade:
      properties:
        type:
          type: string
          enum:
            - FOOD_GRADE
          nullable: false
      required:
        - type
      type: object
    Twic:
      properties:
        type:
          type: string
          enum:
            - TWIC
          nullable: false
      required:
        - type
      type: object
    LimitedAccess:
      properties:
        type:
          type: string
          enum:
            - LIMITED_ACCESS
          nullable: false
      required:
        - type
      type: object
    InsidePickup:
      properties:
        type:
          type: string
          enum:
            - INSIDE_PICKUP
          nullable: false
      required:
        - type
      type: object
    InsideDelivery:
      properties:
        type:
          type: string
          enum:
            - INSIDE_DELIVERY
          nullable: false
      required:
        - type
      type: object
    Permit:
      properties:
        type:
          type: string
          enum:
            - PERMIT
          nullable: false
      required:
        - type
      type: object
    Other:
      properties:
        description:
          type: string
        type:
          type: string
          enum:
            - OTHER
          nullable: false
      required:
        - description
        - type
      type: object
    EquipmentType:
      enum:
        - BOX_TRUCK
        - CARGO_VAN
        - CONESTOGA
        - CONTAINER
        - DOUBLE_DROP
        - DRY_VAN
        - FLATBED
        - HOT_SHOT
        - LOW_BOY
        - POWER_ONLY
        - REEFER
        - REMOVABLE_GOOSENECK
        - SPRINTER_VAN
        - STEP_DECK
        - STRAIGHT_TRUCK
        - AUTO_CARRIER
        - VAN_OR_REEFER
        - FLATBED_OR_STEP_DECK
        - OTHER
      type: string
    Dimension:
      $ref: '#/components/schemas/V0Dimensions.Dimension'
    Temperature:
      properties:
        units:
          $ref: '#/components/schemas/TemperatureUnits'
        max:
          type: number
          format: double
        min:
          type: number
          format: double
      required:
        - units
      type: object
    Contact:
      $ref: '#/components/schemas/V0Contact.Contact'
    CustomerExternalIdentifier:
      properties:
        type:
          anyOf:
            - $ref: '#/components/schemas/CustomerExternalIdentifierType'
            - type: string
          description: >-
            Typically one of the CustomerExternalIdentifierType enum values, but
            strings are also allowed
        value:
          type: string
      required:
        - type
        - value
      type: object
      additionalProperties: false
    MovementStop:
      $ref: '#/components/schemas/V0Stop.MovementStop'
    Mileage:
      properties:
        uom:
          $ref: '#/components/schemas/MileageUnits'
        value:
          type: number
          format: double
      required:
        - uom
        - value
      type: object
    DrayageSubtype:
      enum:
        - IMPORT
        - EXPORT
      type: string
    FreightMode:
      enum:
        - TRUCKLOAD
        - LTL
        - PARTIAL_TRUCKLOAD
        - INTERMODAL
        - DRAYAGE
        - PARCEL
      type: string
    ReferenceType:
      enum:
        - ORDER_REFERENCE
        - PURCHASE_ORDER
        - BILL_OF_LADING
        - INVOICE
        - SHIPMENT
        - SALES_ORDER
        - TRACKING
        - DELIVERY
        - CUSTOMER_REFERENCE
        - LOAD
        - CONTAINER
        - MASTER_BILL_OF_LADING
        - BOOKING
        - SEAL
        - PICKUP
        - APPOINTMENT
        - ITEM_REFERENCE
        - OTHER
      type: string
    V0User.UserData:
      properties:
        externalIds:
          items:
            $ref: '#/components/schemas/UserExternalIdentifier'
          type: array
      required:
        - externalIds
      type: object
    MayHaveID_CarrierData_:
      allOf:
        - properties:
            id:
              type: string
          type: object
        - $ref: '#/components/schemas/CarrierData'
    LineItem:
      properties:
        type:
          anyOf:
            - $ref: '#/components/schemas/LineItemType'
            - type: string
          description: Typically one of the LineItemType enum values but subject to change
        description:
          type: string
        amount:
          $ref: '#/components/schemas/Amount'
      required:
        - description
        - amount
      type: object
      additionalProperties: false
    V0Financials.Amount:
      properties:
        uom:
          $ref: '#/components/schemas/CurrencyUnits'
        value:
          type: number
          format: double
      required:
        - uom
        - value
      type: object
    V0Dimensions.Dimensions:
      properties:
        height:
          $ref: '#/components/schemas/Dimension'
        width:
          $ref: '#/components/schemas/Dimension'
        length:
          $ref: '#/components/schemas/Dimension'
      type: object
    V0Weight.Weight:
      properties:
        units:
          $ref: '#/components/schemas/WeightUnits'
        value:
          type: number
          format: double
      required:
        - units
        - value
      type: object
    V0Cargo.Commodity:
      properties:
        isStackable:
          type: boolean
        itemReference:
          $ref: '#/components/schemas/Reference'
        dimensions:
          $ref: '#/components/schemas/Dimensions'
        weight:
          $ref: '#/components/schemas/Weight'
        hazmat:
          $ref: '#/components/schemas/HazmatDetails'
        nmfcCode:
          type: string
        freightClass:
          type: string
        pieceUnits:
          anyOf:
            - $ref: '#/components/schemas/ShippingUnits'
            - type: string
        pieceQuantity:
          type: number
          format: double
        handlingUnits:
          anyOf:
            - $ref: '#/components/schemas/ShippingUnits'
            - type: string
        handlingQuantity:
          type: number
          format: double
        description:
          type: string
      required:
        - description
      type: object
    V0Dimensions.Dimension:
      properties:
        value:
          type: number
          format: double
        units:
          anyOf:
            - $ref: '#/components/schemas/DimensionUnits'
            - type: string
          description: >-
            Typically one of the DimensionUnits enum values but subject to
            change
      required:
        - value
        - units
      type: object
      additionalProperties: false
    TemperatureUnits:
      enum:
        - F
        - C
      type: string
    V0Contact.Contact:
      $ref: '#/components/schemas/MayHaveID_ContactData_'
    CustomerExternalIdentifierType:
      enum:
        - ALJEX
        - AVRL
        - BITFREIGHTER_RATING
        - CUSTOM
        - DAT
        - GENLOGS
        - GREENSCREENS
        - HIGHWAY
        - HOSTED_MCLEOD
        - LEGACY_MERCURYGATE
        - MCLEOD
        - MCLEOD_HOSTED
        - MERCURYGATE
        - ORDERFUL
        - SONAR
        - SOFTMODAL
        - STEDI
        - STRATEGY_LIVE
        - TABI
        - TAI
        - TEST
        - THREE_PL
        - TRANSFIX_RATING
        - TURVO
        - TRUCKSTOP
        - VOOMA_PUBLIC_API
        - MICROSOFT
        - MICROSOFT_TEAMS
        - SLACK
      type: string
    V0Stop.MovementStop:
      $ref: '#/components/schemas/MayHaveID_MovementStopData_'
    MileageUnits:
      enum:
        - MI
        - KM
      type: string
    UserExternalIdentifier:
      properties:
        type:
          anyOf:
            - $ref: '#/components/schemas/UserExternalIdentifierType'
            - type: string
          description: |-
            Typically one of the UserExternalIdentifierType enum values
            but subject to change
        value:
          type: string
      required:
        - type
        - value
      type: object
      additionalProperties: false
    CarrierData:
      properties:
        equipment:
          items:
            $ref: '#/components/schemas/CarrierEquipment'
          type: array
        contacts:
          items:
            $ref: '#/components/schemas/CarrierContact'
          type: array
        dotNumber:
          type: string
        mcNumber:
          type: string
        name:
          type: string
      required:
        - name
      type: object
    LineItemType:
      enum:
        - FREIGHT_FLAT
        - FREIGHT_PER_MILE
        - FUEL
        - FUEL_FLAT
        - FUEL_PER_MILE
        - FREIGHT_PER_CONTAINER
        - CHASSIS
        - OVERWEIGHT
        - PRE_PULL
        - STORAGE
        - DETENTION
        - TMF_PIER_PASS
        - PORT_FEE
        - REDELIVERY
        - EXTRA_MILES
        - TRANSLOAD
        - ESCORT
        - EXPEDITED
        - CHASSIS_SPLIT
        - OTHER
      type: string
    CurrencyUnits:
      enum:
        - USD
        - CAD
      type: string
    WeightUnits:
      enum:
        - LB
        - KG
      type: string
    HazmatDetails:
      properties:
        classifications:
          items:
            $ref: '#/components/schemas/HazmatClassification'
          type: array
        packingGroup:
          type: string
        unNumber:
          type: string
        weight:
          $ref: '#/components/schemas/Weight'
        contact:
          $ref: '#/components/schemas/HazmatContact'
      required:
        - classifications
        - contact
      type: object
    ShippingUnits:
      enum:
        - BAGS
        - BALES
        - BOTTLES
        - BOXES
        - BUNDLES
        - CARTONS
        - CASES
        - CRATES
        - DRUMS
        - PACKAGES
        - PAILS
        - PALLETS
        - PIECES
        - ROLLS
        - SKIDS
        - TRUCKLOADS
        - TUBES
        - UNITS
        - VEHICLES
      type: string
    DimensionUnits:
      enum:
        - IN
        - CM
        - FT
      type: string
    MayHaveID_ContactData_:
      allOf:
        - properties:
            id:
              type: string
          type: object
        - $ref: '#/components/schemas/ContactData'
    MayHaveID_MovementStopData_:
      allOf:
        - properties:
            id:
              type: string
          type: object
        - $ref: '#/components/schemas/MovementStopData'
    UserExternalIdentifierType:
      enum:
        - CUSTOM
        - EMAIL
        - PHONE
        - VOOMA_USERNAME
      type: string
    HazmatClassification:
      properties:
        qualifier:
          anyOf:
            - $ref: '#/components/schemas/HazmatClassQualifier'
            - type: string
        hazardClass:
          anyOf:
            - $ref: '#/components/schemas/HazmatClass'
            - type: string
      required:
        - qualifier
        - hazardClass
      type: object
    HazmatContact:
      allOf:
        - $ref: '#/components/schemas/Contact'
        - properties:
            reference:
              $ref: '#/components/schemas/Reference'
          type: object
    ContactData:
      anyOf:
        - $ref: '#/components/schemas/CarrierContactData'
        - $ref: '#/components/schemas/CustomerContactData'
        - $ref: '#/components/schemas/LocationContactData'
    MovementStopData:
      allOf:
        - $ref: '#/components/schemas/CommonStopData'
        - properties:
            location:
              $ref: '#/components/schemas/MovementStopLocation'
          required:
            - location
          type: object
    HazmatClassQualifier:
      type: string
      enum:
        - P
        - S
    HazmatClass:
      type: string
      enum:
        - '1'
        - '2'
        - '3'
        - '4'
        - '5'
        - '6'
        - '7'
        - '8'
        - '9'
        - '1.1'
        - '1.2'
        - '1.3'
        - '1.4'
        - '1.5'
        - '1.6'
        - '2.1'
        - '2.2'
        - '2.3'
        - '4.1'
        - '4.2'
        - '4.3'
        - '5.1'
        - '5.2'
        - '6.1'
        - '6.2'
    CarrierContactData:
      allOf:
        - $ref: '#/components/schemas/BaseContactData'
        - properties:
            carrierId:
              type: string
          required:
            - carrierId
          type: object
    CustomerContactData:
      allOf:
        - $ref: '#/components/schemas/BaseContactData'
        - properties:
            customerId:
              type: string
          required:
            - customerId
          type: object
    LocationContactData:
      $ref: '#/components/schemas/BaseContactData'
    CommonStopData:
      properties:
        externalNotes:
          type: string
        internalNotes:
          type: string
        accessorials:
          items:
            $ref: '#/components/schemas/Accessorial'
          type: array
        contact:
          $ref: '#/components/schemas/Contact'
        commodities:
          items:
            $ref: '#/components/schemas/Commodity'
          type: array
        weight:
          $ref: '#/components/schemas/Weight'
        notes:
          type: string
        schedulingType:
          $ref: '#/components/schemas/SchedulingType'
        dateTimeRanges:
          items:
            $ref: '#/components/schemas/DateTimeRange'
          type: array
        type:
          $ref: '#/components/schemas/StopType'
        stopReferences:
          items:
            $ref: '#/components/schemas/Reference'
          type: array
        externalIds:
          items:
            $ref: '#/components/schemas/ExternalIdentifier'
          type: array
      required:
        - type
        - stopReferences
      type: object
    MovementStopLocation:
      $ref: '#/components/schemas/V0Location.Location'
    BaseContactData:
      properties:
        name:
          type: string
        phone:
          type: string
        email:
          type: string
        role:
          type: string
      type: object
    SchedulingType:
      enum:
        - FIRST_COME_FIRST_SERVE
        - APPOINTMENT
      type: string
    DateTimeRange:
      $ref: '#/components/schemas/V0Datetime.DateTimeRange'
    StopType:
      enum:
        - PICKUP
        - DELIVERY
      type: string
    ExternalIdentifier:
      $ref: '#/components/schemas/V0ExternalId.ExternalIdentifier'
    V0Location.Location:
      $ref: '#/components/schemas/MayHaveID_LocationData_'
    V0Datetime.DateTimeRange:
      properties:
        startDate:
          type: string
          description: Start date in YYYY-MM-DD format
        endDate:
          type: string
          description: Optional end date in YYYY-MM-DD format
        startTime:
          type: string
          description: Optional start time in `timzone` and HH:mm:ss format.
        endTime:
          type: string
          description: Optional end time in `timezone` and HH:mm:ss format
        timezone:
          type: string
          description: >-
            Optional timezone in [tz
            database](https://en.wikipedia.org/wiki/Tz_database) format e.g.
            "America/New_York". If omitted UTC is assumed.
        type:
          $ref: '#/components/schemas/DateTimeRangeType'
      required:
        - startDate
      type: object
      additionalProperties: false
    V0ExternalId.ExternalIdentifier:
      properties:
        type:
          anyOf:
            - $ref: '#/components/schemas/ExternalIdentifierType'
            - type: string
        value:
          type: string
      required:
        - type
        - value
      type: object
      additionalProperties: false
    MayHaveID_LocationData_:
      allOf:
        - properties:
            id:
              type: string
          type: object
        - $ref: '#/components/schemas/LocationData'
    DateTimeRangeType:
      enum:
        - FACILITY_HOURS
        - APPOINTMENT
      type: string
    ExternalIdentifierType:
      enum:
        - CUSTOM
      type: string
    LocationData:
      properties:
        name:
          type: string
        contacts:
          items:
            $ref: '#/components/schemas/LocationContact'
          type: array
        hours:
          $ref: '#/components/schemas/FacilityHours'
        scheduling:
          $ref: '#/components/schemas/SchedulingDetails'
        geoCoordinates:
          $ref: '#/components/schemas/GeoCoordinates'
        address:
          $ref: '#/components/schemas/Address'
        externalIds:
          items:
            $ref: '#/components/schemas/LocationExternalIdentifier'
          type: array
      required:
        - address
        - externalIds
      type: object
    LocationContact:
      $ref: '#/components/schemas/V0Contact.LocationContact'
    FacilityHours:
      properties:
        sunday:
          $ref: '#/components/schemas/DayHours'
        saturday:
          $ref: '#/components/schemas/DayHours'
        friday:
          $ref: '#/components/schemas/DayHours'
        thursday:
          $ref: '#/components/schemas/DayHours'
        wednesday:
          $ref: '#/components/schemas/DayHours'
        tuesday:
          $ref: '#/components/schemas/DayHours'
        monday:
          $ref: '#/components/schemas/DayHours'
      type: object
    SchedulingDetails:
      $ref: '#/components/schemas/V0Schedule.SchedulingDetails'
    GeoCoordinates:
      properties:
        longitude:
          type: number
          format: double
        latitude:
          type: number
          format: double
      required:
        - longitude
        - latitude
      type: object
    Address:
      properties:
        country:
          type: string
        postalCode:
          type: string
        city:
          type: string
        state:
          type: string
        addressTwo:
          type: string
        addressOne:
          type: string
      type: object
    LocationExternalIdentifier:
      properties:
        type:
          anyOf:
            - $ref: '#/components/schemas/LocationExternalIdentifierType'
            - type: string
          description: |-
            Typically one of the LocationExternalIdentifierType enum values
            but subject to change
        value:
          type: string
      required:
        - type
        - value
      type: object
      additionalProperties: false
    V0Contact.LocationContact:
      $ref: '#/components/schemas/MayHaveID_LocationContactData_'
    DayHours:
      properties:
        type:
          type: string
          enum:
            - FACILITY_HOURS
          nullable: false
        timezone:
          type: string
        endTime:
          type: string
        startTime:
          type: string
      required:
        - type
        - timezone
        - endTime
        - startTime
      type: object
      additionalProperties: false
    V0Schedule.SchedulingDetails:
      properties:
        maxDaysAhead:
          type: number
          format: double
        notes:
          type: string
        methods:
          items:
            $ref: '#/components/schemas/SchedulingMethod'
          type: array
      required:
        - methods
      type: object
    LocationExternalIdentifierType:
      enum:
        - CUSTOM
        - GOOGLE_PLACES
        - TURVO
      type: string
    MayHaveID_LocationContactData_:
      allOf:
        - properties:
            id:
              type: string
          type: object
        - $ref: '#/components/schemas/LocationContactData'
    SchedulingMethod:
      anyOf:
        - $ref: '#/components/schemas/EmailSchedulingMethod'
        - $ref: '#/components/schemas/PhoneSchedulingMethod'
        - $ref: '#/components/schemas/PortalSchedulingMethod'
    EmailSchedulingMethod:
      properties:
        contact:
          $ref: '#/components/schemas/LocationContact'
        type:
          type: string
          enum:
            - EMAIL
          nullable: false
      required:
        - contact
        - type
      type: object
    PhoneSchedulingMethod:
      properties:
        contact:
          $ref: '#/components/schemas/LocationContact'
        type:
          type: string
          enum:
            - PHONE
          nullable: false
      required:
        - contact
        - type
      type: object
    PortalSchedulingMethod:
      properties:
        details:
          $ref: '#/components/schemas/PortalSchedulingDetails'
        type:
          type: string
          enum:
            - PORTAL
          nullable: false
      required:
        - details
        - type
      type: object
    PortalSchedulingDetails:
      properties:
        portal:
          $ref: '#/components/schemas/Portal'
      required:
        - portal
      type: object
    Portal:
      type: string
      enum:
        - AMAZON_CARRIER_CENTRAL
        - BLUE_YONDER
        - COSTCO
        - DSDLINK
        - E2OPEN
        - LMCONNECT
        - MANHATTAN
        - NCR
        - OPENDOCK
        - RYDERSHARE
        - YARDVIEW
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: API Key

````