Vooma Customers API

The Customers API from Vooma — 3 operation(s) for customers.

OpenAPI Specification

vooma-customers-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: api Carriers Customers API
  version: 0.1.0
  contact: {}
servers:
- url: https://api.vooma.ai/v0
  description: Vooma API
tags:
- name: Customers
paths:
  /customers/search:
    post:
      operationId: GetCustomers
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/GetCustomersPayload'
                - $ref: '#/components/schemas/PaginatedResponse'
      tags:
      - Customers
      security:
      - bearer: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetCustomersInput'
  /customers/{customerId}:
    get:
      operationId: GetCustomer
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCustomerPayload'
      tags:
      - Customers
      security:
      - bearer: []
      parameters:
      - in: path
        name: customerId
        required: true
        schema:
          type: string
    put:
      operationId: UpdateCustomer
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
      tags:
      - Customers
      security:
      - bearer: []
      parameters:
      - in: path
        name: customerId
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCustomerInput'
  /customers:
    post:
      operationId: CreateCustomer
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCustomerPayload'
      tags:
      - Customers
      security:
      - bearer: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomerInput'
components:
  schemas:
    UpdateCustomerInput:
      $ref: '#/components/schemas/VoomaPublicAPIv0.UpdateCustomerInput'
    CustomerContactData:
      allOf:
      - $ref: '#/components/schemas/BaseContactData'
      - properties:
          customerId:
            type: string
        required:
        - customerId
        type: object
    UpdateCustomerData:
      properties:
        name:
          type: string
        externalIds:
          items:
            $ref: '#/components/schemas/CustomerExternalIdentifier'
          type: array
      required:
      - name
      - externalIds
      type: object
    WithId_CustomerData_:
      allOf:
      - properties:
          id:
            type: string
        required:
        - id
        type: object
      - $ref: '#/components/schemas/CustomerData'
    MayHaveID_ContactData_:
      allOf:
      - properties:
          id:
            type: string
        type: object
      - $ref: '#/components/schemas/ContactData'
    Pagination:
      properties:
        limit:
          type: number
          format: double
        after:
          type: string
        before:
          type: string
        last:
          type: number
          format: double
        first:
          type: number
          format: double
      type: object
    VoomaPublicAPIv0.GetCustomerPayload:
      properties:
        customer:
          $ref: '#/components/schemas/Customer'
      required:
      - customer
      type: object
    GetCustomersPayload:
      $ref: '#/components/schemas/VoomaPublicAPIv0.GetCustomersPayload'
    VoomaPublicAPIv0.CreateCustomerInput:
      properties:
        customer:
          $ref: '#/components/schemas/CustomerData'
      required:
      - customer
      type: object
    VoomaPublicAPIv0.UpdateCustomerInput:
      properties:
        customer:
          $ref: '#/components/schemas/UpdateCustomerData'
      required:
      - customer
      type: object
    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
    ContactData:
      anyOf:
      - $ref: '#/components/schemas/CarrierContactData'
      - $ref: '#/components/schemas/CustomerContactData'
      - $ref: '#/components/schemas/LocationContactData'
    VoomaPublicAPIv0.PaginatedResponse:
      properties:
        pageInfo:
          properties:
            endCursor:
              type: string
            startCursor:
              type: string
            hasPreviousPage:
              type: boolean
            hasNextPage:
              type: boolean
          type: object
        totalCount:
          type: number
          format: double
        count:
          type: number
          format: double
      type: object
    VoomaPublicAPIv0.CreateCustomerPayload:
      anyOf:
      - $ref: '#/components/schemas/Customer'
      - $ref: '#/components/schemas/DuplicatePayload'
    CreateCustomerPayload:
      $ref: '#/components/schemas/VoomaPublicAPIv0.CreateCustomerPayload'
    LocationContactData:
      $ref: '#/components/schemas/BaseContactData'
    BaseContactData:
      properties:
        name:
          type: string
        phone:
          type: string
        email:
          type: string
        role:
          type: string
      type: object
    VoomaPublicAPIv0.GetCustomersPayload:
      properties:
        customers:
          items:
            $ref: '#/components/schemas/Customer'
          type: array
      required:
      - customers
      type: object
    CarrierContactData:
      allOf:
      - $ref: '#/components/schemas/BaseContactData'
      - properties:
          carrierId:
            type: string
        required:
        - carrierId
        type: object
    V0Contact.Contact:
      $ref: '#/components/schemas/MayHaveID_ContactData_'
    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
    VoomaPublicAPIv0.GetCustomersInput:
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        filterById:
          type: string
        search:
          type: string
      type: object
    DuplicatePayload:
      properties:
        customer:
          $ref: '#/components/schemas/Customer'
        error:
          type: string
          enum:
          - DUPLICATE
          nullable: false
      required:
      - customer
      - error
      type: object
    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
    Contact:
      $ref: '#/components/schemas/V0Contact.Contact'
    PaginatedResponse:
      $ref: '#/components/schemas/VoomaPublicAPIv0.PaginatedResponse'
    GetCustomersInput:
      $ref: '#/components/schemas/VoomaPublicAPIv0.GetCustomersInput'
    GetCustomerPayload:
      $ref: '#/components/schemas/VoomaPublicAPIv0.GetCustomerPayload'
    CreateCustomerInput:
      $ref: '#/components/schemas/VoomaPublicAPIv0.CreateCustomerInput'
    Customer:
      $ref: '#/components/schemas/WithId_CustomerData_'
  securitySchemes:
    basic:
      scheme: basic
      type: http
    bearer:
      type: http
      scheme: bearer
      bearerFormat: API Key
    auth0:
      type: http
      scheme: bearer
      bearerFormat: JWT