swagger: "2.0"
info:
  version: 1.3.0
  title: "devops"
  description: "System Operations Microservice"
  termsOfService: "http://taxnexus.net/terms/"
  contact:
    email: "noc@taxnexus.net"
  license:
    name: "Proprietary - Copyright (c) 2018-2021 by Taxnexus, Inc."
securityDefinitions:
  ApiKeyAuth:
    type: "apiKey"
    in: "header"
    name: "X-API-Key"
schemes:
  - "http"
basePath: "/v1"
host: "devops.fabric.tnxs.net:8080"
consumes:
  - "application/json"
produces:
  - "application/json"
parameters:
  databaseIdQuery:
    description: Taxnexus Record Id of a Database
    in: query
    name: databaseId
    required: false
    type: string
  taxnexusAccountQuery:
    description: Taxnexus Account of a Tenant
    in: query
    name: taxnexusAccount
    required: false
    type: string
  tenantIdQuery:
    description: Taxnexus Record Id of a Tenant
    in: query
    name: tenantId
    required: false
    type: string
  tenantRequest:
    description: An array of Tenant records
    in: body
    name: TenantRequest
    required: true
    schema:
      $ref: "#/definitions/TenantRequest"
  databaseRequest:
    description: An array of Database records
    in: body
    name: DatabaseRequest
    required: true
    schema:
      $ref: "#/definitions/DatabaseRequest"
  X-API-Key:
    name: X-API-Key
    in: "header"
    required: true
    type: string
  ClusterRequest:
    description: An array of Cluster records
    in: body
    name: ClusterRequest
    required: true
    schema:
      $ref: "#/definitions/ClusterRequest"
  IngestRequest:
    description: An array of Ingest records
    in: body
    name: IngestRequest
    required: true
    schema:
      $ref: "#/definitions/IngestRequest"
  JobRequest:
    description: An array of Job records
    in: body
    name: JobRequest
    required: true
    schema:
      $ref: "#/definitions/JobRequest"
  ServiceRequest:
    description: An array of Service records
    in: body
    name: ServiceRequest
    required: true
    schema:
      $ref: "#/definitions/ServiceRequest"
  TemplateRequest:
    description: An array of Template records
    in: body
    name: TemplateRequest
    required: true
    schema:
      $ref: "#/definitions/TemplateRequest"
  UserRequest:
    description: An array of User records
    in: body
    name: UserRequest
    required: true
    schema:
      $ref: "#/definitions/UserRequest"
  accountIdQuery:
    description: Taxnexus Record Id of an Account
    in: query
    name: accountId
    required: false
    type: string
  contactIdQuery:
    description: Taxnexus Record Id of a Contact
    in: query
    name: contactId
    required: false
    type: string
  accountNumberQuery:
    description:
      The Taxnexus Account Number of the Account to be used a record
      retrieval
    in: query
    name: accountNumber
    required: false
    type: string
  activeQuery:
    description: Retrieve active records only?
    in: query
    name: active
    required: false
    type: boolean
  apiKeyQuery:
    description: Service account or developer API key
    in: query
    name: apikey
    type: string
  clusterIdPath:
    description: Taxnexus Record Id of a Cluster
    in: path
    name: clusterIdPath
    type: string
    required: true
  databaseIdPath:
    description: Taxnexus Record Id of a Database
    in: path
    name: databaseIdPath
    type: string
    required: true
  clusterIdQuery:
    description: Taxnexus Record Id of a Cluster
    in: query
    name: clusterId
    required: false
    type: string
  companyIdQuery:
    description: Taxnexus Record Id of a Company
    in: query
    name: companyId
    required: false
    type: string
  ingestIdPath:
    description: Taxnexus Record Id of a Ingest
    in: path
    name: ingestIdPath
    type: string
    required: true
  ingestIdQuery:
    description: Taxnexus Record Id of an Ingest
    in: query
    name: ingestId
    required: false
    type: string
  jobIdPath:
    description: Taxnexus Record Id of a Job
    in: path
    name: jobIdPath
    type: string
    required: true
  jobIdQuery:
    description: Taxnexus Record Id of a Job
    in: query
    name: jobId
    required: false
    type: string
  limitQuery:
    description: "How many objects to return at one time"
    format: int64
    in: query
    name: limit
    required: false
    type: integer
  offsetQuery:
    description: How many objects to skip? (default 0)
    format: int64
    in: query
    name: offset
    required: false
    type: integer
  serviceIdPath:
    description: Taxnexus Record Id of a Service
    in: path
    name: serviceIdPath
    type: string
    required: true
  serviceIdQuery:
    description: Service ID
    in: query
    name: serviceId
    type: string
  templateIdPath:
    description: Taxnexus Record Id of a Template
    in: path
    name: templateIdPath
    type: string
    required: true
  templateIdQuery:
    description: Template ID
    in: query
    name: templateId
    type: string
  objectTypeQuery:
    description: Object Type Name
    in: query
    name: objectType
    type: string
  isMasterQuery:
    description: Is Master Template?
    in: query
    name: isMaster
    type: boolean
  userIdPath:
    description: Taxnexus Record Id of a User
    in: path
    name: userIdPath
    type: string
    required: true
  tenantIdPath:
    description: Taxnexus Record Id of a Tenant
    in: path
    name: tenantIdPath
    type: string
    required: true
  userIdQuery:
    description: Taxnexus User ID (unique)
    in: query
    name: userId
    type: string
  emailQuery:
    description: Email Address (not unique)
    in: query
    name: email
    type: string
  usernameQuery:
    description: Username (unique)
    in: query
    name: username
    type: string
  userRequest:
    description: An array of user records
    in: body
    name: UserRequest
    required: true
    schema:
      $ref: "#/definitions/UserRequest"
responses:
  AccessForbidden:
    description: "Access forbidden, account lacks access"
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Error"
  ClusterSingletonResponse:
    description: Single Cluster record response
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/Cluster"
  ClusterObservableResponse:
    description: Single Cluster record response
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      type: array
      items:
        $ref: "#/definitions/Cluster"
  ClusterResponse:
    description: Taxnexus Response with Cluster objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/ClusterResponse"
  DeveopsDeleteResponse:
    description:
      Taxnexus Response with Message Objects with Delete Status
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/DeleteResponse"
  IngestResponse:
    description: Taxnexus Response with Ingest objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/IngestResponse"
  IngestSingletonResponse:
    description: Single Ingest record response
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/Ingest"
  IngestObservableResponse:
    description: Single Ingest record response
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      type: array
      items:
        $ref: "#/definitions/Ingest"
  JobResponse:
    description: Taxnexus Response with Job objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/JobResponse"
  JobSingletonResponse:
    description: Single Job record response
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/Job"
  JobObservableResponse:
    description: Single Job record response
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      type: array
      items:
        $ref: "#/definitions/Job"
  NotFound:
    headers:
      Access-Control-Allow-Origin:
        type: string
    description: Resource was not found
    schema:
      $ref: "#/definitions/Error"
  DatabaseResponse:
    headers:
      Access-Control-Allow-Origin:
        type: string
    description: Taxnexus Response with Database objects
    schema:
      $ref: "#/definitions/DatabaseResponse"
  DatabaseSingletonResponse:
    description: Single Database record response
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/Database"
  DatabaseObservableResponse:
    description: Single Database record response
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      type: array
      items:
        $ref: "#/definitions/Database"
  TenantResponse:
    headers:
      Access-Control-Allow-Origin:
        type: string
    description: Taxnexus Response with Tenant objects
    schema:
      $ref: "#/definitions/TenantResponse"
  TenantSingletonResponse:
    description: Single Tenant record response
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/Tenant"
  TenantObservableResponse:
    description: Single Tenant record response
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      type: array
      items:
        $ref: "#/definitions/Tenant"
  ServerError:
    headers:
      Access-Control-Allow-Origin:
        type: string
    description: Server Internal Error
    schema:
      $ref: "#/definitions/Error"
  ServiceResponse:
    description: Taxnexus Response with Service objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/ServiceResponse"
  ServiceSingletonResponse:
    description: Single Service record response
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/Service"
  ServiceObservableResponse:
    description: Simple Service record response
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      type: array
      items:
        $ref: "#/definitions/Service"
  TemplateResponse:
    description: Taxnexus Response with Template objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/TemplateResponse"
  TemplateSingletonResponse:
    description: Single Template record response
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/Template"
  TemplateObservableResponse:
    description: Simple Template record response
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      type: array
      items:
        $ref: "#/definitions/Template"
  Unauthorized:
    description: "Access Unauthorized, invalid API-KEY was used"
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/Error"
  UnprocessableEntity:
    description: "Unprocessable Entity, likely a bad parameter"
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/Error"
  UserResponse:
    description: Taxnexus Response with User objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/UserResponse"
  UserSingletonResponse:
    description: Single User record response
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/User"
  UserObservableResponse:
    description: Simple User record response
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      type: array
      items:
        $ref: "#/definitions/User"
  CORSResponse:
    description: CORS OPTIONS response
    headers:
      Access-Control-Allow-Origin:
        type: string
      Access-Control-Allow-Headers:
        type: string
      Access-Control-Allow-Methods:
        type: string
      Access-Control-Expose-Headers:
        type: string
      Access-Control-Max-Age:
        type: string
      Access-Control-Allow-Credentials:
        type: string
      Cache-Control:
        type: string
paths:
  /clusters:
    get:
      description: Return a list of Cluster records from the datastore
      operationId: getClusters
      parameters:
        - $ref: "#/parameters/clusterIdQuery"
        - $ref: "#/parameters/companyIdQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/ClusterResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a list Clusters
      tags:
        - Cluster
    options:
      description: CORS support
      operationId: clustersOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Create Clusters in Taxnexus
      operationId: postClusters
      parameters:
        - $ref: "#/parameters/ClusterRequest"
      responses:
        "200":
          $ref: "#/responses/ClusterResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Create new Clusters
      tags:
        - Cluster
    put:
      description: Update Cluster in Taxnexus
      operationId: putClusters
      parameters:
        - $ref: "#/parameters/ClusterRequest"
      responses:
        "200":
          $ref: "#/responses/ClusterResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update Clustera
      tags:
        - Cluster
  /clusters/observable:
    get:
      description: Returns a Cluster retrieval in a observable array
      operationId: getClustersObservable
      responses:
        "200":
          $ref: "#/responses/ClusterObservableResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get Clusters in an observable array
      tags:
        - Cluster
    options:
      description: CORS support
      operationId: clusterOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
  "/clusters/{clusterIdPath}":
    get:
      description:
        Return a single Cluster object from datastore as a Singleton
      operationId: getCluster
      parameters:
        - $ref: "#/parameters/clusterIdPath"
      responses:
        "200":
          $ref: "#/responses/ClusterSingletonResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a single Cluster object
      tags:
        - Cluster
  /databases:
    get:
      description: Return a list of Database records from the datastore
      operationId: getDatabases
      parameters:
        - $ref: "#/parameters/databaseIdQuery"
        - $ref: "#/parameters/companyIdQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/DatabaseResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a list Databases
      tags:
        - Database
    options:
      description: CORS support
      operationId: databasesOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Create Databases in Taxnexus
      operationId: postDatabases
      parameters:
        - $ref: "#/parameters/databaseRequest"
      responses:
        "200":
          $ref: "#/responses/DatabaseResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Create new Databases
      tags:
        - Database
    put:
      description: Update Database in Taxnexus
      operationId: putDatabases
      parameters:
        - $ref: "#/parameters/databaseRequest"
      responses:
        "200":
          $ref: "#/responses/DatabaseResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update Databases
      tags:
        - Database
  /databases/observable:
    get:
      description: Returns a Database retrieval in a observable array
      operationId: getDatabasesObservable
      responses:
        "200":
          $ref: "#/responses/DatabaseObservableResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get Databases in an observable array
      tags:
        - Database
    options:
      description: CORS support
      operationId: databaseOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
  "/databases/{databaseIdPath}":
    get:
      description:
        Return a single Database object from datastore as a Singleton
      operationId: getDatabase
      parameters:
        - $ref: "#/parameters/databaseIdPath"
      responses:
        "200":
          $ref: "#/responses/DatabaseSingletonResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a single Database object
      tags:
        - Database
  /ingests:
    get:
      description: Return a list of Ingest records
      operationId: getIngests
      parameters:
        - $ref: "#/parameters/accountIdQuery"
        - $ref: "#/parameters/companyIdQuery"
        - $ref: "#/parameters/ingestIdQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/IngestResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a list Ingests
      tags:
        - Ingest
    options:
      description: CORS support
      operationId: ingestsOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Create new Ingests
      operationId: postIngests
      parameters:
        - $ref: "#/parameters/IngestRequest"
      responses:
        "200":
          $ref: "#/responses/IngestResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Create new Ingests
      tags:
        - Ingest
    put:
      description: Update Ingests
      operationId: putIngests
      parameters:
        - $ref: "#/parameters/IngestRequest"
      responses:
        "200":
          $ref: "#/responses/IngestResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update Ingests
      tags:
        - Ingest
  /ingests/observable:
    get:
      description: Returns a Ingest retrieval in a observable array
      operationId: getIngestsObservable
      responses:
        "200":
          $ref: "#/responses/IngestObservableResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get Ingests in an observable array
      tags:
        - Ingest
    options:
      description: CORS support
      operationId: ingestOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
  "/ingests/{ingestIdPath}":
    get:
      description:
        Return a single Ingest object from datastore as a Singleton
      operationId: getIngest
      parameters:
        - $ref: "#/parameters/ingestIdPath"
      responses:
        "200":
          $ref: "#/responses/IngestSingletonResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a single Ingest object
      tags:
        - Ingest
  /jobs:
    get:
      description: Return a list of Job records from the datastore
      operationId: getJobs
      parameters:
        - $ref: "#/parameters/accountIdQuery"
        - $ref: "#/parameters/companyIdQuery"
        - $ref: "#/parameters/jobIdQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/JobResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a list Jobs
      tags:
        - Job
    options:
      description: CORS support
      operationId: jobsOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Create and enqueue Jobs in Taxnexus
      operationId: postJobs
      parameters:
        - $ref: "#/parameters/JobRequest"
      responses:
        "200":
          $ref: "#/responses/JobResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Create new Jobs
      tags:
        - Job
    put:
      description: Update Jobs in Taxnexus
      operationId: putJobs
      parameters:
        - $ref: "#/parameters/JobRequest"
      responses:
        "200":
          $ref: "#/responses/JobResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update Jobs
      tags:
        - Job
  /jobs/observable:
    get:
      description: Returns a Job retrieval in a observable array
      operationId: getJobsObservable
      responses:
        "200":
          $ref: "#/responses/JobObservableResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get Jobs in an observable array
      tags:
        - Job
    options:
      description: CORS support
      operationId: jobOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
  "/jobs/{jobIdPath}":
    get:
      description:
        Return a single Job object from datastore as a Singleton
      operationId: getJob
      parameters:
        - $ref: "#/parameters/jobIdPath"
      responses:
        "200":
          $ref: "#/responses/JobSingletonResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a single Job object
      tags:
        - Job
  /services:
    get:
      description: Return a list of Services records from the datastore
      operationId: getServices
      parameters:
        - $ref: "#/parameters/serviceIdQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/ServiceResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a list of Services
      tags:
        - Service
    options:
      description: CORS support
      operationId: servicesOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Create Services in Taxnexus
      operationId: postServices
      parameters:
        - $ref: "#/parameters/ServiceRequest"
      responses:
        "200":
          $ref: "#/responses/ServiceResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Create new Services
      tags:
        - Service
    put:
      description: Update Services in Taxnexus
      operationId: putServices
      parameters:
        - $ref: "#/parameters/ServiceRequest"
      responses:
        "200":
          $ref: "#/responses/ServiceResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update Services
      tags:
        - Service
  /services/observable:
    get:
      description: Returns a Service retrieval in a observable array
      operationId: getServicesObservable
      responses:
        "200":
          $ref: "#/responses/ServiceObservableResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get Services in an observable array
      tags:
        - Service
    options:
      description: CORS support
      operationId: serviceOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
  "/services/{serviceIdPath}":
    get:
      description:
        Return a single Service object from datastore as a Singleton
      operationId: getService
      parameters:
        - $ref: "#/parameters/serviceIdPath"
      responses:
        "200":
          $ref: "#/responses/ServiceSingletonResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a single Service object
      tags:
        - Service
  /templates:
    get:
      description: Return a list of Templates from the datastore
      operationId: getTemplates
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/templateIdQuery"
        - $ref: "#/parameters/isMasterQuery"
        - $ref: "#/parameters/objectTypeQuery"
      responses:
        "200":
          $ref: "#/responses/TemplateResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a list Templates
      tags:
        - Template
    options:
      description: CORS support
      operationId: templatesOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Create new Templates
      operationId: postTemplates
      parameters:
        - $ref: "#/parameters/TemplateRequest"
      responses:
        "200":
          $ref: "#/responses/TemplateResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Create new Templates
      tags:
        - Template
  /templates/observable:
    get:
      description: Returns a Template retrieval in a observable array
      operationId: getTemplatesObservable
      responses:
        "200":
          $ref: "#/responses/TemplateObservableResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get Templates in an observable array
      tags:
        - Template
    options:
      description: CORS support
      operationId: templateOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
  "/templates/{templateIdPath}":
    get:
      description:
        Return a single Template object from datastore as a Singleton
      operationId: getTemplate
      parameters:
        - $ref: "#/parameters/templateIdPath"
      responses:
        "200":
          $ref: "#/responses/TemplateSingletonResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a single Template object
      tags:
        - Template
  /tenants:
    get:
      description: Return a list of Tenant records from the datastore
      operationId: getTenants
      parameters:
        - $ref: "#/parameters/taxnexusAccountQuery"
        - $ref: "#/parameters/tenantIdQuery"
        - $ref: "#/parameters/companyIdQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/TenantResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a list Tenants
      tags:
        - Tenant
    options:
      description: CORS support
      operationId: tenantsOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Create Tenants in Taxnexus
      operationId: postTenants
      parameters:
        - $ref: "#/parameters/tenantRequest"
      responses:
        "200":
          $ref: "#/responses/TenantResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Create new Tenants
      tags:
        - Tenant
    put:
      description: Update Tenant in Taxnexus
      operationId: putTenants
      parameters:
        - $ref: "#/parameters/tenantRequest"
      responses:
        "200":
          $ref: "#/responses/TenantResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update Tenants
      tags:
        - Tenant
  /tenants/observable:
    get:
      description: Returns a Tenant retrieval in a observable array
      operationId: getTenantsObservable
      responses:
        "200":
          $ref: "#/responses/TenantObservableResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get Tenants in an observable array
      tags:
        - Tenant
    options:
      description: CORS support
      operationId: tenantOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
  "/tenants/{tenantIdPath}":
    get:
      description:
        Return a single Tenant object from datastore as a Singleton
      operationId: getTenant
      parameters:
        - $ref: "#/parameters/tenantIdPath"
      responses:
        "200":
          $ref: "#/responses/TenantSingletonResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a single Tenant object
      tags:
        - Tenant
  /users:
    get:
      description: Return a list of User records from the datastore
      operationId: getUsers
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/accountIdQuery"
        - $ref: "#/parameters/contactIdQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/emailQuery"
        - $ref: "#/parameters/userIdQuery"
        - $ref: "#/parameters/usernameQuery"
      responses:
        "200":
          $ref: "#/responses/UserResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a list Users
      tags:
        - User
    options:
      description: CORS support
      operationId: usersOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Create new Users
      operationId: postUsers
      parameters:
        - $ref: "#/parameters/UserRequest"
      responses:
        "200":
          $ref: "#/responses/UserResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Create new Users
      tags:
        - User
    put:
      description: Update existing users
      operationId: putUsers
      parameters:
        - $ref: "#/parameters/UserRequest"
      responses:
        "200":
          $ref: "#/responses/UserResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update existing users
      tags:
        - User
  /users/observable:
    get:
      description: Returns a User retrieval in a observable array
      operationId: getUsersObservable
      responses:
        "200":
          $ref: "#/responses/UserObservableResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get Users in an observable array
      tags:
        - User
    options:
      description: CORS support
      operationId: userOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
  "/users/{userIdPath}":
    get:
      description:
        Return a single User object from datastore as a Singleton
      operationId: getUser
      parameters:
        - $ref: "#/parameters/userIdPath"
      responses:
        "200":
          $ref: "#/responses/UserSingletonResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a single User object
      tags:
        - User
definitions:
  Address:
    properties:
      City:
        description: City
        type: string
      Country:
        description: Country full name
        type: string
      CountryCode:
        description: Country Code
        type: string
      PostalCode:
        description: Postal Code
        type: string
      State:
        description: State full name
        type: string
      StateCode:
        description: State Code
        type: string
      Street:
        description: Street number and name
        type: string
    type: object
  Cluster:
    properties:
      CreatedByID:
        description: Created By
        type: string
      CreatedDate:
        description: Created Date
        type: string
      Description:
        description: Description
        type: string
      Environment:
        description: Environment
        type: string
      Gateway:
        description: Gateway
        type: string
      ID:
        description: Taxnexus Record Id
        type: string
      IPAddress:
        description: IP Address
        type: string
      LastModifiedByID:
        description: Last Modified By
        type: string
      LastModifiedDate:
        description: Last Modified Date
        type: string
      Name:
        description: Cluster Name
        type: string
      OwnerID:
        description: Owner
        type: string
      Ref:
        description: External Reference
        type: string
      Status:
        description: Status
        type: string
      Subnet:
        description: Subnet
        type: string
      Type:
        description: Type
        type: string
      TenantID:
        description: The ID of the tenant who owns this Database
        type: string
      Zone:
        description: Zone
        type: string
    type: object
  ClusterRequest:
    properties:
      Data:
        items:
          $ref: "#/definitions/Cluster"
        type: array
    type: object
  ClusterResponse:
    description: An array of cluster objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Cluster"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Database:
    description: A Database provisioned and owned by a Tenant
    properties:
      Active:
        description: Is this database active?
        type: boolean
      ClusterID:
        description:
          The ID of the Cluster in which this database is deployed
        type: string
      CreatedByID:
        description: Created By
        type: string
      CreatedDate:
        description: Created Date
        type: string
      DSN:
        description: Database connection string
        type: string
      DatabaseName:
        description: The name of the physical database in the cluster
        type: string
      ID:
        description: Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By
        type: string
      LastModifiedDate:
        description: Last Modifed Date
        type: string
      Microservices:
        description:
          List of Taxnexus microservices implemented by this Database
        type: string
      Status:
        description: The current status of this Tenant
        type: string
      TenantID:
        description: The ID of the tenant who owns this Database
        type: string
      Type:
        description: "The type of Database (mysql, etc)"
        type: string
    type: object
  DatabaseRequest:
    description: An array of Database objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Database"
        type: array
    type: object
  DatabaseResponse:
    description: An array of Database objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Database"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  DeleteResponse:
    properties:
      Data:
        items:
          $ref: "#/definitions/Message"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Error:
    properties:
      code:
        format: int64
        type: integer
      fields:
        type: string
      message:
        type: string
    type: object
  Ingest:
    description: A record of the Ingest of information into Taxnexus
    properties:
      AccountID:
        description: Account ID
        type: string
      Amount:
        description: Rollup Tax Amount
        format: double
        type: number
      BackendID:
        description: Backend ID
        type: string
      CompanyID:
        description: Company ID
        type: string
      CreatedByID:
        description: Taxnexus User ID
        type: string
      CreatedDate:
        description: Date of Job Creation
        type: string
      Description:
        description: Ingest Description
        type: string
      EndDate:
        description: End Date
        type: string
      Filename:
        description: Filename
        type: string
      ID:
        description: Record Id
        type: string
      IngestDate:
        description: Ingest Date
        type: string
      IngestFailureReason:
        description: Ingest Failure Reason
        type: string
      IngestType:
        description: Ingest Type
        enum:
          - fabric
          - internal
          - suretax
          - taxnexus-api
        type: string
      InvoiceCount:
        description: Invoice Count
        format: int64
        type: number
      JobID:
        description: Job ID
        type: string
      LastModifiedByID:
        description: Taxnexus User ID
        type: string
      LastModifiedDate:
        description: Last Modified Date
        type: string
      MetrcLastModifiedEnd:
        type: string
      MetrcLastModifiedStart:
        type: string
      MetrcLicense:
        description: License
        type: string
      MetrcSalesreceiptID:
        format: int64
        type: number
      MetrcState:
        description: State Code
        type: string
      ObjectType:
        description: Ingest Object Type
        enum:
          - account
          - cash-receipt
          - contact
          - invoice
          - order
          - po
          - quote
        type: string
      POCount:
        description: PO Count
        format: int64
        type: number
      ParentFK:
        description: Parent Foreign Key
        type: string
      PeriodID:
        description: Period ID
        type: string
      PostFalureReason:
        description: Post Failure Reason
        type: string
      RatingEngineID:
        description: Rating Engine ID
        type: string
      Ref:
        description: Source System Reference
        type: string
      RevenueBase:
        description: Rollup Revenue Base
        format: double
        type: number
      RevenueNet:
        description: Rollup Revenue Net
        format: double
        type: number
      RevenueNotTaxable:
        description: Rollup Revenue Not Taxable
        format: double
        type: number
      SagaID:
        description:
          The Saga ID used to link log entries and transactions
        type: string
      SagaType:
        description: The type of Saga transaction being performed
        type: string
      Source:
        description: The source system that generated this job
        enum:
          - api
          - fabric
          - taxnexus
          - telnexus
        type: string
      StartDate:
        description: Start Date
        type: string
      Status:
        description: Ingest Status
        enum:
          - failed_accounting
          - failed_existing
          - failed_glpost
          - failed_invoice
          - failed_po
          - ingested
          - new
          - posted
          - queued
          - rated
          - rejected
        type: string
      Tax:
        description: Rollup Tax
        type: number
      TaxOnTax:
        description: Rollup Tax On Tax
        type: number
      TaxTransactionCount:
        description: Tax Transaction Count
        format: int64
        type: number
      TemplateID:
        description: Template
        type: string
      TenantID:
        description: ID of the Tenant that owns this Object Instance
        type: string
      UnitBase:
        description: Rollup Unit Base
        format: int64
        type: number
    required:
      - AccountID
      - ObjectType
    type: object
  IngestRequest:
    properties:
      Data:
        items:
          $ref: "#/definitions/Ingest"
        type: array
    type: object
  IngestResponse:
    description: An array of Print-Ready ingest Objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Ingest"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Job:
    properties:
      AccountID:
        description: Taxnexus Account Id
        type: string
      BackendID:
        description: Taxnexus Backend ID
        type: string
      CompanyID:
        description: Taxnexus Company ID
        type: string
      CoordinateID:
        description: Taxnexus Coordinate ID
        type: string
      CreatedByID:
        description: Taxnexus User ID
        type: string
      CreatedDate:
        description: Date of Job Creation
        type: string
      Duration:
        description:
          The amount of time after the Start Time to perform one or more
          jobs
        enum:
          - day
          - document
          - hour
          - minute
          - month
          - quarter
          - second
          - week
          - year
        type: string
      EndDate:
        description: End Date/Time
        type: string
      ErrorReason:
        description: Error Reason
        type: string
      ID:
        description: Taxnexus Record Id of the Job record
        type: string
      Interval:
        description:
          The time interval by which multiple jobs are executed within
          the Duration
        enum:
          - day
          - each
          - hour
          - minute
          - month
          - quarter
          - second
          - week
          - year
        type: string
      JobDate:
        description: Job Date
        type: string
      LastModifiedByID:
        description: Last Modified By
        type: string
      LastModifiedDate:
        description: Last Modified Date
        type: string
      Month:
        description: The Month Number of the job
        format: int64
        type: number
      NextJobID:
        description: Next Job
        type: string
      OwnerID:
        description: The user ID that owns this job
        type: string
      Parameters:
        description: The parameters needed to process the job
        type: string
      PeriodID:
        description: Period
        type: string
      Quarter:
        description: The Month Number of the job
        format: int64
        type: number
      RatingEngineID:
        description: Rating Engine
        type: string
      Ref:
        description: External Reference
        type: string
      Reschedule:
        description: Reschedule?
        type: boolean
      RescheduleInterval:
        description: Reschedule Interval
        format: int64
        type: number
      SagaID:
        description:
          The Saga ID used to link log entries and transactions
        type: string
      SagaType:
        description: The type of Saga transaction being performed
        type: string
      Semiannual:
        description: The Month Number of the job
        format: int64
        type: number
      Source:
        description: The source system that generated this job
        enum:
          - api
          - fabric
          - taxnexus
          - telnexus
        type: string
      StartDate:
        description: Start Date/Time
        type: string
      Status:
        description: Status
        enum:
          - active
          - complete
          - error
          - new
          - queued
        type: string
      Target:
        description: The target system that executes this job
        enum:
          - api
          - fabric
          - taxnexus
          - telnexus
        type: string
      TenantID:
        description: ID of the Tenant that owns this Object Instance
        type: string
      Year:
        description: The Month Number of the job
        format: int64
        type: number
    required:
      - AccountID
      - Duration
      - SagaType
    type: object
  JobRequest:
    properties:
      Data:
        items:
          $ref: "#/definitions/Job"
        type: array
    type: object
  JobResponse:
    description: An array of Job Objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Job"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Message:
    properties:
      Message:
        type: string
      Ref:
        type: string
      Status:
        type: integer
    type: object
  Pagination:
    properties:
      Limit:
        format: int64
        type: integer
      POffset:
        format: int64
        type: integer
      PageSize:
        format: int64
        type: integer
      SetSize:
        format: int64
        type: integer
    type: object
  RequestMeta:
    properties:
      TaxnexusAccount:
        description: Taxnexus Account Number of the Reseller or OEM
        type: string
    required:
      - TaxnexusAccount
    type: object
  ResponseMeta:
    properties:
      Contact:
        description: Microservice Contact Info
        type: string
      Copyright:
        description: Copyright Info
        type: string
      License:
        description: License Information and Restrictions
        type: string
      OperationID:
        description: Operation ID
        type: string
      Pagination:
        $ref: "#/definitions/Pagination"
      RequestIP:
        description: Request IP Address
        type: string
      RequestType:
        description: Request Type
        type: string
      RequestURL:
        description: Request URL
        type: string
      ServerInfo:
        description: Data Server Info
        type: string
      ServerResponseTime:
        description: Data Server Response Time (ms)
        type: string
      ServerTimestamp:
        description: Backend Server Timestamp
        type: string
      TaxnexusAccount:
        description:
          Taxnexus Account Number used for recording transactions
        type: string
    type: object
  Role:
    description: A functional role within a Tenant
    properties:
      Auth0RoleID:
        description: The corresponding Auth0 Role
        type: string
      CreatedByID:
        description: Created By
        type: string
      CreatedDate:
        description: Created Date
        type: string
      Description:
        description: Role Description
        type: string
      ID:
        description: Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By
        type: string
      LastModifiedDate:
        description: Last Modifed Date
        type: string
      RoleName:
        description: The name of this role
        type: string
      TenantID:
        description: The ID of the Tenant that owns this Role
        type: string
    type: object
  RoleRequest:
    description: An array of Role objects
    properties:
      Date:
        items:
          $ref: "#/definitions/Role"
        type: array
    type: object
  RoleResponse:
    description: An array of Role objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Role"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Service:
    properties:
      Active:
        description: Active?
        type: boolean
      ClusterID:
        description: Cluster
        type: string
      ClusterIP:
        description: Cluster IP
        type: string
      ClusterURL:
        description: Cluster URL
        type: string
      CreatedByID:
        description: Created By
        type: string
      CreatedDate:
        description: Created Date
        type: string
      Environment:
        description: Environment
        type: string
      ExternalURL:
        description: External URL
        type: string
      GELFAddress:
        description: GELF Address
        type: string
      ID:
        description: Taxnexus Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By
        type: string
      LastModifiedDate:
        description: Last Modified Date
        type: string
      NetworkAlias:
        description: Network Alias
        type: string
      OpenAPIVersion:
        description: OpenAPI Version
        type: string
      OwnerID:
        description: Owner
        type: string
      PortExternal:
        description: Port - External
        type: string
      PortTest:
        description: Port - Test
        type: string
      ProxyType:
        description: Proxy Type
        type: string
      Replicas:
        description: Replicas
        format: int64
        type: number
      RepoURL:
        description: Repo URL
        type: string
      ServiceName:
        description: Service Name
        type: string
      TenantID:
        description: The ID of the tenant who owns this Database
        type: string
      Version:
        description: Version
        type: string
    type: object
  ServiceRequest:
    properties:
      Data:
        items:
          $ref: "#/definitions/Service"
        type: array
    type: object
  ServiceResponse:
    description: An array of Service Objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Service"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Template:
    properties:
      CompanyID:
        description: Company
        type: string
      CreatedByID:
        type: string
      CreatedDate:
        type: string
      Description:
        description: Description
        type: string
      HTML:
        description: HTML Body
        format: byte
        type: string
      ID:
        description: Taxnexus Record Id
        type: string
      IsActive:
        description: Active?
        type: boolean
      IsMaster:
        description: Master Template?
        type: boolean
      LastModifiedByID:
        type: string
      LastModifiedDate:
        type: string
      Name:
        description: Template Name
        type: string
      ObjectType:
        description: Object
        type: string
      RecordTypeName:
        description: Record Type Name
        type: string
      TenantID:
        description: Tenant that owns this object instance
        type: string
      Type:
        description: Type
        type: string
      URL:
        description: URL
        type: string
    type: object
  TemplateRequest:
    description: An array of Templates
    properties:
      Data:
        items:
          $ref: "#/definitions/Template"
        type: array
    type: object
  TemplateResponse:
    description: An array of Templates
    properties:
      Data:
        items:
          $ref: "#/definitions/Template"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Tenant:
    description: Taxnexus Account Tenant
    properties:
      AccountID:
        description: The Account that owns this Tenant
        type: string
      Active:
        description: Is this Tenant currently active?
        type: boolean
      CreatedByID:
        description: Created By
        type: string
      CreatedDate:
        description: Created Date
        type: string
      Databases:
        items:
          $ref: "#/definitions/Database"
        type: array
      ID:
        description: Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By
        type: string
      LastModifiedDate:
        description: Last Modifed Date
        type: string
      Roles:
        items:
          $ref: "#/definitions/Role"
        type: array
      Status:
        description: The current status of this Tenant
        type: string
      TenantName:
        description: Name of the Tenant Resource
        type: string
      TenantUsers:
        items:
          $ref: "#/definitions/TenantUser"
        type: array
      Type:
        description: The type of Tenant
        type: string
      Version:
        description:
          The version number of the Tenant Onboarding system used to
          create this tenant
        type: string
    type: object
  TenantRequest:
    description: An array of Tenant objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Tenant"
        type: array
    type: object
  TenantResponse:
    description: An array of Tenant objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Tenant"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  TenantUser:
    description: Relationship object that connects users to a tenant
    properties:
      AccessLevel:
        description: The makeTenantUser access level for this User
        type: string
      AccountID:
        description: Account ID
        type: string
      Auth0UserID:
        description: Auth0 User ID
        type: string
      CompanyName:
        description: Account Name
        type: string
      ContactID:
        description: Contact ID
        type: string
      TaxnexusAccount:
        description: Taxnexus Account
        type: string
      TenantActive:
        description: Tenant active?
        type: boolean
      TenantID:
        description: The Tenant ID
        type: string
      TenantName:
        description: Tenant Name
        type: string
      TenantStatus:
        description: Tenant Status
        type: string
      TenantType:
        description: Tenant type
        type: string
      TenantVersion:
        description: Tenant Version
        type: string
      UserEmail:
        description: User Email Address
        type: string
      UserFullName:
        description: User Full Name
        type: string
      UserID:
        description: The User ID
        type: string
      Username:
        description: Username
        type: string
    type: object
  User:
    properties:
      APIKey:
        description: API Key
        type: string
      AboutMe:
        description: About Me
        type: string
      AccountID:
        description: Account ID
        type: string
      Address:
        $ref: "#/definitions/Address"
      Alias:
        description: Alias
        type: string
      Auth0UserID:
        description: Auth0 User Id
        type: string
      CommunityNickname:
        description: Nickname
        type: string
      CompanyName:
        description: Company Name
        type: string
      ContactID:
        description: Contact
        type: string
      CreatedByID:
        description: Created User ID
        type: string
      CreatedDate:
        description: Date Created
        type: string
      DelegatedApproverID:
        description: Delegated Approver
        type: string
      Department:
        description: Department
        type: string
      Division:
        description: Division
        type: string
      Email:
        description: Email address
        type: string
      EmployeeNumber:
        description: Employee Number
        type: string
      EndOfDay:
        description: Time day ends
        type: string
      Environment:
        description: Environment
        type: string
      Extension:
        description: Extension
        type: string
      FabricAPIKey:
        description: Fabric API Key
        type: string
      Fax:
        description: Fax
        type: string
      FirstName:
        description: The first name
        type: string
      ForecastEnabled:
        description: Allow Forecasting
        type: boolean
      FullPhotoURL:
        description: Full Photo URL
        type: string
      ID:
        description: Taxnexus ID
        type: string
      IsActive:
        description: Active
        type: boolean
      IsPortalEnabled:
        description: Is the user enabled for Communities?
        type: boolean
      IsProphilePhotoActive:
        description: Has Profile Photo
        type: boolean
      IsSystemControlled:
        type: boolean
      LastIP:
        description: IP address of last login
        type: string
      LastLogin:
        description: Last login time
        type: string
      LastModifiedByID:
        description: Last Modified User ID
        type: string
      LastModifiedDate:
        description: Last Modified Date
        type: string
      LastName:
        description: The Last Name
        type: string
      LoginCount:
        description: Number of times user has logged in
        format: int64
        type: number
      ManagerID:
        description: Manager
        type: string
      MobilePhone:
        description: Mobile
        type: string
      Name:
        description: Name
        type: string
      OutOfOfficeMessage:
        description: Out of office message
        type: string
      Phone:
        description: Phone
        type: string
      PortalRole:
        description: Portal Role Level
        type: string
      ProfileID:
        description: Profile
        type: string
      ReceivesAdminEmails:
        description: Info Emails
        type: boolean
      ReceivesAdminInfoEmails:
        description: Admin Info Emails
        type: boolean
      SenderEmail:
        description: Email Sender Address
        type: string
      SenderName:
        description: Email Sender Name
        type: string
      Signature:
        description: Email Signature
        type: string
      SmallPhotoURL:
        description: Small Photo URL
        type: string
      StartOfDay:
        description: The time day starts
        type: string
      TaxnexusAccount:
        description: Taxnexus Account
        type: string
      TenantID:
        description: Tenant ID associated with this user
        type: string
      TenantUsers:
        items:
          $ref: "#/definitions/TenantUser"
        type: array
      TimeZone:
        description: Time Zone
        type: string
      Title:
        description: Title
        type: string
      UserRoleID:
        description: Role
        type: string
      UserRoles:
        items:
          $ref: "#/definitions/UserRole"
        type: array
      UserType:
        description: User Type
        type: string
      Username:
        description: Username
        type: string
    type: object
  UserRequest:
    properties:
      Data:
        items:
          $ref: "#/definitions/User"
        type: array
    type: object
  UserResponse:
    description: An array of Print-Ready ingest Objects
    properties:
      Data:
        items:
          $ref: "#/definitions/User"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  UserRole:
    description: Relationship object that connects user to a role
    properties:
      AccountID:
        description: Account Id
        type: string
      Auth0RoleID:
        description: Linked role ID
        type: string
      Auth0UserID:
        description: Auth0 User ID
        type: string
      CompanyName:
        description: Company Name
        type: string
      ContactID:
        description: Contact ID
        type: string
      RoleDescription:
        description: Role description
        type: string
      RoleID:
        description: The Role ID
        type: string
      RoleName:
        description: Role Name
        type: string
      TaxnexusAccount:
        description: Taxnexus Account Number
        type: string
      UserEmail:
        description: User Email Address
        type: string
      UserFullName:
        description: User Full Name
        type: string
      UserID:
        description: The User ID
        type: string
      Username:
        description: Username
        type: string
    type: object
