swagger: "2.0"
info:
  version: 0.2.0
  title: "sf-gate"
  description: "Salesforce Gateway Microservice"
  termsOfService: "https://salesforcedevops.net/terms/"
  contact:
    email: "vern@salesforcedevops.net"
  license:
    name: "Proprietary - Copyright (c) 2018-2024 by Vernon Keenan"
securityDefinitions:
  ApiKeyAuth:
    type: "apiKey"
    in: "header"
    name: "X-API-Key"
schemes:
  - "http"
basePath: "/v1"
host: "sf-gate.vernonkeenan.com:8080"
consumes:
  - "application/json"
produces:
  - "application/json"
parameters:
  accountIdQuery:
    description: Record Id of an Account
    in: query
    name: accountId
    required: false
    type: string
  idQuery:
    description: Unique Record ID
    in: query
    name: id
    required: false
    type: string
  industryCompanyIdQuery:
    description: Record Id of an IndustryCompany
    in: query
    name: industryCompanyId
    required: false
    type: string
  accountRequest:
    description: A request with an array of Account Objects
    in: body
    name: accountRequest
    required: true
    schema:
      $ref: "#/definitions/AccountRequest"
  CourseRequest:
    description: An array of new Course records
    in: body
    name: courseRequest
    required: true
    schema:
      $ref: "#/definitions/CourseRequest"
  CourseSectionRequest:
    description: An array of new CourseSection records
    in: body
    name: coursesectionRequest
    required: true
    schema:
      $ref: "#/definitions/CourseSectionRequest"
  industryCompanyRequest:
    description: A request with an array of IndustryCompany Objects
    in: body
    name: industryCompanyRequest
    required: true
    schema:
      $ref: "#/definitions/IndustryCompanyRequest"
  topicRequest:
    description: A request with an array of Topic Objects
    in: body
    name: topicRequest
    required: true
    schema:
      $ref: "#/definitions/TopicRequest"
  activeQuery:
    description: Only retrieve active records?
    in: query
    name: active
    required: false
    type: boolean
  apiKeyQuery:
    description: Id of the User to be retrieved
    in: query
    name: apikey
    required: false
    type: string
  assetIdQuery:
    description: Record Id of an Asset
    in: query
    name: assetId
    required: false
    type: string
  assetRequest:
    description: An array of new Asset records
    in: body
    name: assetRequest
    required: true
    schema:
      $ref: "#/definitions/AssetRequest"
  companyServiceIdQuery:
    description: CompanyService record ID
    in: query
    name: companyServiceId
    required: false
    type: string
  companyServiceRequest:
    description: An array of new CompanyService records
    in: body
    name: companyServiceRequest
    required: true
    schema:
      $ref: "#/definitions/CompanyServiceRequest"
  industryServiceIdQuery:
    description: IndustryService record ID
    in: query
    name: industryServiceId
    required: false
    type: string
  industryServiceRequest:
    description: An array of new IndustryService records
    in: body
    name: industryServiceRequest
    required: true
    schema:
      $ref: "#/definitions/IndustryServiceRequest"
  clusterIdQuery:
    description: Record Id of a Cluster
    in: query
    name: clusterId
    required: false
    type: string
  CourseLessonRequest:
    description: An array of new CourseLesson records
    in: body
    name: courselessonRequest
    required: true
    schema:
      $ref: "#/definitions/CourseLessonRequest"
  clusterRequest:
    description: An array of Cluster records
    in: body
    name: ClusterRequest
    required: true
    schema:
      $ref: "#/definitions/ClusterRequest"
  companyProductIdQuery:
    description: CompanyProduct record ID
    in: query
    name: companyProductId
    required: false
    type: string
  companyProductRequest:
    description: An array of new Contact records
    in: body
    name: contactRequest
    required: true
    schema:
      $ref: "#/definitions/CompanyProductRequest"
  contactIdQuery:
    description: Record Id of a Contact
    in: query
    name: contactId
    required: false
    type: string
  contactRequest:
    description: An array of new Contact records
    in: body
    name: contactRequest
    required: true
    schema:
      $ref: "#/definitions/ContactRequest"
  documentRequest:
    description: An array of new Document records
    in: body
    name: documentRequest
    required: true
    schema:
      $ref: "#/definitions/DocumentRequest"
  contractIdQuery:
    description: Contact record ID
    in: query
    name: contractId
    required: false
    type: string
  contractRequest:
    description: An array of new Contract records
    in: body
    name: contractsRequest
    required: true
    schema:
      $ref: "#/definitions/ContractRequest"
  databaseIdQuery:
    description: Record Id of a Database
    in: query
    name: databaseId
    required: false
    type: string
  databaseRequest:
    description: An array of Database records
    in: body
    name: DatabaseRequest
    required: true
    schema:
      $ref: "#/definitions/DatabaseRequest"
  emailQuery:
    description: Email address used for identity lookup
    in: query
    name: email
    required: false
    type: string
  EventRequest:
    description: An array of new Event records
    in: body
    name: eventRequest
    required: true
    schema:
      $ref: "#/definitions/EventRequest"
  EventCategoryRequest:
    description: An array of new Event records
    in: body
    name: eventCategoryRequest
    required: true
    schema:
      $ref: "#/definitions/EventCategoryRequest"
  factorIdQuery:
    description: Record Id of a Factor
    in: query
    name: factorId
    required: false
    type: string
  factorRequest:
    description: A request with an array of Factor Objects
    in: body
    name: factorRequest
    required: true
    schema:
      $ref: "#/definitions/FactorRequest"
  financialStatementIdQuery:
    description: Record Id of a FinancialStatement
    in: query
    name: financialStatementId
    required: false
    type: string
  financialStatementRequest:
    description: A request with an array of FinancialStatement Objects
    in: body
    name: financialStatementRequest
    required: true
    schema:
      $ref: "#/definitions/FinancialStatement"
  industryIdQuery:
    description: Industry record ID
    in: query
    name: industryId
    required: false
    type: string
  industryProductIdQuery:
    description: IndustryProduct record ID
    in: query
    name: industryProductId
    required: false
    type: string
  industryProductRequest:
    description: An array of new Industry records
    in: body
    name: industryRequest
    required: true
    schema:
      $ref: "#/definitions/IndustryProductRequest"
  industryRequest:
    description: An array of new Industry records
    in: body
    name: industryRequest
    required: true
    schema:
      $ref: "#/definitions/IndustryRequest"
  limitQuery:
    description: How many objects to return at one time
    format: int64
    in: query
    name: limit
    required: false
    type: integer
  nameQuery:
    description: The Name of this Object
    in: query
    name: name
    required: false
    type: string
  newUserRequest:
    description: A single new user record
    in: body
    name: UserRequest
    required: true
    schema:
      $ref: "#/definitions/UserRequest"
  observationIdQuery:
    description: Record Id of an Observation
    in: query
    name: observationId
    required: false
    type: string
  observationRequest:
    description: A request with an array of Observation Objects
    in: body
    name: accountRequest
    required: true
    schema:
      $ref: "#/definitions/ObservationRequest"
  offsetQuery:
    description: How many objects to skip?
    format: int64
    in: query
    name: offset
    required: false
    type: integer
  roleIdQuery:
    description: Id of the Role to be retrieved
    in: query
    name: roleId
    required: false
    type: string
  PromptRequest:
    description: An array of new Prompt records
    in: body
    name: promptRequest
    required: true
    schema:
      $ref: "#/definitions/PromptRequest"
  PromptCategoryRequest:
    description: An array of PromptCategory objects
    name: promptCategoryRequest
    required: true
    in: body
    schema:
      $ref: "#/definitions/PromptCategoryRequest"
  PromptAnswerRequest:
    description: An array of PromptAnswer objects
    name: promptAnswerRequest
    required: true
    in: body
    schema:
      $ref: "#/definitions/PromptAnswerRequest"
  PromptTagRequest:
    description: An array of PromptTag objects
    name: promptTagRequest
    required: true
    in: body
    schema:
      $ref: "#/definitions/PromptTagRequest"
  ResearchProjectCompanyRequest:
    description: An array of new ResearchProjectCompany records
    in: body
    name: researchProjectCompanyRequest
    required: true
    schema:
      $ref: "#/definitions/ResearchProjectCompanyRequest"
  ResearchProjectDocumentRequest:
    description: An array of new ResearchProjectDocument records
    in: body
    name: researchProjectDocumentRequest
    required: true
    schema:
      $ref: "#/definitions/ResearchProjectDocumentRequest"
  researchProjectProductRequest:
    description: An array of new ResearchProjectProduct records
    in: body
    name: researchProjectProductRequest
    required: true
    schema:
      $ref: "#/definitions/ResearchProjectProductRequest"
  ResearchProjectServiceRequest:
    description: An array of new ResearchProjectService records
    in: body
    name: researchProjectServiceRequest
    required: true
    schema:
      $ref: "#/definitions/ResearchProjectServiceRequest"
  ResearchProjectRequest:
    description: An array of new ResearchProject records
    in: body
    name: researchProjectRequest
    required: true
    schema:
      $ref: "#/definitions/ResearchProjectRequest"
  ResearchProjectTopicRequest:
    description: An array of new ResearchProjectTopic records
    in: body
    name: researchProjectTopicRequest
    required: true
    schema:
      $ref: "#/definitions/ResearchProjectTopicRequest"
  templateIdQuery:
    description: Record Id of a Template
    in: query
    name: templateId
    required: false
    type: string
  tenantIdQuery:
    description: Record Id of a Tenant
    in: query
    name: tenantId
    required: false
    type: string
  tenantRequest:
    description: An array of Tenant records
    in: body
    name: CTenantRequest
    required: true
    schema:
      $ref: "#/definitions/TenantRequest"
  toipicRequest:
    description: A request with an array of Topic Objects
    in: body
    name: topicRequest
    required: true
    schema:
      $ref: "#/definitions/TopicRequest"
  topicIdQuery:
    description: Record Id of a Topic
    in: query
    name: topicId
    required: false
    type: string
  userIdQuery:
    description: Id of the User to be retrieved
    in: query
    name: userId
    required: false
    type: string
responses:
  AccessForbidden:
    description: Access forbidden, account lacks access
    schema:
      $ref: "#/definitions/Error"
  AccountResponse:
    description: Response with Account objects
    schema:
      $ref: "#/definitions/AccountResponse"
  EventResponse:
    description: Event Response Object
    schema:
      $ref: "#/definitions/EventResponse"
  EventCategoryResponse:
    description: Event Response Object
    schema:
      $ref: "#/definitions/EventCategoryResponse"
  IndustryCompanyResponse:
    description: Response with IndustryCompany objects
    schema:
      $ref: "#/definitions/IndustryCompanyResponse"
  AssetResponse:
    description: Response with Asset objects
    schema:
      $ref: "#/definitions/AssetResponse"
  ClusterResponse:
    description: Response with Cluster objects
    schema:
      $ref: "#/definitions/ClusterResponse"
  CompanyProductResponse:
    description: Response with an array of CompanyProduct objects
    schema:
      $ref: "#/definitions/CompanyProductResponse"
  CompanyServiceResponse:
    description: Response with CompanyService objects
    schema:
      $ref: "#/definitions/CompanyServiceResponse"
  ContactResponse:
    description: Response with Contact objects
    schema:
      $ref: "#/definitions/ContactResponse"
  ContractResponse:
    description: Response with an array of Contract objects
    schema:
      $ref: "#/definitions/ContractResponse"
  DatabaseResponse:
    description: Response with Database objects
    schema:
      $ref: "#/definitions/DatabaseResponse"
  DocumentResponse:
    description: Response with Document objects
    schema:
      $ref: "#/definitions/DocumentResponse"
  DeleteResponse:
    description: Response with Message Objects with Delete Status
    schema:
      $ref: "#/definitions/DeleteResponse"
  CourseResponse:
    description: Course Response Object
    schema:
      $ref: "#/definitions/CourseResponse"
  FactorResponse:
    description: Response with Factor objects
    schema:
      $ref: "#/definitions/FactorResponse"
  FavoriteResponse:
    description: Favorite Response Object
    schema:
      $ref: "#/definitions/FavoriteResponse"
  FinancialStatementResponse:
    description: Response with FinancialStatement objects
    schema:
      $ref: "#/definitions/FinancialStatementResponse"
  IndustryProductResponse:
    description: Response with Industry objects
    schema:
      $ref: "#/definitions/IndustryProductResponse"
  CourseSectionResponse:
    description: CourseSection Response Object
    schema:
      $ref: "#/definitions/CourseSectionResponse"
  CourseLessonResponse:
    description: CourseLesson Response Object
    schema:
      $ref: "#/definitions/CourseLessonResponse"
  IndustryResponse:
    description: Response with Industry objects
    schema:
      $ref: "#/definitions/IndustryResponse"
  IndustryServiceResponse:
    description: Response with IndustryService objects
    schema:
      $ref: "#/definitions/IndustryServiceResponse"
  InvalidDataError:
    description: Invalid data was sent
    schema:
      $ref: "#/definitions/InvalidError"
  NotFound:
    description: Resource was not found
    schema:
      $ref: "#/definitions/Error"
  PromptResponse:
    description: Response with Prompt objects
    schema:
      $ref: "#/definitions/PromptResponse"
  PromptCategoryResponse:
    description: Response with PromptCategory objects
    schema:
      $ref: "#/definitions/PromptCategoryResponse"
  PromptAnswerResponse:
    description: Response with PromptAnswer objects
    schema:
      $ref: "#/definitions/PromptAnswerResponse"
  PromptTagResponse:
    description: Response with PromptTag objects
    schema:
      $ref: "#/definitions/PromptTagResponse"
  ObservationResponse:
    description: Response with Observation objects
    schema:
      $ref: "#/definitions/ObservationResponse"
  ResearchProjectCompanyResponse:
    description: ResearchProjectCompany Response Object
    schema:
      $ref: "#/definitions/ResearchProjectCompanyResponse"
  ResearchProjectDocumentResponse:
    description: ResearchProjectDocument Response Object
    schema:
      $ref: "#/definitions/ResearchProjectDocumentResponse"
  ResearchProjectProductResponse:
    description: ResearchProjectProduct Response Object
    schema:
      $ref: "#/definitions/ResearchProjectProductResponse"
  ResearchProjectServiceResponse:
    description: ResearchProjectService Response Object
    schema:
      $ref: "#/definitions/ResearchProjectServiceResponse"
  ResearchProjectResponse:
    description: ResearchProject Response Object
    schema:
      $ref: "#/definitions/ResearchProjectResponse"
  ResearchProjectTopicResponse:
    description: ResearchProjectTopic Response Object
    schema:
      $ref: "#/definitions/ResearchProjectTopicResponse"
  RoleResponse:
    description: Response with Role objects
    schema:
      $ref: "#/definitions/RoleResponse"
  SalesforcePostResponse:
    description: Response from Salesforce
    schema:
      $ref: "#/definitions/SalesforcePostResponse"
  ServerError:
    description: Server Internal Error
    schema:
      $ref: "#/definitions/Error"
  TemplateResponse:
    description: Response with Template objects
    schema:
      $ref: "#/definitions/TemplateResponse"
  TenantResponse:
    description: Response with Tenant objects
    schema:
      $ref: "#/definitions/TenantResponse"
  TopicResponse:
    description: Response with Topic objects
    schema:
      $ref: "#/definitions/TopicResponse"
  Unauthorized:
    description: Access unauthorized, invalid API-KEY was used
    schema:
      $ref: "#/definitions/Error"
  UnprocessableEntity:
    description: Unprocessable Entity, likely a bad parameter
    schema:
      $ref: "#/definitions/Error"
  UserResponse:
    description: Response with User objects
    schema:
      $ref: "#/definitions/UserResponse"
paths:
  /accounts:
    delete:
      description: Delete Account record
      operationId: deleteAccount
      parameters:
        - $ref: "#/parameters/accountIdQuery"
      responses:
        "200":
          $ref: "#/responses/DeleteResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Delete An Account
      tags:
        - Accounts
    get:
      description: Return a list of all available Accounts
      operationId: getAccounts
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/nameQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/accountIdQuery"
        - $ref: "#/parameters/emailQuery"
      responses:
        "200":
          $ref: "#/responses/AccountResponse"
        "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 accounts
      tags:
        - Accounts
    post:
      description: Account record to be added
      operationId: postAccounts
      parameters:
        - $ref: "#/parameters/accountRequest"
      responses:
        "201":
          $ref: "#/responses/SalesforcePostResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add a new account
      tags:
        - Accounts
    put:
      description: Update one or more accounts specified by accountId
      operationId: putAccounts
      parameters:
        - $ref: "#/parameters/accountRequest"
      responses:
        "200":
          $ref: "#/responses/AccountResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update a single account
      tags:
        - Accounts
  /assets:
    get:
      description: Return a list of all available Assets
      operationId: getAssets
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/assetIdQuery"
      responses:
        "200":
          $ref: "#/responses/AssetResponse"
        "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 assets
      tags:
        - Assets
    post:
      description: Industry record to be added
      operationId: postAssets
      parameters:
        - $ref: "#/parameters/assetRequest"
      responses:
        "201":
          $ref: "#/responses/SalesforcePostResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add a new asset
      tags:
        - Assets
  /clusters:
    get:
      description: Return a list of Cluster records from the datastore
      operationId: getClusters
      parameters:
        - $ref: "#/parameters/clusterIdQuery"
        - $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:
        - Clusters
    post:
      description: Create Clusters in Salesforce
      operationId: postClusters
      parameters:
        - $ref: "#/parameters/clusterRequest"
      responses:
        "201":
          $ref: "#/responses/SalesforcePostResponse"
        "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:
        - Clusters
    put:
      description: Update Cluster in Salesforce
      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 Clusters
      tags:
        - Clusters
  /companyproducts:
    get:
      description: Return a list of all available CompanyProducts
      operationId: getCompanyProducts
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/companyProductIdQuery"
      responses:
        "200":
          $ref: "#/responses/CompanyProductResponse"
        "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 companyproducts
      tags:
        - CompanyProducts
    post:
      description: Industry record to be added
      operationId: postCompanyProducts
      parameters:
        - $ref: "#/parameters/companyProductRequest"
      responses:
        "201":
          $ref: "#/responses/SalesforcePostResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add a new companyproduct
      tags:
        - CompanyProducts
  /companyservices:
    get:
      description: Return a list of all available CompanyServices
      operationId: getCompanyServices
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/companyServiceIdQuery"
      responses:
        "200":
          $ref: "#/responses/CompanyServiceResponse"
        "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 companyservices
      tags:
        - CompanyServices
    post:
      description: Industry record to be added
      operationId: postCompanyServices
      parameters:
        - $ref: "#/parameters/companyServiceRequest"
      responses:
        "201":
          $ref: "#/responses/SalesforcePostResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add a new companyservice
      tags:
        - CompanyServices
  /contacts:
    delete:
      description: Delete Contact record from Salesforce
      operationId: deleteContacts
      parameters:
        - $ref: "#/parameters/contactIdQuery"
      responses:
        "200":
          $ref: "#/responses/ContactResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Delete a Contact record
      tags:
        - Contacts
    get:
      description: Retrieve Contact records from Salesforce
      operationId: getContacts
      parameters:
        - $ref: "#/parameters/contactIdQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/nameQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/accountIdQuery"
        - $ref: "#/parameters/emailQuery"
      responses:
        "200":
          $ref: "#/responses/ContactResponse"
        "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 Contact record
      tags:
        - Contacts
    post:
      description: Contacts record to be added
      operationId: postContacts
      parameters:
        - $ref: "#/parameters/contactRequest"
      responses:
        "201":
          $ref: "#/responses/SalesforcePostResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add a new Contacts
      tags:
        - Contacts
    put:
      description: Update Contact records in Salesforce
      operationId: putContacts
      parameters:
        - $ref: "#/parameters/contactRequest"
      responses:
        "200":
          $ref: "#/responses/ContactResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update a Contact record
      tags:
        - Contacts
  /contracts:
    get:
      description: Return a list of all available Contracts
      operationId: getContracts
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/contractIdQuery"
      responses:
        "200":
          $ref: "#/responses/ContractResponse"
        "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 contracts
      tags:
        - Contracts
  /courselessons:
    get:
      operationId: getCourseLessons
      security:
        - ApiKeyAuth: []
      parameters:
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/CourseLessonResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Get a list of CourseLessons
      tags:
        - Courses
    post:
      operationId: postCourseLesson
      security:
        - ApiKeyAuth: []
      parameters:
        - $ref: "#/parameters/CourseLessonRequest"
      responses:
        "200":
          $ref: "#/responses/CourseLessonResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Create a new CourseLesson
      tags:
        - Courses
    put:
      security:
        - ApiKeyAuth: []
      operationId: updateCourseLesson
      parameters:
        - $ref: "#/parameters/CourseLessonRequest"
      responses:
        "200":
          $ref: "#/responses/CourseLessonResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Update an existing CourseLesson
      tags:
        - Courses
  /courses:
    get:
      description: Return a list of Course records from the datastore
      operationId: getCourses
      parameters:
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/CourseResponse"
        "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 Courses
      tags:
        - Courses
    post:
      description: Create Courses in Salesforce
      operationId: postCourses
      parameters:
        - $ref: "#/parameters/CourseRequest"
      responses:
        "201":
          $ref: "#/responses/SalesforcePostResponse"
        "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 Courses
      tags:
        - Courses
    put:
      description: Update Course in Salesforce
      operationId: putCourses
      parameters:
        - $ref: "#/parameters/CourseRequest"
      responses:
        "200":
          $ref: "#/responses/CourseResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update Courses
      tags:
        - Courses
  /coursesections:
    get:
      security:
        - ApiKeyAuth: []
      operationId: getCourseSections
      parameters:
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/CourseSectionResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Get a list of CourseSections
      tags:
        - Courses
    post:
      security:
        - ApiKeyAuth: []
      operationId: postCourseSection
      parameters:
        - $ref: "#/parameters/CourseSectionRequest"
      responses:
        "200":
          $ref: "#/responses/CourseSectionResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Create a new CourseSection
      tags:
        - Courses
    put:
      security:
        - ApiKeyAuth: []
      operationId: updateCourseSection
      parameters:
        - $ref: "#/parameters/CourseSectionRequest"
      responses:
        "200":
          $ref: "#/responses/CourseSectionResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Update an existing CourseSection
      tags:
        - Courses
  /databases:
    get:
      description: Return a list of Database records from the datastore
      operationId: getDatabases
      parameters:
        - $ref: "#/parameters/databaseIdQuery"
        - $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:
        - Databases
    post:
      description: Create Databases in Salesforce
      operationId: postDatabases
      parameters:
        - $ref: "#/parameters/databaseRequest"
      responses:
        "201":
          $ref: "#/responses/SalesforcePostResponse"
        "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:
        - Databases
    put:
      description: Update Database in Salesforce
      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:
        - Databases
  /documents:
    get:
      description: Return a list of Document records from the datastore
      operationId: getDocuments
      parameters:
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/DocumentResponse"
        "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 Documents
      tags:
        - Documents
    post:
      description: Create Documents in Salesforce
      operationId: postDocuments
      parameters:
        - $ref: "#/parameters/documentRequest"
      responses:
        "201":
          $ref: "#/responses/SalesforcePostResponse"
        "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 Documents
      tags:
        - Documents
    put:
      description: Update Document in Salesforce
      operationId: putDocuments
      parameters:
        - $ref: "#/parameters/documentRequest"
      responses:
        "200":
          $ref: "#/responses/DocumentResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update Documents
      tags:
        - Documents
  /eventcategories:
    get:
      security:
        - ApiKeyAuth: []
      operationId: getEventCategories
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/idQuery"
      responses:
        "200":
          $ref: "#/responses/EventCategoryResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Get a list of Eventcategories
      tags:
        - Events
    post:
      security:
        - ApiKeyAuth: []
      operationId: postEventCategories
      parameters:
        - $ref: "#/parameters/EventCategoryRequest"
      responses:
        "200":
          $ref: "#/responses/EventCategoryResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Create a new EventCategory
      tags:
        - Events
  /events:
    delete:
      security:
        - ApiKeyAuth: []
      operationId: deleteEvent
      parameters:
        - $ref: "#/parameters/idQuery"
      responses:
        "204":
          description: No Content
      summary: Delete a Event
      tags:
        - Events
    get:
      security:
        - ApiKeyAuth: []
      operationId: getEvents
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/idQuery"
      responses:
        "200":
          $ref: "#/responses/EventResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Get a list of Events
      tags:
        - Events
    put:
      security:
        - ApiKeyAuth: []
      operationId: updateEvent
      parameters:
        - $ref: "#/parameters/idQuery"
      responses:
        "200":
          $ref: "#/responses/EventResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Update an existing Event
      tags:
        - Events
  /factors:
    get:
      description: Return a list of all available Factors
      operationId: getFactors
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/factorIdQuery"
      responses:
        "200":
          $ref: "#/responses/FactorResponse"
        "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 factors
      tags:
        - Factors
    post:
      description: Factor record to be added
      operationId: postFactors
      parameters:
        - $ref: "#/parameters/factorRequest"
      responses:
        "201":
          $ref: "#/responses/SalesforcePostResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add a new Factor
      tags:
        - Factors
  /favorites:
    get:
      description: Return a list of Favorite records from the datastore
      operationId: getFavorites
      parameters:
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/FavoriteResponse"
        "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 Favorites
      tags:
        - Favorites
  /financialstatements:
    get:
      description: Return a list of all available FinancialStatements
      operationId: getFinancialStatements
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/financialStatementIdQuery"
      responses:
        "200":
          $ref: "#/responses/FinancialStatementResponse"
        "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 financialStatements
      tags:
        - FinancialStatements
    post:
      description: FinancialStatement record to be added
      operationId: postFinancialStatements
      parameters:
        - $ref: "#/parameters/financialStatementRequest"
      responses:
        "201":
          $ref: "#/responses/SalesforcePostResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add a new FinancialStatement
      tags:
        - FinancialStatements
  /industries:
    get:
      description: Return a list of all available Industries
      operationId: getIndustries
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/industryIdQuery"
      responses:
        "200":
          $ref: "#/responses/IndustryResponse"
        "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 industries
      tags:
        - Industries
    post:
      description: Industry record to be added
      operationId: postIndustries
      parameters:
        - $ref: "#/parameters/industryRequest"
      responses:
        "201":
          $ref: "#/responses/SalesforcePostResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add a new industry
      tags:
        - Industries
  /industrycompanies:
    get:
      description: Return a list of all available IndustryCompanies
      operationId: getIndustryCompanies
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/industryCompanyIdQuery"
      responses:
        "200":
          $ref: "#/responses/IndustryCompanyResponse"
        "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 industryCompanies
      tags:
        - IndustryCompanies
    post:
      description: IndustryCompany record to be added
      operationId: postIndustryCompanies
      parameters:
        - $ref: "#/parameters/industryCompanyRequest"
      responses:
        "201":
          $ref: "#/responses/SalesforcePostResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add a new IndustryCompany
      tags:
        - IndustryCompanies
  /industryservices:
    get:
      description: Return a list of all available IndustryServices
      operationId: getIndustryServices
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/industryServiceIdQuery"
      responses:
        "200":
          $ref: "#/responses/IndustryServiceResponse"
        "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 industryServices
      tags:
        - IndustryServices
    post:
      description: IndustryService record to be added
      operationId: postIndustryServices
      parameters:
        - $ref: "#/parameters/industryServiceRequest"
      responses:
        "201":
          $ref: "#/responses/SalesforcePostResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add a new IndustryService
      tags:
        - IndustryServices
  /industryproducts:
    get:
      description: Return a list of all available IndustryProducts
      operationId: getIndustryProducts
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/industryProductIdQuery"
      responses:
        "200":
          $ref: "#/responses/IndustryProductResponse"
        "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 industryProducts
      tags:
        - IndustryProducts
    post:
      description: Industry record to be added
      operationId: postIndustryproducts
      parameters:
        - $ref: "#/parameters/industryProductRequest"
      responses:
        "201":
          $ref: "#/responses/SalesforcePostResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add a new industryproduct
      tags:
        - IndustryProducts
  /observations:
    get:
      description: Return a list of all available Observations
      operationId: getObservations
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/observationIdQuery"
      responses:
        "200":
          $ref: "#/responses/ObservationResponse"
        "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 observations
      tags:
        - Observations
    post:
      description: Observation record to be added
      operationId: postObservations
      parameters:
        - $ref: "#/parameters/observationRequest"
      responses:
        "201":
          $ref: "#/responses/SalesforcePostResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add a new Observation
      tags:
        - Observations
  /promptanswers:
    get:
      description: Return a list of PromptAnswers records from the datastore
      operationId: getPromptAnswers
      parameters:
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/PromptAnswerResponse"
        "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 PromptResponses
      tags:
        - Prompts
    post:
      description: Create PromptAnswers
      operationId: postPromptAnswers
      parameters:
        - $ref: "#/parameters/PromptAnswerRequest"
      responses:
        "200":
          $ref: "#/responses/PromptAnswerResponse"
        "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 PromptResponses
      tags:
        - Prompts
    put:
      description: Update PromptAnswers
      operationId: putPromptAnsweers
      parameters:
        - $ref: "#/parameters/PromptAnswerRequest"
      responses:
        "200":
          $ref: "#/responses/PromptAnswerResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update PromptResponse
      tags:
        - Prompts
  /prompts:
    get:
      description: Return a list of Prompt records from the datastore
      operationId: getPrompts
      parameters:
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/PromptResponse"
        "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 Prompts
      tags:
        - Prompts
    post:
      description: Create Prompts
      operationId: postPrompts
      parameters:
        - $ref: "#/parameters/PromptRequest"
      responses:
        "200":
          $ref: "#/responses/PromptResponse"
        "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 Prompts
      tags:
        - Prompts
    put:
      description: Update Prompt
      operationId: putPrompts
      parameters:
        - $ref: "#/parameters/PromptRequest"
      responses:
        "200":
          $ref: "#/responses/PromptResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update Prompts
      tags:
        - Prompts
  /promptcategories:
    get:
      description: Return a list of PromptCategory records from the datastore
      operationId: getPromptCategories
      parameters:
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/PromptCategoryResponse"
        "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 PromptCategories
      tags:
        - Prompts
    post:
      description: Create PromptCategories
      operationId: postPromptCategories
      parameters:
        - $ref: "#/parameters/PromptCategoryRequest"
      responses:
        "200":
          $ref: "#/responses/PromptCategoryResponse"
        "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 PromptCategories
      tags:
        - Prompts
    put:
      description: Update PromptCategory
      operationId: putPromptCategories
      parameters:
        - $ref: "#/parameters/PromptCategoryRequest"
      responses:
        "200":
          $ref: "#/responses/PromptCategoryResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update PromptCategories
      tags:
        - Prompts
  /prompttags:
    get:
      description: Return a list of PromptTag records from the datastore
      operationId: getPromptTags
      parameters:
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/PromptTagResponse"
        "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 PromptTags
      tags:
        - Prompts
    post:
      description: Create PromptTags in Taxnexus
      operationId: postPromptTags
      parameters:
        - $ref: "#/parameters/PromptTagRequest"
      responses:
        "200":
          $ref: "#/responses/PromptTagResponse"
        "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 PromptTags
      tags:
        - Prompts
    put:
      description: Update PromptTag in Taxnexus
      operationId: putPromptTags
      parameters:
        - $ref: "#/parameters/PromptTagRequest"
      responses:
        "200":
          $ref: "#/responses/PromptTagResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update PromptTags
      tags:
        - Prompts
  /researchprojectcompanies:
    get:
      description: Return a list of ResearchProjectCompany records from the datastore
      operationId: getResearchProjectCompanies
      parameters:
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/ResearchProjectCompanyResponse"
        "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 ResearchProjectCompanies
      tags:
        - ResearchProjects
    post:
      description: Create ResearchProjectCompanies in the system
      operationId: postResearchProjectCompanies
      parameters:
        - $ref: "#/parameters/ResearchProjectCompanyRequest"
      responses:
        "200":
          $ref: "#/responses/ResearchProjectCompanyResponse"
        "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 ResearchProjectCompanies
      tags:
        - ResearchProjects
    put:
      description: Update ResearchProjectCompany in the system
      operationId: putResearchProjectCompanies
      parameters:
        - $ref: "#/parameters/ResearchProjectCompanyRequest"
      responses:
        "200":
          $ref: "#/responses/ResearchProjectCompanyResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update ResearchProjectCompanies
      tags:
        - ResearchProjects
  /researchprojectservices:
    get:
      description: Return a list of ResearchProjectService records from the datastore
      operationId: getResearchProjectServices
      parameters:
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/ResearchProjectServiceResponse"
        "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 ResearchProjectServices
      tags:
        - ResearchProjects
    post:
      description: Create ResearchProjectServices in the system
      operationId: postResearchProjectServices
      parameters:
        - $ref: "#/parameters/ResearchProjectServiceRequest"
      responses:
        "200":
          $ref: "#/responses/ResearchProjectServiceResponse"
        "201":
          $ref: "#/responses/ResearchProjectServiceResponse"
        "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 ResearchProjectServices
      tags:
        - ResearchProjects
    put:
      description: Update ResearchProjectService in the system
      operationId: putResearchProjectServices
      parameters:
        - $ref: "#/parameters/ResearchProjectServiceRequest"
      responses:
        "200":
          $ref: "#/responses/ResearchProjectServiceResponse"
        "201":
          $ref: "#/responses/ResearchProjectServiceResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
  /researchprojectdocuments:
    get:
      description: Return a list of ResearchProjectDocument records from the datastore
      operationId: getResearchProjectDocuments
      parameters:
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/ResearchProjectDocumentResponse"
        "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 ResearchProjectDocuments
      tags:
        - ResearchProjects
    post:
      description: Create ResearchProjectDocuments in the system
      operationId: postResearchProjectDocuments
      parameters:
        - $ref: "#/parameters/ResearchProjectDocumentRequest"
      responses:
        "200":
          $ref: "#/responses/ResearchProjectDocumentResponse"
        "201":
          $ref: "#/responses/ResearchProjectDocumentResponse"
        "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 ResearchProjectDocuments
      tags:
        - ResearchProjects
    put:
      description: Update ResearchProjectDocument in the system
      operationId: putResearchProjectDocuments
      parameters:
        - $ref: "#/parameters/ResearchProjectDocumentRequest"
      responses:
        "200":
          $ref: "#/responses/ResearchProjectDocumentResponse"
        "201":
          $ref: "#/responses/ResearchProjectDocumentResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update ResearchProjectDocuments
      tags:
        - ResearchProjects
  /researchprojectproducts:
    get:
      description: Return a list of ResearchProjectProduct records from the datastore
      operationId: getResearchProjectProducts
      parameters:
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/ResearchProjectProductResponse"
        "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 ResearchProjectProducts
      tags:
        - ResearchProjects
    post:
      description: Create ResearchProjectProducts in the system
      operationId: postResearchProjectProducts
      parameters:
        - $ref: "#/parameters/researchProjectProductRequest"
      responses:
        "200":
          $ref: "#/responses/ResearchProjectProductResponse"
        "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 ResearchProjectProducts
      tags:
        - ResearchProjects
    put:
      description: Update ResearchProjectProduct in the system
      operationId: putResearchProjectProducts
      parameters:
        - $ref: "#/parameters/researchProjectProductRequest"
      responses:
        "200":
          $ref: "#/responses/ResearchProjectProductResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update ResearchProjectProducts
      tags:
        - ResearchProjects
  /researchprojects:
    get:
      description: Return a list of ResearchProject records from the datastore
      operationId: getResearchProjects
      parameters:
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/ResearchProjectResponse"
        "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 ResearchProjects
      tags:
        - ResearchProjects
    post:
      description: Create ResearchProjects in the system
      operationId: postResearchProjects
      parameters:
        - $ref: "#/parameters/ResearchProjectRequest"
      responses:
        "200":
          $ref: "#/responses/ResearchProjectResponse"
        "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 ResearchProjects
      tags:
        - ResearchProjects
    put:
      description: Update ResearchProject in the system
      operationId: putResearchProjects
      parameters:
        - $ref: "#/parameters/ResearchProjectRequest"
      responses:
        "200":
          $ref: "#/responses/ResearchProjectResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update ResearchProjects
      tags:
        - ResearchProjects
  /researchprojecttopics:
    get:
      description: Return a list of ResearchProjectTopic records from the datastore
      operationId: getResearchProjectTopics
      parameters:
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/ResearchProjectTopicResponse"
        "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 ResearchProjectTopics
      tags:
        - ResearchProjects
    post:
      description: Create ResearchProjectTopics in the system
      operationId: postResearchProjectTopics
      parameters:
        - $ref: "#/parameters/ResearchProjectTopicRequest"
      responses:
        "200":
          $ref: "#/responses/ResearchProjectTopicResponse"
        "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 ResearchProjectTopics
      tags:
        - ResearchProjects
    put:
      description: Update ResearchProjectTopic in the system
      operationId: putResearchProjectTopics
      parameters:
        - $ref: "#/parameters/ResearchProjectTopicRequest"
      responses:
        "200":
          $ref: "#/responses/ResearchProjectTopicResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update ResearchProjectTopics
      tags:
        - ResearchProjects
  /roles:
    get:
      description: Return a list of Roles
      operationId: getRoles
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/roleIdQuery"
      responses:
        "200":
          $ref: "#/responses/RoleResponse"
        "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 Roles
      tags:
        - Roles
  /templates:
    get:
      description: Returns the PDF rendering template, or a link to where to get the template
      operationId: getTemplates
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/templateIdQuery"
      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 PDF Rendering Templates
      tags:
        - Templates
  /tenants:
    get:
      description: Return a list of Tenant records from the datastore
      operationId: getTenants
      parameters:
        - $ref: "#/parameters/tenantIdQuery"
        - $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:
        - Tenants
    post:
      description: Create Tenants in Salesforce
      operationId: Tenants
      parameters:
        - $ref: "#/parameters/tenantRequest"
      responses:
        "201":
          $ref: "#/responses/SalesforcePostResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Create new Tenants
      tags:
        - Tenants
    put:
      description: Update Tenant in Salesforce
      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:
        - Tenants
  /topics:
    get:
      description: Retrieve Topic records from the microservice
      operationId: getTopics
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/topicIdQuery"
      responses:
        "200":
          $ref: "#/responses/TopicResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get Topic records
      tags:
        - Topics
    post:
      description: Add new topics
      operationId: postTopics
      parameters:
        - $ref: "#/parameters/topicRequest"
      responses:
        "200":
          $ref: "#/responses/TopicResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add new topics
      tags:
        - Topics
  /users:
    get:
      description: Return a list of User records from the datastore
      operationId: getUsers
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/userIdQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/apiKeyQuery"
      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:
        - Users
    post:
      description: Create user records in Salesforce
      operationId: postUsers
      parameters:
        - $ref: "#/parameters/newUserRequest"
      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 Salesforce User
      tags:
        - Users
    put:
      description: Update existing user records in Salesforce
      operationId: putUsers
      parameters:
        - $ref: "#/parameters/newUserRequest"
      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 user records in Salesforce
      tags:
        - Users
  /users/sessions:
    put:
      description: Update user records session data in Salesforce
      operationId: putUsersSessions
      parameters:
        - $ref: "#/parameters/newUserRequest"
      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 user records session data in Salesforce
      tags:
        - Users
definitions:
  Account:
    properties:
      AccountNumber:
        description: Account Number
        type: string
        x-nullable: true
      AccountSource:
        description: The marketing origin of this account
        type: string
        x-nullable: true
      Active:
        type: boolean
        x-nullable: true
      AnnualRevenue:
        description: Annual Revenue Estimate
        format: double
        type: number
        x-nullable: true
      AppExchange:
        description: AppExchange URL
        type: string
        x-nullable: true
      BillingAddress:
        $ref: "#/definitions/Address"
        x-nullable: true
      BillingContactID:
        description: Contact ID
        type: string
        x-nullable: true
      Channels:
        description: Marketing Channels (Multiselect Picklist)
        type: string
        x-nullable: true
      ClosedDate:
        description: Closed Date
        type: string
        x-nullable: true
      CloudRevenueTotal:
        type: number
        x-nullable: true
      CloudType:
        description: The type of cloud company
        type: string
        x-nullable: true
      CloudYear:
        description: The year company started cloud revenue
        type: string
        x-nullable: true
      CreatedByID:
        description: Created By User ID
        type: string
        x-nullable: true
      CreatedDate:
        description: Created Date
        type: string
        x-nullable: true
      CrunchbaseURL:
        description: Crunchbase URL
        type: string
        x-nullable: true
      Description:
        description: Description of the account
        type: string
        x-nullable: true
      EIN:
        type: string
        x-nullable: true
      EarningsCall:
        description: Earnings Call Date
        type: string
        x-nullable: true
      Email:
        description: Main Account Email
        type: string
        x-nullable: true
      EnrichmentStatus:
        description: Enrichment Status
        type: string
        x-nullable: true
      EquityFunding:
        description: The amount of equity EquityFunding
        type: number
        x-nullable: true
      Facebook:
        description: Company Facebook URL
        type: string
        x-nullable: true
      Fax:
        description: Fax number
        type: string
        x-nullable: true
      FoundedDate:
        description: Date company founded
        type: string
        x-nullable: true
      FullDescription:
        description: Full Description
        type: string
        x-nullable: true
      ID:
        description: Account Id
        type: string
      IPODate:
        description: IPO Date
        type: string
        x-nullable: true
      ImageAltText:
        type: string
        x-nullable: true
      ImageURL:
        type: string
        x-nullable: true
      Industries:
        description: Industries
        type: string
        x-nullable: true
      Industry:
        description: Industry
        type: string
        x-nullable: true
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
        x-nullable: true
      LastEnrichedByID:
        description: Last Enriched By User ID
        type: string
        x-nullable: true
      LastEnrichmentDate:
        description: Last Enriched Date
        type: string
        x-nullable: true
      LastModifiedDate:
        description: Last Modified Date
        type: string
        x-nullable: true
      LinkedIn:
        description: Company LinkedIn URL
        type: string
        x-nullable: true
      Location:
        description: Headquarters Location Description
        type: string
        x-nullable: true
      Logo:
        description: Company Logo URL
        type: string
        x-nullable: true
      MarketCapitalization:
        description: Market Capitalization
        type: number
        x-nullable: true
      Name:
        description: Account Name
        type: string
        x-nullable: true
      NumberInvestments:
        description: Number of Investments
        type: number
        x-nullable: true
      NumberOfEmployees:
        description: Employee Count Estimate
        format: int64
        type: number
        x-nullable: true
      OwnerID:
        description: Account Owner User ID
        type: string
        x-nullable: true
      Ownership:
        description: Ownership
        type: string
        x-nullable: true
      ParentID:
        description: Parent Account
        type: string
        x-nullable: true
      Phone:
        description: Phone
        type: string
        x-nullable: true
      Publish:
        description: Publish this record?
        type: boolean
        x-nullable: true
      SIC:
        description: SIC Code
        type: string
        x-nullable: true
      SICDesc:
        description: SIC Description
        type: string
        x-nullable: true
      SalesforceFirst:
        description: A Salesforce-First company?
        type: boolean
        x-nullable: true
      ShippingAddress:
        $ref: "#/definitions/Address"
        x-nullable: true
      ShippingContactID:
        description: Shipping Contact ID
        type: string
        x-nullable: true
      Site:
        description: Account Site
        type: string
        x-nullable: true
      Slug:
        description: Slug
        type: string
        x-nullable: true
      TagLine:
        description: Company tagline
        type: string
        x-nullable: true
      TenantID:
        description: Tenant Identifier
        type: string
        x-nullable: true
      TickerSymbol:
        description: Ticker Symbol
        type: string
        x-nullable: true
      Twitter:
        description: Twitter URL
        type: string
        x-nullable: true
      Type:
        description: Type
        type: string
        x-nullable: true
      Website:
        description: Website
        type: string
        x-nullable: true
      YearStarted:
        description: Year Started
        type: string
        x-nullable: true
    type: object
  AccountRequest:
    properties:
      data:
        items:
          $ref: "#/definitions/Account"
        type: array
      meta:
        $ref: "#/definitions/RequestMeta"
    type: object
  AccountResponse:
    description: An array of Account objects
    properties:
      data:
        items:
          $ref: "#/definitions/Account"
        type: array
      meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Address:
    properties:
      City:
        description: City
        type: string
        x-nullable: true
      Country:
        description: Country full name
        type: string
        x-nullable: true
      CountryCode:
        description: Country Code
        type: string
        x-nullable: true
      PostalCode:
        description: Postal Code
        type: string
        x-nullable: true
      State:
        description: State full name
        type: string
        x-nullable: true
      StateCode:
        description: State Code
        type: string
        x-nullable: true
      Street:
        description: Street number and name
        type: string
        x-nullable: true
    type: object
  Asset:
    properties:
      AccountID:
        description: Account
        type: string
        x-nullable: true
      Address:
        $ref: "#/definitions/Address"
        x-nullable: true
      AssetLevel:
        description: Asset Level
        type: number
        x-nullable: true
      AssetProvidedByID:
        description: Asset Provided By
        type: string
        x-nullable: true
      AssetServicedByID:
        description: Asset Serviced By
        type: string
        x-nullable: true
      CompanyProductID:
        description: Company Product
        type: string
        x-nullable: true
      ConsequenceOfFailure:
        description: Consequence Of Failure
        type: string
        x-nullable: true
      ContactID:
        description: Contact
        type: string
        x-nullable: true
      CreatedByID:
        description: Created By
        type: string
        x-nullable: true
      CreatedDate:
        description: Created Date
        type: string
        x-nullable: true
      CurrentAmount:
        description: Current Amount
        type: number
        x-nullable: true
      CurrentLifecycleEndDate:
        description: Current Lifecycle End Date
        type: string
        x-nullable: true
      CurrentMrr:
        description: Current Monthly Recurring Revenue
        type: number
        x-nullable: true
      CurrentQuantity:
        description: Current Quantity
        type: number
        x-nullable: true
      Description:
        description: Description
        type: string
        x-nullable: true
      DigitalAssetStatus:
        description: Digital Asset Status
        type: string
        x-nullable: true
      ExternalIdentifier:
        description: External Id
        type: string
        x-nullable: true
      HasLifecycleManagement:
        description: Has Lifecycle Management
        type: boolean
        x-nullable: true
      ID:
        description: Record Id
        type: string
      InstallDate:
        description: Install Date
        type: string
        x-nullable: true
      IsCompetitorProduct:
        description: Competitor Asset
        type: boolean
        x-nullable: true
      IsInternal:
        description: Internal Asset
        type: boolean
        x-nullable: true
      LastModifiedByID:
        description: Last Modified By
        type: string
        x-nullable: true
      LastModifiedDate:
        description: Last Modified Date
        type: string
        x-nullable: true
      LocationID:
        description: Location
        type: string
        x-nullable: true
      MIMEType:
        description: MIME Type
        type: string
        x-nullable: true
      ManufactureDate:
        description: Manufacture Date
        type: string
        x-nullable: true
      Name:
        description: Asset Name
        type: string
        x-nullable: true
      ParentID:
        description: Parent Asset
        type: string
        x-nullable: true
      Price:
        description: Price
        type: number
        x-nullable: true
      Product2ID:
        description: Product
        type: string
        x-nullable: true
      ProductCode:
        description: Product Code
        type: string
        x-nullable: true
      ProductDescription:
        description: Product Description
        type: string
        x-nullable: true
      ProductFamily:
        description: Product Family
        type: string
        x-nullable: true
      PurchaseDate:
        description: Purchase Date
        type: string
        x-nullable: true
      Quantity:
        description: Quantity
        type: number
        x-nullable: true
      RootAssetID:
        description: Root Asset
        type: string
        x-nullable: true
      SerialNumber:
        description: Serial Number
        type: string
        x-nullable: true
      Status:
        description: Status
        type: string
        x-nullable: true
      StatusReason:
        description: Status Reason
        type: string
        x-nullable: true
      StockKeepingUnit:
        description: Product SKU
        type: string
        x-nullable: true
      TenantID:
        description: Tenant ID
        type: string
        x-nullable: true
      TotalLifecycleAmount:
        description: Total Lifecycle Amount
        type: number
        x-nullable: true
      Type:
        description: Type
        type: string
        x-nullable: true
      URL:
        description: URL
        type: string
        x-nullable: true
      UsageEndDate:
        description: Usage End Date
        type: string
        x-nullable: true
    type: object
  AssetRequest:
    description: An array of Asset objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Asset"
        type: array
    type: object
  AssetResponse:
    description: An array of Asset objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Asset"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Cluster:
    properties:
      CreatedByID:
        description: Created By
        type: string
        x-nullable: true
      CreatedDate:
        description: Created Date
        type: string
        x-nullable: true
      Description:
        description: Description
        type: string
        x-nullable: true
      Environment:
        description: Environment
        type: string
        x-nullable: true
      Gateway:
        description: Gateway
        type: string
        x-nullable: true
      ID:
        description: Record Id
        type: string
      IpAddress:
        description: IP Address
        type: string
        x-nullable: true
      LastModifiedByID:
        description: Last Modified By
        type: string
        x-nullable: true
      LastModifiedDate:
        description: Last Modified Date
        type: string
        x-nullable: true
      Name:
        description: Cluster Name
        type: string
        x-nullable: true
      OwnerID:
        description: Owner
        type: string
        x-nullable: true
      Ref:
        description: External Reference
        type: string
        x-nullable: true
      Status:
        description: Status
        type: string
        x-nullable: true
      Subnet:
        description: Subnet
        type: string
        x-nullable: true
      TenantID:
        description: tenantid
        type: string
        x-nullable: true
      Type:
        description: Type
        type: string
        x-nullable: true
      Zone:
        description: Zone
        type: string
        x-nullable: true
    type: object
  ClusterRequest:
    properties:
      data:
        items:
          $ref: "#/definitions/Cluster"
        type: array
      meta:
        $ref: "#/definitions/RequestMeta"
    required:
      - data
    type: object
  ClusterResponse:
    description: An array of cluster objects
    properties:
      data:
        items:
          $ref: "#/definitions/Cluster"
        type: array
      meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  CompanyProduct:
    description: A software product or service vended by a Company
    properties:
      AccountID:
        description: ID of the Company that owns this Product
        type: string
      AppExchange:
        description: Salesforce AppExchange URL
        type: string
        x-nullable: true
      CreatedByID:
        description: Created By User ID
        type: string
        x-nullable: true
      CreatedDate:
        description: Created Date
        type: string
        x-nullable: true
      Description:
        description: Description of product
        type: string
        x-nullable: true
      EnrichmentStatus:
        description: Enrichment Status
        type: string
        x-nullable: true
      FullDescription:
        description: Full Description of product
        type: string
        x-nullable: true
      ID:
        description: Record Id
        type: string
      ImageAltText:
        description: Image Alt Text
        type: string
        x-nullable: true
      ImageURL:
        description: Image URL
        type: string
        x-nullable: true
      LastEnrichedByID:
        description: Last Enriched By User ID
        type: string
        x-nullable: true
      LastEnrichmentDate:
        description: Last Enriched Date
        type: string
        x-nullable: true
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
        x-nullable: true
      LastModifiedDate:
        description: Last Modified Date
        type: string
        x-nullable: true
      Logo:
        description: Logo
        type: string
        x-nullable: true
      Name:
        description: Product Name
        type: string
        x-nullable: true
      ProductVideoID:
        description: Product Video ID
        type: string
        x-nullable: true
      Published:
        description: Published
        type: boolean
        x-nullable: true
      SalesforceSpecific:
        description: Salesforce Specific
        type: boolean
        x-nullable: true
      Slug:
        description: Slug
        type: string
        x-nullable: true
      TagLine:
        description: TagLine
        type: string
        x-nullable: true
      URL:
        description: Website
        type: string
        x-nullable: true
    type: object
  CompanyProductRequest:
    properties:
      data:
        items:
          $ref: "#/definitions/CompanyProduct"
        type: array
      meta:
        $ref: "#/definitions/RequestMeta"
    required:
      - data
    type: object
  CompanyProductResponse:
    properties:
      data:
        items:
          $ref: "#/definitions/CompanyProduct"
        type: array
      meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  CompanyService:
    description: A service performed by a Company
    properties:
      AccountID:
        description: ID of the Company that owns this Service
        type: string
      AppExchange:
        description: Salesforce AppExchange URL
        type: string
        x-nullable: true
      CreatedByID:
        description: Created By User ID
        type: string
        x-nullable: true
      CreatedDate:
        description: Created Date
        type: string
        x-nullable: true
      Description:
        description: Description of service
        type: string
        x-nullable: true
      EnrichmentStatus:
        description: Enrichment Status
        type: string
        x-nullable: true
      FullDescription:
        description: Full Description of service
        type: string
        x-nullable: true
      ID:
        description: Record Id
        type: string
      ImageAltText:
        description: Image Alt Text
        type: string
        x-nullable: true
      ImageURL:
        description: Image URL
        type: string
        x-nullable: true
      Industries:
        description: Industries
        items:
          $ref: ../../lib/swagger/defs/industry.yaml#/Industry
        type: array
        x-nullable: true
      LastEnrichedByID:
        description: Last Enriched By User ID
        type: string
        x-nullable: true
      LastEnrichmentDate:
        description: Last Enriched Date
        type: string
        x-nullable: true
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
        x-nullable: true
      LastModifiedDate:
        description: Last Modified Date
        type: string
        x-nullable: true
      Logo:
        description: Logo
        type: string
        x-nullable: true
      Name:
        description: Service Name
        type: string
        x-nullable: true
      Published:
        description: Published
        type: boolean
        x-nullable: true
      SalesforceSpecific:
        description: Salesforce Specific
        type: boolean
        x-nullable: true
      ServiceVideoID:
        description: Service Video ID
        type: string
        x-nullable: true
      Slug:
        description: Slug
        type: string
        x-nullable: true
      TagLine:
        description: Tag Line
        type: string
        x-nullable: true
      URL:
        description: URL
        type: string
        x-nullable: true
    type: object
  CompanyServiceRequest:
    description: An array of CompanyService objects submitted for processing
    properties:
      Data:
        items:
          $ref: "#/definitions/CompanyService"
        type: array
    type: object
  CompanyServiceResponse:
    description: An array of CompanyService objects produced in response to a request
    properties:
      Data:
        items:
          $ref: "#/definitions/CompanyService"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Contact:
    properties:
      AccountID:
        description: The primary account ID of this contact
        type: string
        x-nullable: true
      AssistantName:
        description: Assistant Name
        type: string
        x-nullable: true
      AssistantPhone:
        description: Asst. Phone
        type: string
        x-nullable: true
      BirthDate:
        description: Birthdate
        type: string
        x-nullable: true
      Channels:
        description: Marketing Channels (Multiselect Picklist)
        type: string
        x-nullable: true
      CreatedByID:
        description: Created By User ID
        type: string
        x-nullable: true
      CreatedDate:
        description: Created Date
        type: string
        x-nullable: true
      CrunchbaseURL:
        description: Crunchbase URL
        type: string
        x-nullable: true
      Department:
        description: Department
        type: string
        x-nullable: true
      Description:
        description: Description
        type: string
        x-nullable: true
      DoNotCall:
        description: Do Not Call?
        type: boolean
        x-nullable: true
      Email:
        description: Email address
        type: string
        x-nullable: true
      EmailBounceDate:
        description: Email Bounce Date
        type: string
        x-nullable: true
      EmailBounceReason:
        description: Email Bounce Reason
        type: string
        x-nullable: true
      Facebook:
        description: Fax Number
        type: string
        x-nullable: true
      Fax:
        type: string
        x-nullable: true
      FirstName:
        description: First Name
        type: string
        x-nullable: true
      HasOptedOutOfEmail:
        description: Email Opt Out
        type: boolean
        x-nullable: true
      HasOptedOutOfFax:
        description: Fax Opt Out
        type: boolean
        x-nullable: true
      HomePhone:
        description: Home Phone
        type: string
        x-nullable: true
      ID:
        description: Record Id
        type: string
      IsEmailBounced:
        description: Does this contact have bounced emails?
        type: boolean
        x-nullable: true
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
        x-nullable: true
      LastModifiedDate:
        description: Last Modified Date
        type: string
        x-nullable: true
      LastName:
        description: Last Name
        type: string
        x-nullable: true
      LeadSource:
        description: Lead Source
        type: string
        x-nullable: true
      LinkedIn:
        description: LinkedIn Page
        type: string
        x-nullable: true
      MailingAddress:
        $ref: "#/definitions/Address"
      MobilePhone:
        description: Mobile Phone
        type: string
        x-nullable: true
      Name:
        description: Full Name
        type: string
        x-nullable: true
      NumberInvestments:
        description: Number of Investments
        type: number
        x-nullable: true
      OtherAddress:
        $ref: "#/definitions/Address"
      OtherPhone:
        description: Other Phone
        type: string
        x-nullable: true
      OwnerID:
        description: The User ID of the user who owns this Contact
        type: string
        x-nullable: true
      PersonalEmail:
        description: Personal Email Address for this Contact
        type: string
        x-nullable: true
      Phone:
        description: Phone Number
        type: string
        x-nullable: true
      PhotoURL:
        description: URL of a photograph of this User
        type: string
        x-nullable: true
      ReportsToID:
        description: Reports To User ID
        type: string
        x-nullable: true
      Salutation:
        description: Salutation
        type: string
        x-nullable: true
      Slug:
        description: Slug
        type: string
        x-nullable: true
      TenantID:
        description: tenant identifier
        type: string
        x-nullable: true
      Title:
        description: Contact Title
        type: string
        x-nullable: true
      Twitter:
        type: string
        x-nullable: true
    type: object
  ContactRequest:
    properties:
      data:
        items:
          $ref: "#/definitions/Contact"
        type: array
      meta:
        $ref: "#/definitions/RequestMeta"
    required:
      - data
    type: object
  ContactResponse:
    properties:
      data:
        items:
          $ref: "#/definitions/Contact"
        type: array
      meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Contract:
    properties:
      AccountID:
        description: Account
        type: string
        x-nullable: true
      ActivatedByID:
        description: Activated By
        type: string
        x-nullable: true
      ActivatedDate:
        description: Activated Date
        type: string
        x-nullable: true
      BillingAddress:
        $ref: "#/definitions/Address"
        description: Billing Address
      BillingContactID:
        description: Billing Contact
        type: string
        x-nullable: true
      CompanySignedDate:
        description: Company Signed Date
        type: string
        x-nullable: true
      CompanySignedID:
        description: Company Signed By
        type: string
        x-nullable: true
      ContractNumber:
        description: Contract Number
        type: string
        x-nullable: true
      ContractTerm:
        description: Contract Term (months)
        type: number
        x-nullable: true
      CreatedByID:
        description: Created By User ID
        type: string
        x-nullable: true
      CreatedDate:
        description: Created Date
        type: string
        x-nullable: true
      CustomerSignedDate:
        description: Customer Signed Date
        type: string
        x-nullable: true
      CustomerSignedID:
        description: Customer Signed By
        type: string
        x-nullable: true
      CustomerSignedTitle:
        description: Customer Signed Title
        type: string
        x-nullable: true
      DefaultEndUserID:
        description: End User
        type: string
        x-nullable: true
      Description:
        description: Description
        type: string
        x-nullable: true
      EndDate:
        description: Contract End Date
        type: string
        x-nullable: true
      EndUserID:
        description: End User
        type: string
        x-nullable: true
      HourlyRate:
        description: Hourly Rate
        type: number
        x-nullable: true
      ID:
        description: Telnexus Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
        x-nullable: true
      LastModifiedDate:
        description: Last Modified Date
        type: string
        x-nullable: true
      Name:
        description: Contract Name
        type: string
        x-nullable: true
      PaymentMethodID:
        description: Payment Method
        type: string
        x-nullable: true
      PaymentTerms:
        description: Payment Terms
        type: string
        x-nullable: true
      Perpetual:
        description: Perpetual Agreement?
        type: boolean
        x-nullable: true
      ShippingAddress:
        $ref: "#/definitions/Address"
        description: Shipping Address
      ShippingContactID:
        description: Shipping Contact
        type: string
        x-nullable: true
      StartDate:
        description: Contract Start Date
        type: string
        x-nullable: true
      Status:
        description: Status
        type: string
        x-nullable: true
      TenantID:
        description: Tenant Identifier
        type: string
        x-nullable: true
    type: object
  ContractRequest:
    properties:
      Data:
        items:
          $ref: "#/definitions/Contract"
        type: array
    type: object
  ContractResponse:
    properties:
      Data:
        items:
          $ref: "#/definitions/Contract"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  CourseLessonRequest:
    description: An array of CourseLesson objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/course-lesson.yaml#/CourseLesson
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  CourseLessonResponse:
    description: An array of CourseLesson objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/course-lesson.yaml#/CourseLesson
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  CourseRequest:
    description: An array of Course objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/course.yaml#/Course
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  CourseResponse:
    description: An array of Course objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/course.yaml#/Course
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  CourseSectionRequest:
    description: An array of CourseSection objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/course-section.yaml#/CourseSection
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  CourseSectionResponse:
    description: An array of CourseSection objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/course-section.yaml#/CourseSection
        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
        x-nullable: true
      ClusterID:
        description: The ID of the Cluster in which this database is deployed
        type: string
        x-nullable: true
      CreatedByID:
        description: Created By
        type: string
        x-nullable: true
      CreatedDate:
        description: Created Date
        type: string
        x-nullable: true
      DSN:
        description: Database connection string
        type: string
        x-nullable: true
      DatabaseName:
        description: The name of the physical database in the cluster
        type: string
        x-nullable: true
      ID:
        description: Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By
        type: string
        x-nullable: true
      LastModifiedDate:
        description: Last Modifed Date
        type: string
        x-nullable: true
      Microservices:
        description: List of microservices implemented by this Database
        type: string
        x-nullable: true
      Status:
        description: The current status of this Tenant
        type: string
        x-nullable: true
      TenantID:
        description: The ID of the tenant who owns this Database
        type: string
        x-nullable: true
      Type:
        description: The type of Database (mysql, etc)
        type: string
        x-nullable: true
    type: object
  DatabaseRequest:
    description: An array of Database objects
    properties:
      data:
        items:
          $ref: "#/definitions/Database"
        type: array
      meta:
        $ref: "#/definitions/RequestMeta"
    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
  DocumentRequest:
    description: An array of Document objects
    properties:
      data:
        items:
          $ref: ../../lib/swagger/defs/document.yaml#/Document
        type: array
      meta:
        $ref: "#/definitions/RequestMeta"
    type: object
  DocumentResponse:
    description: An array of Document objects
    properties:
      data:
        items:
          $ref: ../../lib/swagger/defs/document.yaml#/Document
        type: array
      meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Error:
    properties:
      Code:
        format: int64
        type: integer
      Fields:
        type: string
      Message:
        type: string
    type: object
  EventCategoryRequest:
    description: An array of EventCategory objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/event-category.yaml#/EventCategory
        type: array
    type: object
  EventCategoryResponse:
    description: An array of EventCategory objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/event-category.yaml#/EventCategory
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  EventRequest:
    description: An array of Event objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/event.yaml#/Event
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  EventResponse:
    description: An array of Event objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/event.yaml#/Event
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Factor:
    description: A Factor of analysis within a research topic
    properties:
      CreatedByID:
        description: Created By User ID
        type: string
        x-nullable: true
      CreatedDate:
        description: Created Date
        type: string
        x-nullable: true
      Description:
        description: Topic Description
        type: string
        x-nullable: true
      ID:
        description: Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
        x-nullable: true
      LastModifiedDate:
        description: Last Modified Date
        type: string
        x-nullable: true
      Name:
        description: Factor Name
        type: string
        x-nullable: true
      Observations:
        description: The list of Observations used to analyze this industry
        items:
          $ref: "#/definitions/Observation"
        type: array
        x-nullable: true
      Slug:
        description: The slug of the corresponding page on the CMS
        type: string
        x-nullable: true
      TopicID:
        description: The ID of the Topic that owns this Factor
        type: string
        x-nullable: true
    type: object
  FactorRequest:
    description: An array of Factor objects submitted for processing
    properties:
      Data:
        items:
          $ref: "#/definitions/Factor"
        type: array
    type: object
  FactorResponse:
    description: An array of Factor objects produced in response to a request
    properties:
      Data:
        items:
          $ref: "#/definitions/Factor"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  FavoriteRequest:
    description: An array of Favorite objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/favorite.yaml#/Favorite
        type: array
    type: object
  FavoriteResponse:
    description: An array of Favorite objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/favorite.yaml#/Favorite
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  FinancialStatement:
    description: A financial statement for a company
    properties:
      AccessNumber:
        description: EDGAR Access Number
        type: string
        x-nullable: true
      AccountID:
        description: Account ID
        type: string
        x-nullable: true
      CloudRevenue:
        description: Cloud Revenue
        type: number
        x-nullable: true
      CreatedByID:
        description: Created By User ID
        type: string
        x-nullable: true
      CreatedDate:
        description: Created Date
        type: string
        x-nullable: true
      Description:
        description: Description
        type: string
        x-nullable: true
      EdgarURL:
        description: EDGAR URL
        type: string
        x-nullable: true
      FilingType:
        description: Filing Type
        type: string
        x-nullable: true
      GrossProfit:
        description: Gross Profit
        type: number
        x-nullable: true
      ID:
        description: Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
        x-nullable: true
      LastModifiedDate:
        description: Last Modified Date
        type: string
        x-nullable: true
      NetIncome:
        description: Net Income
        type: number
        x-nullable: true
      PeriodEndDate:
        description: Period End Date
        type: string
        x-nullable: true
      TotalRevenue:
        description: Total Revenue
        type: number
        x-nullable: true
      Year:
        description: Year
        type: string
        x-nullable: true
    type: object
  FinancialStatementRequest:
    description: An array of FinancialStatement objects submitted for processing
    properties:
      Data:
        items:
          $ref: "#/definitions/FinancialStatement"
        type: array
    type: object
  FinancialStatementResponse:
    description: An array of FinancialStatement objects produced in response to a request
    properties:
      Data:
        items:
          $ref: "#/definitions/FinancialStatement"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  IndustryCompany:
    description: Junction object between Industry and Company
    properties:
      CompanyID:
        type: string
        x-nullable: true
      CreatedByID:
        description: Created By User ID
        type: string
        x-nullable: true
      CreatedDate:
        description: Created Date
        type: string
        x-nullable: true
      ID:
        description: Record Id
        type: string
      IndustryID:
        type: string
        x-nullable: true
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
        x-nullable: true
      LastModifiedDate:
        description: Last Modified Date
        type: string
        x-nullable: true
      Path:
        type: string
        x-nullable: true
    type: object
  IndustryCompanyRequest:
    description: An array of IndustryCompany objects submitted for processing
    properties:
      Data:
        items:
          $ref: "#/definitions/IndustryCompany"
        type: array
    type: object
  IndustryCompanyResponse:
    description: An array of IndustryCompany objects produced in response to a request
    properties:
      Data:
        items:
          $ref: "#/definitions/IndustryCompany"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  IndustryProduct:
    description: Junction object between Industry and CompanyProduct
    properties:
      CompanyProduct:
        $ref: "#/definitions/CompanyProduct"
      CompanyProductID:
        type: string
        x-nullable: true
      CreatedByID:
        description: Created By User ID
        type: string
        x-nullable: true
      CreatedDate:
        description: Created Date
        type: string
        x-nullable: true
      ID:
        description: Record Id
        type: string
      Industry:
        $ref: ../../lib/swagger/defs/industry.yaml#/Industry
      IndustryID:
        type: string
        x-nullable: true
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
        x-nullable: true
      LastModifiedDate:
        description: Last Modified Date
        type: string
        x-nullable: true
    type: object
  IndustryProductRequest:
    description: An array of IndustryProduct objects submitted for processing
    properties:
      Data:
        items:
          $ref: "#/definitions/IndustryProduct"
        type: array
    type: object
  IndustryProductResponse:
    description: An array of IndustryProduct objects produced in response to a request
    properties:
      Data:
        items:
          $ref: "#/definitions/IndustryProduct"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  IndustryRequest:
    description: An array of Industry objects submitted for processing
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/industry.yaml#/Industry
        type: array
    type: object
  IndustryResponse:
    description: An array of Industry objects produced in response to a request
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/industry.yaml#/Industry
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  IndustryService:
    description: Junction Object between Industry and CompanyService
    properties:
      CompanyService:
        $ref: "#/definitions/CompanyService"
      CompanyServiceID:
        type: string
        x-nullable: true
      CreatedByID:
        description: Created By User ID
        type: string
        x-nullable: true
      CreatedDate:
        description: Created Date
        type: string
        x-nullable: true
      ID:
        description: Record Id
        type: string
      Industry:
        $ref: ../../lib/swagger/defs/industry.yaml#/Industry
      IndustryID:
        type: string
        x-nullable: true
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
        x-nullable: true
      LastModifiedDate:
        description: Last Modified Date
        type: string
        x-nullable: true
    type: object
  IndustryServiceRequest:
    description: An array of IndustryService objects submitted for processing
    properties:
      Data:
        items:
          $ref: "#/definitions/IndustryService"
        type: array
    type: object
  IndustryServiceResponse:
    description: An array of IndustryService objects produced in response to a request
    properties:
      Data:
        items:
          $ref: "#/definitions/IndustryService"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  InvalidError:
    allOf:
      - $ref: "#/definitions/Error"
      - properties:
          details:
            items:
              type: string
            type: array
        type: object
  Message:
    properties:
      message:
        type: string
      ref:
        type: string
        x-nullable: true
      status:
        format: int64
        type: number
    type: object
  Observation:
    description: A data point collected while analyzing a Factor
    properties:
      AccountID:
        description: The ID of the Company being analyzed
        type: string
        x-nullable: true
      CompanyProductID:
        description: The ID of the Product being analyzed
        type: string
        x-nullable: true
      CreatedByID:
        description: Created By User ID
        type: string
        x-nullable: true
      CreatedDate:
        description: Created Date
        type: string
        x-nullable: true
      Description:
        description: Notes concerning data collection
        type: string
        x-nullable: true
      FactorID:
        description: The ID of the Factor that owns this Observation
        type: string
        x-nullable: true
      ID:
        description: Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
        x-nullable: true
      LastModifiedDate:
        description: Last Modified Date
        type: string
        x-nullable: true
      SubjectType:
        description: Is the subject a Company or a Product?
        type: string
        x-nullable: true
      Value:
        description: The data point collected
        type: string
        x-nullable: true
    type: object
  ObservationRequest:
    description: An array of Observation objects submitted for processing
    properties:
      Data:
        items:
          $ref: "#/definitions/Observation"
        type: array
    type: object
  ObservationResponse:
    description: An array of Observation objects produced in response to a request
    properties:
      Data:
        items:
          $ref: "#/definitions/Observation"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Pagination:
    properties:
      limit:
        format: int64
        type: number
      pagesize:
        format: int64
        type: number
      poffset:
        format: int64
        type: integer
      setsize:
        format: int64
        type: number
    type: object
  Prompt:
    description: A prompt
    properties:
      CreatedByID:
        description: The ID of the user who created the prompt
        type: string
        x-nullable: true
      CreatedDate:
        description: The date the prompt was created
        type: string
        x-nullable: true
      ID:
        description: Record Id
        type: string
      Icon:
        description: The icon for the prompt
        type: string
        x-nullable: true
      ImageAltText:
        description: The alt text for the prompt image
        type: string
        x-nullable: true
      ImageURL:
        description: The URL of the prompt image
        type: string
        x-nullable: true
      LastModifiedByID:
        description: The ID of the user who last modified the prompt
        type: string
        x-nullable: true
      LastModifiedDate:
        description: The date the prompt was last modified
        type: string
        x-nullable: true
      Logo:
        description: The logo for the prompt
        type: string
        x-nullable: true
      Model:
        description: The model for the prompt
        type: string
        x-nullable: true
      Name:
        description: The name of the prompt
        type: string
        x-nullable: true
      Order:
        description: The order of the prompt
        type: number
        x-nullable: true
      Parameters:
        description: A list of parameters encoded as JSON
        type: string
        x-nullable: true
      Prompt:
        description: The prompt text
        type: string
        x-nullable: true
      PromptCategoryID:
        description: The ID of the prompt category
        type: string
        x-nullable: true
      ResearchProjectIDs:
        description: A list of research project IDs
        items:
          type: string
        type: array
        x-nullable: true
      Slug:
        description: The slug for the prompt
        type: string
        x-nullable: true
      SystemPrompt:
        description: The System prompt to be used
        type: string
        x-nullable: true
      Tags:
        description: A list of tags (from salesforce newline separated)
        type: string
        x-nullable: true
      Temperature:
        description: The temperature of the prompt
        type: number
        x-nullable: true
      TenantID:
        description: The ID of the tenant
        type: string
        x-nullable: true
      Title:
        description: The title of the prompt
        type: string
        x-nullable: true
      UsedCount:
        description: The number of times the prompt has been used
        type: number
        x-nullable: true
      UserID:
        description: The ID of the user who created the prompt
        type: string
        x-nullable: true
    type: object
  PromptAnswerRequest:
    description: An array of Prompt objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/prompt-answer.yaml#/PromptAnswer
        type: array
    type: object
  PromptAnswerResponse:
    description: An array of PromptResponse objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/prompt-answer.yaml#/PromptAnswer
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  PromptCategoryRequest:
    description: An array of PromptCategory objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/prompt-category.yaml#/PromptCategory
        type: array
    type: object
  PromptCategoryResponse:
    description: An array of PromptCategory objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/prompt-category.yaml#/PromptCategory
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  PromptRequest:
    description: An array of Prompt objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Prompt"
        type: array
    type: object
  PromptResponse:
    description: An array of Prompt objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Prompt"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  PromptTagRequest:
    description: An array of PromptTag objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/prompt-tag.yaml#/PromptTag
        type: array
    type: object
  PromptTagResponse:
    description: An array of PromptTag objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/prompt-tag.yaml#/PromptTag
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  RequestMeta:
    properties:
      ExternalAccount:
        description: Account Number of the Reseller or OEM
        type: string
    type: object
  ResearchProjectCompanyRequest:
    description: An array of ResearchProjectCompany objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/research-project-company.yaml#/ResearchProjectCompany
        type: array
    type: object
  ResearchProjectCompanyResponse:
    description: An array of ResearchProjectCompany objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/research-project-company.yaml#/ResearchProjectCompany
        type: array
      Meta:
        $ref: ../../lib/swagger/defs/response-meta.yaml#/ResponseMeta
    type: object
  ResearchProjectDocumentRequest:
    description: An array of ResearchProjectDocument objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/research-project-document.yaml#/ResearchProjectDocument
        type: array
    type: object
  ResearchProjectDocumentResponse:
    description: An array of ResearchProjectDocument objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/research-project-document.yaml#/ResearchProjectDocument
        type: array
      Meta:
        $ref: ../../lib/swagger/defs/response-meta.yaml#/ResponseMeta
    type: object
  ResearchProjectProductRequest:
    description: An array of ResearchProjectProduct objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/research-project-product.yaml#/ResearchProjectProduct
        type: array
    type: object
  ResearchProjectProductResponse:
    description: An array of ResearchProjectProduct objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/research-project-product.yaml#/ResearchProjectProduct
        type: array
      Meta:
        $ref: ../../lib/swagger/defs/response-meta.yaml#/ResponseMeta
    type: object
  ResearchProjectRequest:
    description: An array of ResearchProject objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/research-project.yaml#/ResearchProject
        type: array
    type: object
  ResearchProjectResponse:
    description: An array of ResearchProject objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/research-project.yaml#/ResearchProject
        type: array
      Meta:
        $ref: ../../lib/swagger/defs/response-meta.yaml#/ResponseMeta
    type: object
  ResearchProjectServiceRequest:
    description: An array of ResearchProjectService objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/research-project-service.yaml#/ResearchProjectService
        type: array
    type: object
  ResearchProjectServiceResponse:
    description: An array of ResearchProjectService objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/research-project-service.yaml#/ResearchProjectService
        type: array
      Meta:
        $ref: ../../lib/swagger/defs/response-meta.yaml#/ResponseMeta
    type: object
  ResearchProjectTopicRequest:
    description: An array of ResearchProjectTopic objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/research-project-topic.yaml#/ResearchProjectTopic
        type: array
    type: object
  ResearchProjectTopicResponse:
    description: An array of ResearchProjectTopic objects
    properties:
      Data:
        items:
          $ref: ../../lib/swagger/defs/research-project-topic.yaml#/ResearchProjectTopic
        type: array
      Meta:
        $ref: ../../lib/swagger/defs/response-meta.yaml#/ResponseMeta
    type: object
  ResponseMeta:
    properties:
      Contact:
        description: Microservice Contact Info
        type: string
      Copyright:
        description: Copyright Info
        type: string
      ExternalAccount:
        description: Account Number used for recording transactions
        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
    type: object
  Role:
    description: A functional role within a Tenant
    properties:
      Auth0RoleID:
        description: the corresponding auth0 role
        type: string
        x-nullable: true
      CreatedByID:
        description: created by
        type: string
        x-nullable: true
      CreatedDate:
        description: created date
        type: string
        x-nullable: true
      Description:
        description: role description
        type: string
        x-nullable: true
      ID:
        description: record id
        type: string
      LastModifiedByID:
        description: last modified by
        type: string
        x-nullable: true
      LastModifiedDate:
        description: last modifed date
        type: string
        x-nullable: true
      RoleName:
        description: the name of this role
        type: string
        x-nullable: true
      TenantID:
        description: the id of the tenant that owns this role
        type: string
        x-nullable: true
    type: object
  RoleRequest:
    description: An array of Role objects
    properties:
      data:
        items:
          $ref: "#/definitions/Role"
        type: array
      meta:
        $ref: "#/definitions/RequestMeta"
    type: object
  RoleResponse:
    description: An array of Role objects
    properties:
      data:
        items:
          $ref: "#/definitions/Role"
        type: array
      meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  SalesforcePost:
    description: Relationship object that connects user to a role
    properties:
      ID:
        type: string
    type: object
  SalesforcePostResponse:
    description: An array of Print-Ready ingest Objects
    properties:
      data:
        items:
          $ref: "#/definitions/SalesforcePost"
        type: array
      meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Template:
    properties:
      CreatedByID:
        type: string
        x-nullable: true
      CreatedDate:
        type: string
        x-nullable: true
      Description:
        description: Description
        type: string
        x-nullable: true
      HTML:
        description: HTML Body
        type: string
        x-nullable: true
      ID:
        description: Record Id
        type: string
      IsActive:
        description: Active?
        type: boolean
        x-nullable: true
      IsMaster:
        description: Master Template?
        type: boolean
        x-nullable: true
      LastModifiedByID:
        type: string
        x-nullable: true
      LastModifiedDate:
        type: string
        x-nullable: true
      Name:
        description: Template Name
        type: string
        x-nullable: true
      ObjectType:
        description: Object
        type: string
        x-nullable: true
      RecordTypeName:
        description: Record Type Name
        type: string
        x-nullable: true
      TenantID:
        description: tenant identifier
        type: string
        x-nullable: true
      Type:
        description: Type
        type: string
        x-nullable: true
      URL:
        description: URL
        type: string
        x-nullable: true
    type: object
  TemplateResponse:
    properties:
      data:
        items:
          $ref: "#/definitions/Template"
        type: array
      meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Tenant:
    description: Account Tenant
    properties:
      AccountID:
        description: The Account that owns this Tenant
        type: string
        x-nullable: true
      Active:
        description: Is this Tenant currently active?
        type: boolean
        x-nullable: true
      CreatedByID:
        description: Created By
        type: string
        x-nullable: true
      CreatedDate:
        description: Created Date
        type: string
        x-nullable: true
      Databases:
        items:
          $ref: "#/definitions/Database"
        type: array
      ID:
        description: Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By
        type: string
        x-nullable: true
      LastModifiedDate:
        description: Last Modifed Date
        type: string
        x-nullable: true
      Roles:
        items:
          $ref: "#/definitions/Role"
        type: array
      Status:
        description: The current status of this Tenant
        type: string
        x-nullable: true
      TenantName:
        description: Name of the Tenant Resource
        type: string
        x-nullable: true
      TenantUsers:
        items:
          $ref: "#/definitions/TenantUser"
        type: array
      Type:
        description: Type of tenant
        type: string
        x-nullable: true
      Version:
        description: The version number of the Tenant Onboarding system used to create this tenant
        type: string
        x-nullable: true
    type: object
  TenantRequest:
    description: An array of Tenant objects
    properties:
      data:
        items:
          $ref: "#/definitions/Tenant"
        type: array
      meta:
        $ref: "#/definitions/RequestMeta"
    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 Tenant access level for this User
        type: string
      TenantID:
        description: The Tenant ID
        type: string
      UserID:
        description: The User ID
        type: string
    type: object
  Topic:
    description: A research topic that collects data
    properties:
      CreatedByID:
        description: Created By User ID
        type: string
        x-nullable: true
      CreatedDate:
        description: Created Date
        type: string
        x-nullable: true
      Description:
        description: Topic Description
        type: string
        x-nullable: true
      Factors:
        description: The list of Factors used to analyze this industry
        items:
          $ref: "#/definitions/Factor"
        type: array
        x-nullable: true
      ID:
        description: Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
        x-nullable: true
      LastModifiedDate:
        description: Last Modified Date
        type: string
        x-nullable: true
      Name:
        description: Topic Name
        type: string
        x-nullable: true
      ParentTopicID:
        description: The ID of the Parent Topic
        type: string
        x-nullable: true
      Slug:
        description: The CMS Slug for this Topic
        type: string
        x-nullable: true
    type: object
  TopicRequest:
    description: An array of Topic objects submitted for processing
    properties:
      Data:
        items:
          $ref: "#/definitions/Topic"
        type: array
    type: object
  TopicResponse:
    description: An array of Topic objects produced in response to a request
    properties:
      Data:
        items:
          $ref: "#/definitions/Topic"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  User:
    properties:
      APIGatewayURL:
        description: API Gateway URL
        type: string
        x-nullable: true
      APIGatewayUser:
        description: API Gateway User
        type: string
        x-nullable: true
      APIKey:
        description: API Key
        type: string
        x-nullable: true
      AboutMe:
        description: About Me
        type: string
        x-nullable: true
      AccountID:
        description: Account ID
        type: string
        x-nullable: true
      Address:
        $ref: "#/definitions/Address"
        x-nullable: true
      Alias:
        description: Alias
        type: string
        x-nullable: true
      Auth0UserID:
        description: Auth0 User Id
        type: string
        x-nullable: true
      CommunityNickname:
        description: Nickname
        type: string
        x-nullable: true
      CompanyName:
        description: Company Name
        type: string
        x-nullable: true
      ContactID:
        description: Contact
        type: string
        x-nullable: true
      CreatedByID:
        description: Created User ID
        type: string
        x-nullable: true
      CreatedDate:
        description: Date Created
        type: string
        x-nullable: true
      DelegatedApproverID:
        description: Delegated Approver
        type: string
        x-nullable: true
      Department:
        description: Department
        type: string
        x-nullable: true
      Division:
        description: Division
        type: string
        x-nullable: true
      Email:
        description: Email address
        type: string
        x-nullable: true
      EmployeeNumber:
        description: Employee Number
        type: string
        x-nullable: true
      EndOfDay:
        description: Time day ends
        type: string
        x-nullable: true
      Environment:
        description: Environment
        type: string
        x-nullable: true
      Extension:
        description: Extension
        type: string
        x-nullable: true
      ExternalAccount:
        description: Account
        type: string
        x-nullable: true
      FabricAPIKey:
        description: Fabric API Key
        type: string
        x-nullable: true
      Fax:
        description: Fax
        type: string
        x-nullable: true
      FirstName:
        description: The first name
        type: string
        x-nullable: true
      ForecastEnabled:
        description: Allow Forecasting
        type: boolean
        x-nullable: true
      FullPhotoURL:
        description: Full Photo URL
        type: string
        x-nullable: true
      GitHub:
        description: GitHub
        type: string
        x-nullable: true
      ID:
        description: Record ID
        type: string
      IsActive:
        description: Active
        type: boolean
        x-nullable: true
      IsPortalEnabled:
        description: Is the user enabled for Communities?
        type: boolean
        x-nullable: true
      IsProfilePhotoActive:
        description: Has Profile Photo
        type: boolean
        x-nullable: true
      IsSystemControlled:
        type: boolean
        x-nullable: true
      LastIP:
        description: IP address of last login
        type: string
        x-nullable: true
      LastLogin:
        description: Last login time
        type: string
        x-nullable: true
      LastModifiedByID:
        description: Last Modified User ID
        type: string
        x-nullable: true
      LastModifiedDate:
        description: Last Modified Date
        type: string
        x-nullable: true
      LastName:
        description: The Last Name
        type: string
        x-nullable: true
      LinkedIn:
        description: LinkedIn
        type: string
        x-nullable: true
      LoginCount:
        description: Number of times user has logged in
        format: int64
        type: number
        x-nullable: true
      ManagerID:
        description: Manager
        type: string
        x-nullable: true
      MobilePhone:
        description: Mobile
        type: string
        x-nullable: true
      Name:
        description: Name
        type: string
        x-nullable: true
      OutOfOfficeMessage:
        description: Out of office message
        type: string
        x-nullable: true
      Phone:
        description: Phone
        type: string
        x-nullable: true
      PortalRole:
        description: Portal Role Level
        type: string
        x-nullable: true
      ProfileID:
        description: Profile
        type: string
        x-nullable: true
      ReceivesAdminEmails:
        description: Info Emails
        type: boolean
        x-nullable: true
      ReceivesAdminInfoEmails:
        description: Admin Info Emails
        type: boolean
        x-nullable: true
      ReceivesInfoEmails:
        description: Info Emails
        type: boolean
        x-nullable: true
      SenderEmail:
        description: Email Sender Address
        type: string
        x-nullable: true
      SenderName:
        description: Email Sender Name
        type: string
        x-nullable: true
      Signature:
        description: Email Signature
        type: string
        x-nullable: true
      SmallPhotoURL:
        description: Small Photo URL
        type: string
        x-nullable: true
      StartOfDay:
        description: The time day starts
        type: string
        x-nullable: true
      Status:
        description: Status
        type: string
        x-nullable: true
      TenantID:
        description: Tenant ID associated with this user
        type: string
        x-nullable: true
      TenantUsers:
        items:
          $ref: "#/definitions/TenantUser"
        type: array
        x-nullable: true
      TimeZone:
        description: Time Zone
        type: string
        x-nullable: true
      Title:
        description: Title
        type: string
        x-nullable: true
      Twitter:
        description: Twitter
        type: string
        x-nullable: true
      UserRoleID:
        description: Role
        type: string
        x-nullable: true
      UserRoles:
        items:
          $ref: "#/definitions/UserRole"
        type: array
        x-nullable: true
      UserType:
        description: User Type
        type: string
        x-nullable: true
      Username:
        description: Username
        type: string
        x-nullable: true
    type: object
  UserRequest:
    description: An array of User Objects to post
    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:
      Auth0roleID:
        type: string
        x-nullable: true
      CreatedByID:
        type: string
        x-nullable: true
      CreatedDate:
        type: string
        x-nullable: true
      Description:
        type: string
        x-nullable: true
      ID:
        type: string
      # Industries:
      #   description: Industries
      #   properties:
      #     items:
      #       $ref: "#/definitions/Industry"
      LastModifiedByID:
        type: string
        x-nullable: true
      LastModifiedDate:
        type: string
        x-nullable: true
      Name:
        type: string
        x-nullable: true
      RoleID:
        type: string
        x-nullable: true
      UserID:
        type: string
        x-nullable: true
    type: object
