Roadsync department API

Department operations

OpenAPI Specification

roadsync-department-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  contact:
    email: christo.delange@roadsync.com
  description: This API allows the Roadsync clients to manage aspects of the RoadSync service via an API.
  license:
    name: Copyright (c) 2020, RoadSync Inc.
  title: Client API v1.8 authenticated department API
  version: 1.8.45
  x-api-id: 3ea39084-d8df-11ea-ad77-0017b600647f
  x-audience: external-partner
servers:
- url: https://client-api.staging.roadsync.com/{basePath}
  variables:
    Product:
      default: ClientApi
    basePath:
      default: v1
security:
- api_key: []
- session_token: []
tags:
- description: Department operations
  name: department
paths:
  /department/list:
    get:
      description: Retrieve a list of departments for a location
      operationId: department_list_get
      parameters:
      - explode: true
        in: query
        name: locationId
        required: true
        schema:
          $ref: '#/components/schemas/HashedId'
        style: form
      responses:
        '200':
          $ref: '#/components/responses/DepartmentListResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFound404'
        '429':
          $ref: '#/components/responses/TooManyRequests429'
        '500':
          $ref: '#/components/responses/ServiceError500'
        default:
          $ref: '#/components/responses/UnexpectedError'
      security:
      - api_key: []
      - session_token: []
      summary: Retrieve a list of departments for a location
      tags:
      - department
    options:
      operationId: department_list_options
      responses:
        '200':
          $ref: '#/components/responses/Options200'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFound404'
        '429':
          $ref: '#/components/responses/TooManyRequests429'
        '500':
          $ref: '#/components/responses/ServiceError500'
        default:
          $ref: '#/components/responses/UnexpectedError'
      security: []
      tags:
      - department
components:
  schemas:
    DepartmentListResponse:
      allOf:
      - $ref: '#/components/schemas/CodeMessage'
      - additionalProperties: false
        properties:
          department_list:
            description: A list of Departments
            items:
              $ref: '#/components/schemas/Department'
            maxItems: 64
            type: array
        type: object
    CodeMessage:
      additionalProperties: false
      description: A generic error object generally used for 500 responses
      properties:
        code:
          $ref: '#/components/schemas/CodeEnum'
        message:
          $ref: '#/components/schemas/Message'
      required:
      - code
      - message
    Problem:
      additionalProperties: false
      properties:
        detail:
          description: 'A human readable explanation specific to this occurrence of the

            problem.

            '
          example: Connection to database timed out
          maxLength: 2048
          pattern: /^.*$/
          type: string
        instance:
          description: 'An absolute URI that identifies the specific occurrence of the problem.

            It may or may not yield further information if dereferenced.

            '
          format: uri
          maxLength: 2048
          pattern: /^.*$/
          type: string
        status:
          description: 'The HTTP status code generated by the origin server for this occurrence

            of the problem.

            '
          example: 503
          exclusiveMaximum: true
          format: int32
          maximum: 600
          minimum: 100
          type: integer
        title:
          description: 'A short, summary of the problem type. Written in english and readable

            for engineers (usually not suited for non technical stakeholders and

            not localized); example: Service Unavailable

            '
          maxLength: 256
          pattern: /^.*$/
          type: string
        type:
          default: about:blank
          description: 'An absolute URI that identifies the problem type.  When dereferenced,

            it SHOULD provide human-readable documentation for the problem type

            (e.g., using HTML).

            '
          example: https://problems.roadsync.com/problem/unspecified-error
          format: uri
          maxLength: 2048
          pattern: /^.*$/
          type: string
      type: object
    CodeEnum:
      default: Success
      enum:
      - Success
      - Error
      - Exception
      type: string
    HashedId:
      maxLength: 128
      pattern: /^\w+$/
      type: string
    Department:
      additionalProperties: false
      properties:
        id:
          $ref: '#/components/schemas/HashedId'
        locationId:
          $ref: '#/components/schemas/HashedId'
        name:
          maxLength: 2048
          pattern: /^.*$/
          type: string
      type: object
    Message:
      maxLength: 2048
      pattern: /^[a-zA-Z0-9 ]*$/
      type: string
  responses:
    ForbiddenError:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CodeMessage'
      description: Request is completely forbidden. API not provided or method and or endpoint not supported
      headers:
        WWW_Authenticate:
          explode: false
          schema:
            maxLength: 2048
            pattern: /^.*$/
            type: string
          style: simple
    ServiceError500:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Service Error
    UnexpectedError:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: unexpected error response
    DepartmentListResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DepartmentListResponse'
      description: A department list response
    NotFound404:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: 404 Not found
    Options200:
      content:
        application/json:
          schema:
            additionalProperties: false
            type: object
      description: 200 response
      headers:
        Access-Control-Allow-Credentials:
          explode: false
          schema:
            type: boolean
          style: simple
        Access-Control-Allow-Headers:
          explode: false
          schema:
            maxLength: 256
            pattern: ^[a-zA-Z0-9 ,]*$
            type: string
          style: simple
        Access-Control-Allow-Methods:
          explode: false
          schema:
            maxLength: 256
            pattern: ^[a-zA-Z0-9 ,]*$
            type: string
          style: simple
        Access-Control-Allow-Origin:
          explode: false
          schema:
            maxLength: 256
            pattern: /^.*$/
            type: string
          style: simple
        Cache-Control:
          explode: false
          schema:
            maxLength: 256
            pattern: ^[a-zA-Z0-9 ,\-]*$
            type: string
          style: simple
        Expires:
          explode: false
          schema:
            maxLength: 256
            pattern: ^[a-zA-Z0-9 \-]*$
            type: string
          style: simple
        Pragma:
          explode: false
          schema:
            maxLength: 256
            pattern: ^[a-zA-Z0-9 ,]*$
            type: string
          style: simple
    TooManyRequests429:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: 429 too many requests response
    UnauthorizedError:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CodeMessage'
      description: API key is missing or invalid
      headers:
        WWW_Authenticate:
          explode: false
          schema:
            maxLength: 2048
            pattern: /^.*$/
            type: string
          style: simple
  securitySchemes:
    api_key:
      in: header
      name: x-api-key
      type: apiKey
      x-apikeyInfoFunc: client_api_server.controllers.authorization_controller.check_api_key
    session_token:
      bearerFormat: JWT
      scheme: bearer
      type: http
      x-apikeyInfoFunc: client_api_server.controllers.authorization_controller.check_session_token